summaryrefslogtreecommitdiff
path: root/src/vehicle.cpp
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2007-01-14 19:57:49 +0000
committerpeter1138 <peter1138@openttd.org>2007-01-14 19:57:49 +0000
commit92d418b031d23cf42a4df09e12945cc4b737bce2 (patch)
treec62990da208a45b3bd1c7379a1835190458d5a49 /src/vehicle.cpp
parent19d31c7417e4c8ad763c6674b7d1c6f9022e3703 (diff)
downloadopenttd-92d418b031d23cf42a4df09e12945cc4b737bce2.tar.xz
(svn r8128) -Codechange: Split sprite and palette remap into separate 32 bit values.
This lets us increase the sprite width from 14 to up to 29 bits, effectively nulling the old sprite limit. Table changes in next commit.
Diffstat (limited to 'src/vehicle.cpp')
-rw-r--r--src/vehicle.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
index c068488f3..96cc9a2ec 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -796,15 +796,19 @@ int32 GetRefitCost(EngineID engine_type)
static void DoDrawVehicle(const Vehicle *v)
{
- uint32 image = v->cur_image;
+ SpriteID image = v->cur_image;
+ SpriteID pal;
if (v->vehstatus & VS_SHADOW) {
- MAKE_TRANSPARENT(image);
+ SETBIT(image, PALETTE_MODIFIER_TRANSPARENT);
+ pal = PALETTE_TO_TRANSPARENT;
} else if (v->vehstatus & VS_DEFPAL) {
- image |= (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
+ pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
+ } else {
+ pal = PAL_NONE;
}
- AddSortableSpriteToDraw(image, v->x_pos + v->x_offs, v->y_pos + v->y_offs,
+ AddSortableSpriteToDraw(image, pal, v->x_pos + v->x_offs, v->y_pos + v->y_offs,
v->sprite_width, v->sprite_height, v->z_height, v->z_pos);
}
@@ -2801,7 +2805,7 @@ UnitID GetFreeUnitNumber(byte type)
return unit;
}
-static PalSpriteID GetEngineColourMap(EngineID engine_type, PlayerID player, EngineID parent_engine_type, CargoID cargo_type)
+static SpriteID GetEngineColourMap(EngineID engine_type, PlayerID player, EngineID parent_engine_type, CargoID cargo_type)
{
SpriteID map;
const Player *p = GetPlayer(player);
@@ -2886,15 +2890,15 @@ static PalSpriteID GetEngineColourMap(EngineID engine_type, PlayerID player, Eng
(SPR_2CCMAP_BASE + p->livery[scheme].colour1 + p->livery[scheme].colour2 * 16) :
(PALETTE_RECOLOR_START + p->livery[scheme].colour1);
- return SPRITE_PALETTE(map << PALETTE_SPRITE_START);
+ return map;
}
-PalSpriteID GetEnginePalette(EngineID engine_type, PlayerID player)
+SpriteID GetEnginePalette(EngineID engine_type, PlayerID player)
{
return GetEngineColourMap(engine_type, player, INVALID_ENGINE, CT_INVALID);
}
-PalSpriteID GetVehiclePalette(const Vehicle *v)
+SpriteID GetVehiclePalette(const Vehicle *v)
{
if (v->type == VEH_Train) {
return GetEngineColourMap(