Changeset - r2464:a76823f2fdc5
[Not reviewed]
master
0 6 0
peter1138 - 19 years ago 2005-09-26 19:01:49
peter1138@openttd.org
(svn r2990) Remove _engine_original_sprites and replace all uses with references to our (new) original engine/vehicle tables.
6 files changed with 9 insertions and 27 deletions:
0 comments (0 inline, 0 general)
aircraft_cmd.c
Show inline comments
 
@@ -94,26 +94,26 @@ int GetAircraftImage(const Vehicle *v, b
 
	int spritenum = v->spritenum;
 

	
 
	if (is_custom_sprite(spritenum)) {
 
		int sprite = GetCustomVehicleSprite(v, direction);
 

	
 
		if (sprite) return sprite;
 
		spritenum = _engine_original_sprites[v->engine_type];
 
		spritenum = orig_aircraft_vehicle_info[v->engine_type - AIRCRAFT_ENGINES_INDEX].image_index;
 
	}
 
	return direction + _aircraft_sprite[spritenum];
 
}
 

	
 
void DrawAircraftEngine(int x, int y, int engine, uint32 image_ormod)
 
{
 
	int spritenum = AircraftVehInfo(engine)->image_index;
 
	int sprite = (6 + _aircraft_sprite[spritenum]);
 

	
 
	if (is_custom_sprite(spritenum)) {
 
		sprite = GetCustomVehicleIcon(engine, 6);
 
		if (!sprite)
 
			sprite = _engine_original_sprites[engine];
 
			spritenum = orig_aircraft_vehicle_info[engine - AIRCRAFT_ENGINES_INDEX].image_index;
 
	}
 

	
 
	DrawSprite(sprite | image_ormod, x, y);
 

	
 
	if ((AircraftVehInfo(engine)->subtype & 1) == 0) {
 
		DrawSprite(0xF3D, x, y-5);
engine.h
Show inline comments
 
@@ -169,13 +169,12 @@ enum {
 
VARDEF const uint32 _default_refitmasks[NUM_VEHICLE_TYPES];
 
VARDEF const CargoID _global_cargo_id[NUM_LANDSCAPE][NUM_CARGO];
 
VARDEF const uint32 _landscape_global_cargo_mask[NUM_LANDSCAPE];
 
VARDEF const CargoID _local_cargo_id_ctype[NUM_GLOBAL_CID];
 

	
 
VARDEF uint32 _engine_refit_masks[256];
 
VARDEF byte _engine_original_sprites[256];
 
void SetWagonOverrideSprites(byte engine, struct SpriteGroup *group, byte *train_id, int trains);
 
void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group);
 
// loaded is in percents, overriding_engine 0xffff is none
 
int GetCustomEngineSprite(byte engine, const Vehicle *v, byte direction);
 
uint16 GetCallBackResult(uint16 callback_info, byte engine, const Vehicle *v);
 
bool UsesWagonOverride(const Vehicle *v);
newgrf.c
Show inline comments
 
@@ -269,14 +269,12 @@ static bool RailVehicleChangeInfo(uint e
 
			}
 
		} break;
 
		case 0x12: { /* Sprite ID */
 
			FOR_EACH_OBJECT {
 
				uint8 spriteid = grf_load_byte(&buf);
 

	
 
				if (spriteid == 0xFD && rvi[i].image_index != 0xFD)
 
					_engine_original_sprites[engine + i] = rvi[i].image_index;
 
				rvi[i].image_index = spriteid;
 
			}
 
		} break;
 
		case 0x13: { /* Dual-headed */
 
			FOR_EACH_OBJECT {
 
				uint8 dual = grf_load_byte(&buf);
 
@@ -445,17 +443,12 @@ static bool RoadVehicleChangeInfo(uint e
 
			FOR_EACH_OBJECT {
 
				uint8 spriteid = grf_load_byte(&buf);
 

	
 
				if (spriteid == 0xFF)
 
					spriteid = 0xFD; // cars have different custom id in the GRF file
 

	
 
				// This is currently not used but there's no reason
 
				// in not having it here for the future.
 
				if (spriteid == 0xFD && rvi[i].image_index != 0xFD)
 
					_engine_original_sprites[ROAD_ENGINES_INDEX + engine + i] = rvi[i].image_index;
 

	
 
				rvi[i].image_index = spriteid;
 
			}
 
		} break;
 
		case 0x0F: { /* Cargo capacity */
 
			FOR_EACH_OBJECT {
 
				uint16 capacity = grf_load_byte(&buf);
 
@@ -536,17 +529,12 @@ static bool ShipVehicleChangeInfo(uint e
 
			FOR_EACH_OBJECT {
 
				uint8 spriteid = grf_load_byte(&buf);
 

	
 
				if (spriteid == 0xFF)
 
					spriteid = 0xFD; // ships have different custom id in the GRF file
 

	
 
				// This is currently not used but there's no reason
 
				// in not having it here for the future.
 
				if (spriteid == 0xFD && svi[i].image_index != 0xFD)
 
					_engine_original_sprites[SHIP_ENGINES_INDEX + engine + i] = svi[i].image_index;
 

	
 
				svi[i].image_index = spriteid;
 
			}
 
		}	break;
 
		case 0x09: {	/* Refittable */
 
			FOR_EACH_OBJECT {
 
				uint8 refittable = grf_load_byte(&buf);
 
@@ -643,17 +631,12 @@ static bool AircraftVehicleChangeInfo(ui
 
			FOR_EACH_OBJECT {
 
				uint8 spriteid = grf_load_byte(&buf);
 

	
 
				if (spriteid == 0xFF)
 
					spriteid = 0xFD; // ships have different custom id in the GRF file
 

	
 
				// This is currently not used but there's no reason
 
				// in not having it here for the future.
 
				if (spriteid == 0xFD && avi[i].image_index != 0xFD)
 
					_engine_original_sprites[AIRCRAFT_ENGINES_INDEX + engine + i] = avi[i].image_index;
 

	
 
				avi[i].image_index = spriteid;
 
			}
 
		}	break;
 
		case 0x09: {	/* Helicopter */
 
			FOR_EACH_OBJECT {
 
				uint8 heli = grf_load_byte(&buf);
roadveh_cmd.c
Show inline comments
 
@@ -65,13 +65,13 @@ int GetRoadVehImage(const Vehicle *v, by
 
	int img = v->spritenum;
 
	int image;
 

	
 
	if (is_custom_sprite(img)) {
 
		image = GetCustomVehicleSprite(v, direction);
 
		if (image) return image;
 
		img = _engine_original_sprites[v->engine_type];
 
		img = orig_road_vehicle_info[v->engine_type - ROAD_ENGINES_INDEX].image_index;
 
	}
 

	
 
	image = direction + _roadveh_images[img];
 
	if (v->cargo_count >= (v->cargo_cap >> 1))
 
		image += _roadveh_full_adder[img];
 
	return image;
 
@@ -85,13 +85,13 @@ void DrawRoadVehEngine(int x, int y, int
 
		int sprite = GetCustomVehicleIcon(engine, 6);
 

	
 
		if (sprite) {
 
			DrawSprite(sprite | image_ormod, x, y);
 
			return;
 
		}
 
		spritenum = _engine_original_sprites[engine];
 
		spritenum = orig_road_vehicle_info[engine - ROAD_ENGINES_INDEX].image_index;
 
	}
 
	DrawSprite((6 + _roadveh_images[spritenum]) | image_ormod, x, y);
 
}
 

	
 
int32 EstimateRoadVehCost(EngineID engine_type)
 
{
ship_cmd.c
Show inline comments
 
@@ -36,26 +36,26 @@ void DrawShipEngine(int x, int y, int en
 
		int sprite = GetCustomVehicleIcon(engine, 6);
 

	
 
		if (sprite) {
 
			DrawSprite(sprite | image_ormod, x, y);
 
			return;
 
		}
 
		spritenum = _engine_original_sprites[engine];
 
		spritenum = orig_ship_vehicle_info[engine - SHIP_ENGINES_INDEX].image_index;
 
	}
 
	DrawSprite((6 + _ship_sprites[spritenum]) | image_ormod, x, y);
 
}
 

	
 
int GetShipImage(const Vehicle *v, byte direction)
 
{
 
	int spritenum = v->spritenum;
 

	
 
	if (is_custom_sprite(spritenum)) {
 
		int sprite = GetCustomVehicleSprite(v, direction);
 

	
 
		if (sprite) return sprite;
 
		spritenum = _engine_original_sprites[v->engine_type];
 
		spritenum = orig_ship_vehicle_info[v->engine_type - SHIP_ENGINES_INDEX].image_index;
 
	}
 
	return _ship_sprites[spritenum] + direction;
 
}
 

	
 
static Depot *FindClosestShipDepot(Vehicle *v)
 
{
train_cmd.c
Show inline comments
 
@@ -351,13 +351,13 @@ int GetTrainImage(const Vehicle *v, byte
 
	int img = v->spritenum;
 
	int base;
 

	
 
	if (is_custom_sprite(img)) {
 
		base = GetCustomVehicleSprite(v, direction + 4 * IS_CUSTOM_SECONDHEAD_SPRITE(img));
 
		if (base != 0) return base;
 
		img = _engine_original_sprites[v->engine_type];
 
		img = orig_rail_vehicle_info[v->engine_type].image_index;
 
	}
 

	
 
	base = _engine_sprite_base[img] + ((direction + _engine_sprite_add[img]) & _engine_sprite_and[img]);
 

	
 
	if (v->cargo_count >= (v->cargo_cap >> 1))
 
		base += _wagon_full_adder[img];
 
@@ -370,25 +370,25 @@ void DrawTrainEngine(int x, int y, int e
 

	
 
	int img = rvi->image_index;
 
	uint32 image = 0;
 

	
 
	if (is_custom_sprite(img)) {
 
		image = GetCustomVehicleIcon(engine, 6);
 
		if (image == 0) img = _engine_original_sprites[engine];
 
		if (image == 0) img = orig_rail_vehicle_info[engine].image_index;
 
	}
 
	if (image == 0) {
 
		image = (6 & _engine_sprite_and[img]) + _engine_sprite_base[img];
 
	}
 

	
 
	if (rvi->flags & RVI_MULTIHEAD) {
 
		DrawSprite(image | image_ormod, x - 14, y);
 
		x += 15;
 
		image = 0;
 
		if (is_custom_sprite(img)) {
 
			image = GetCustomVehicleIcon(engine, 2);
 
			if (image == 0) img = _engine_original_sprites[engine];
 
			if (image == 0) img = orig_rail_vehicle_info[engine].image_index;
 
		}
 
		if (image == 0) {
 
			image =
 
				((6 + _engine_sprite_add[img + 1]) & _engine_sprite_and[img + 1]) +
 
				_engine_sprite_base[img + 1];
 
		}
0 comments (0 inline, 0 general)