Changeset - r8198:888b30c1c93b
[Not reviewed]
master
0 3 0
peter1138 - 16 years ago 2008-01-05 15:39:22
peter1138@openttd.org
(svn r11761) -Codechange: Use appropriate variable types for NewGRF engine overrides, and adjust scope while there.
3 files changed with 17 insertions and 23 deletions:
0 comments (0 inline, 0 general)
src/newgrf.cpp
Show inline comments
 
@@ -2772,8 +2772,8 @@ static CargoID TranslateCargo(uint8 feat
 

	
 
static void VehicleMapSpriteGroup(byte *buf, byte feature, uint8 idcount, uint8 cidcount, bool wagover)
 
{
 
	static byte *last_engines;
 
	static int last_engines_count;
 
	static EngineID *last_engines;
 
	static uint last_engines_count;
 

	
 
	if (!wagover) {
 
		if (last_engines_count != idcount) {
src/newgrf_engine.cpp
Show inline comments
 
@@ -26,20 +26,20 @@ int _traininfo_vehicle_pitch = 0;
 
int _traininfo_vehicle_width = 29;
 

	
 
struct WagonOverride {
 
	byte *train_id;
 
	int trains;
 
	EngineID *train_id;
 
	uint trains;
 
	CargoID cargo;
 
	const SpriteGroup *group;
 
};
 

	
 
struct WagonOverrides {
 
	int overrides_count;
 
	uint overrides_count;
 
	WagonOverride *overrides;
 
};
 

	
 
static WagonOverrides _engine_wagon_overrides[TOTAL_NUM_ENGINES];
 

	
 
void SetWagonOverrideSprites(EngineID engine, CargoID cargo, const SpriteGroup *group, byte *train_id, int trains)
 
void SetWagonOverrideSprites(EngineID engine, CargoID cargo, const SpriteGroup *group, EngineID *train_id, uint trains)
 
{
 
	WagonOverrides *wos;
 
	WagonOverride *wo;
 
@@ -58,11 +58,11 @@ void SetWagonOverrideSprites(EngineID en
 
	wo->group = group;
 
	wo->cargo = cargo;
 
	wo->trains = trains;
 
	wo->train_id = MallocT<byte>(trains);
 
	memcpy(wo->train_id, train_id, trains);
 
	wo->train_id = MallocT<EngineID>(trains);
 
	memcpy(wo->train_id, train_id, trains * sizeof *train_id);
 
}
 

	
 
const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, byte overriding_engine)
 
const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, EngineID overriding_engine)
 
{
 
	const WagonOverrides *wos = &_engine_wagon_overrides[engine];
 

	
 
@@ -71,12 +71,12 @@ const SpriteGroup *GetWagonOverrideSprit
 
	 * for O(1). Or O(logMlogN) and searching binary tree or smt. like
 
	 * that. --pasky */
 

	
 
	for (int i = 0; i < wos->overrides_count; i++) {
 
	for (uint i = 0; i < wos->overrides_count; i++) {
 
		const WagonOverride *wo = &wos->overrides[i];
 

	
 
		if (wo->cargo != cargo && wo->cargo != CT_DEFAULT) continue;
 

	
 
		for (int j = 0; j < wo->trains; j++) {
 
		for (uint j = 0; j < wo->trains; j++) {
 
			if (wo->train_id[j] == overriding_engine) return wo->group;
 
		}
 
	}
 
@@ -88,16 +88,10 @@ const SpriteGroup *GetWagonOverrideSprit
 
 */
 
void UnloadWagonOverrides()
 
{
 
	WagonOverrides *wos;
 
	WagonOverride *wo;
 
	EngineID engine;
 
	int i;
 

	
 
	for (engine = 0; engine < TOTAL_NUM_ENGINES; engine++) {
 
		wos = &_engine_wagon_overrides[engine];
 
		for (i = 0; i < wos->overrides_count; i++) {
 
			wo = &wos->overrides[i];
 
			wo->group = NULL;
 
	for (EngineID engine = 0; engine < TOTAL_NUM_ENGINES; engine++) {
 
		WagonOverrides *wos = &_engine_wagon_overrides[engine];
 
		for (uint i = 0; i < wos->overrides_count; i++) {
 
			WagonOverride *wo = &wos->overrides[i];
 
			free(wo->train_id);
 
		}
 
		free(wos->overrides);
src/newgrf_engine.h
Show inline comments
 
@@ -13,8 +13,8 @@ extern int _traininfo_vehicle_pitch;
 
extern int _traininfo_vehicle_width;
 

	
 

	
 
void SetWagonOverrideSprites(EngineID engine, CargoID cargo, const struct SpriteGroup *group, byte *train_id, int trains);
 
const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, byte overriding_engine);
 
void SetWagonOverrideSprites(EngineID engine, CargoID cargo, const struct SpriteGroup *group, EngineID *train_id, uint trains);
 
const SpriteGroup *GetWagonOverrideSpriteSet(EngineID engine, CargoID cargo, EngineID overriding_engine);
 
void SetCustomEngineSprites(EngineID engine, byte cargo, const struct SpriteGroup *group);
 
void SetRotorOverrideSprites(EngineID engine, const struct SpriteGroup *group);
 
SpriteID GetCustomEngineSprite(EngineID engine, const Vehicle* v, Direction direction);
0 comments (0 inline, 0 general)