From 238e47cd42c009f2ab1359428788a65a26fafebb Mon Sep 17 00:00:00 2001 From: celestar Date: Sun, 24 Jul 2005 15:56:31 +0000 Subject: [PATCH] (svn r2702) -Codechange: Cleaned up the sprite code and replaced many magic numbers by enums. There remains work in gfx.c to move the "transparency" and "recolor" bits around to make space for more sprites. However, 2800 additional sprites can now be loaded. There also remains cleanup and Doxygen work on many of the header files. --- gfx.c | 17 +- gfx.h | 5 - graph_gui.c | 1 + industry_cmd.c | 6 +- macros.h | 4 +- misc_gui.c | 2 +- openttd.h | 2 +- player_gui.c | 2 +- players.c | 20 +- rail_cmd.c | 10 +- road_cmd.c | 10 +- settings_gui.c | 2 +- ship_gui.c | 1 + spritecache.c | 54 +- station_cmd.c | 10 +- table/animcursors.h | 38 +- table/bridge_land.h | 316 ++-- table/industry_land.h | 292 ++-- table/road_land.h | 8 +- table/sprites.h | 158 +- table/station_land.h | 264 +-- table/town_land.h | 3534 ++++++++++++++++++++-------------------- table/track_land.h | 30 +- table/tree_land.h | 64 +- table/unmovable_land.h | 58 +- table/water_land.h | 8 +- town_cmd.c | 4 +- town_gui.c | 2 +- tunnelbridge_cmd.c | 12 +- viewport.c | 10 +- waypoint.c | 8 +- window.h | 2 +- 32 files changed, 2525 insertions(+), 2429 deletions(-) diff --git a/gfx.c b/gfx.c index 501fa9f624..db64cb0494 100644 --- a/gfx.c +++ b/gfx.c @@ -9,6 +9,7 @@ #include "string.h" #include "gfx.h" #include "table/palettes.h" +#include "table/sprites.h" #include "hal.h" #include "variables.h" @@ -661,14 +662,14 @@ int DoDrawStringTruncated(const char *str, int x, int y, uint16 color, uint maxw void DrawSprite(uint32 img, int x, int y) { - if (img & 0x8000) { - _color_remap_ptr = GetNonSprite(img >> 16) + 1; - GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 1); - } else if (img & 0x4000) { - _color_remap_ptr = GetNonSprite(img >> 16) + 1; - GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 2); + if (img & PALETTE_MODIFIER_COLOR) { + _color_remap_ptr = GetNonSprite(GB(img, PALETTE_SPRITE_START, PALETTE_SPRITE_WIDTH)) + 1; + GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 1); + } else if (img & PALETTE_MODIFIER_TRANSPARENT) { + _color_remap_ptr = GetNonSprite(GB(img, PALETTE_SPRITE_START, PALETTE_SPRITE_WIDTH)) + 1; + GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 2); } else { - GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 0); + GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 0); } } @@ -1923,7 +1924,7 @@ static void SetCursorSprite(CursorID cursor) if (cv->sprite == cursor) return; - p = GetSprite(cursor & 0x3FFF); + p = GetSprite(cursor & SPRITE_MASK); cv->sprite = cursor; cv->size.y = p->height; cv->size.x = p->width; diff --git a/gfx.h b/gfx.h index 2928bcc4c2..44111da1e9 100644 --- a/gfx.h +++ b/gfx.h @@ -104,11 +104,6 @@ VARDEF int _pal_last_dirty; VARDEF bool _use_dos_palette; -/* spritecache.c */ -//enum { NUM_SPRITES = 0x1320 }; -//enum { NUM_SPRITES = 0x1500 }; -enum { NUM_SPRITES = 0x3500 }; // 1500 + space for custom GRF sets - typedef struct Colour { byte r; byte g; diff --git a/graph_gui.c b/graph_gui.c index 7c9e1f4c40..9165437d6f 100644 --- a/graph_gui.c +++ b/graph_gui.c @@ -3,6 +3,7 @@ #include "stdafx.h" #include "openttd.h" #include "table/strings.h" +#include "table/sprites.h" #include "functions.h" #include "window.h" #include "gui.h" diff --git a/industry_cmd.c b/industry_cmd.c index 4d2629ba0a..94e829ad61 100644 --- a/industry_cmd.c +++ b/industry_cmd.c @@ -348,13 +348,13 @@ static void DrawTile_Industry(TileInfo *ti) /* Pointer to industry */ ind = GetIndustry(_m[ti->tile].m2); - ormod = (ind->color_map+0x307)<<16; + ormod = (ind->color_map+0x307) << PALETTE_SPRITE_START; /* Retrieve pointer to the draw industry tile struct */ dits = &_industry_draw_tile_data[(ti->map5<<2) | (_m[ti->tile].owner&3)]; image = dits->sprite_1; - if (image&0x8000 && (image & 0xFFFF0000) == 0) + if (image & PALETTE_MODIFIER_COLOR && (image & PALETTE_SPRITE_MASK) == 0) image |= ormod; z = ti->z; @@ -371,7 +371,7 @@ static void DrawTile_Industry(TileInfo *ti) /* Add industry on top of the ground? */ if ((image = dits->sprite_2) != 0) { - if (image&0x8000 && (image & 0xFFFF0000) == 0) + if (image & PALETTE_MODIFIER_COLOR && (image & PALETTE_SPRITE_MASK) == 0) image |= ormod; if (_display_opt & DO_TRANS_BUILDINGS) diff --git a/macros.h b/macros.h index 28004d144e..a335b05e33 100644 --- a/macros.h +++ b/macros.h @@ -60,8 +60,8 @@ static inline int64 BIGMULS(int32 a, int32 b) { #define SETBITS(x,y) ((x) |= (y)) #define CLRBITS(x,y) ((x) &= ~(y)) -#define PLAYER_SPRITE_COLOR(owner) ((_player_colors[owner] << 16) + 0x3070000) -#define SPRITE_PALETTE(x) ((x) + 0x8000) +#define PLAYER_SPRITE_COLOR(owner) ( (_player_colors[owner] + 0x307) << PALETTE_SPRITE_START) +#define SPRITE_PALETTE(x) ((x) | PALETTE_MODIFIER_COLOR) extern const byte _ffb_64[128]; /* Returns the position of the first bit that is not zero, counted from the diff --git a/misc_gui.c b/misc_gui.c index 1272a8d442..76aedeca0f 100644 --- a/misc_gui.c +++ b/misc_gui.c @@ -291,7 +291,7 @@ static const uint32 _tree_sprites[] = { 0x655,0x663,0x678,0x62B,0x647,0x639,0x64E,0x632,0x67F,0x68D,0x69B,0x6A9, 0x6AF,0x6D2,0x6D9,0x6C4,0x6CB,0x6B6,0x6BD,0x6E0, 0x72E,0x734,0x74A,0x74F,0x76B,0x78F,0x788,0x77B,0x75F,0x774,0x720,0x797, - 0x79E,0x30D87A5,0x30B87AC,0x7B3,0x7BA,0x30B87C1,0x30887C8,0x30A87CF,0x30B87D6 + 0x79E,0x7A5 | PALETTE_TO_GREEN,0x7AC | PALETTE_TO_RED,0x7B3,0x7BA,0x7C1 | PALETTE_TO_RED,0x7C8 | PALETTE_TO_PALE_GREEN,0x7CF | PALETTE_TO_YELLOW,0x7D6 | PALETTE_TO_RED }; static void BuildTreesWndProc(Window *w, WindowEvent *e) diff --git a/openttd.h b/openttd.h index 4a9d0d024c..485b8e8c36 100644 --- a/openttd.h +++ b/openttd.h @@ -71,7 +71,7 @@ typedef byte PlayerID; typedef byte OrderID; typedef byte CargoID; typedef uint16 StringID; -typedef uint16 SpriteID; +typedef uint32 SpriteID; typedef uint32 PalSpriteID; typedef uint32 CursorID; typedef uint16 EngineID; //! All enginenumbers should be of this type diff --git a/player_gui.c b/player_gui.c index 1787dfef85..b295baad24 100644 --- a/player_gui.c +++ b/player_gui.c @@ -545,7 +545,7 @@ static void PlayerCompanyWndProc(Window *w, WindowEvent *e) DrawString(110,48, STR_7006_COLOR_SCHEME, 0); // Draw company-colour bus (0xC19) - DrawSprite(PLAYER_SPRITE_COLOR(p->index) + 0x8C19, 215, 49); + DrawSprite(PLAYER_SPRITE_COLOR(p->index) + (0xC19 | PALETTE_MODIFIER_COLOR), 215, 49); DrawPlayerFace(p->face, p->player_color, 2, 16); diff --git a/players.c b/players.c index 111b164cd0..26f872070c 100644 --- a/players.c +++ b/players.c @@ -1,5 +1,8 @@ /* $Id$ */ +/** @file players.c + * @todo Cleanup the messy DrawPlayerFace function asap + */ #include "stdafx.h" #include "openttd.h" #include "engine.h" @@ -7,6 +10,7 @@ #include "string.h" #include "strings.h" #include "table/strings.h" +#include "table/sprites.h" #include "map.h" #include "player.h" #include "town.h" @@ -44,7 +48,7 @@ void DrawPlayerFace(uint32 face, int color, int x, int y) flag |= 2; /* draw the gradient */ - DrawSprite( (color<<16) + 0x0307836A, x, y); + DrawSprite( (color + 0x307) << PALETTE_SPRITE_START | PALETTE_MODIFIER_COLOR | 0x36A, x, y); /* draw the cheeks */ DrawSprite(cheeks_table[flag&3], x, y); @@ -63,25 +67,25 @@ void DrawPlayerFace(uint32 face, int color, int x, int y) { uint val1 = GB(face, 6, 4); uint val2 = GB(face, 20, 3); - uint32 high = 0x314<<16; + uint32 high = 0x314 << PALETTE_SPRITE_START; if (val2 >= 6) { - high = 0x30F<<16; + high = 0x30F << PALETTE_SPRITE_START; if (val2 != 6) - high = 0x30D<<16; + high = 0x30D << PALETTE_SPRITE_START; } if (!(flag & 2)) { if (!(flag & 1)) { - DrawSprite(high+((val1 * 12 >> 4) + 0x832B), x, y); + DrawSprite(high+((val1 * 12 >> 4) + (0x32B | PALETTE_MODIFIER_COLOR)), x, y); } else { - DrawSprite(high+(val1 + 0x8337), x, y); + DrawSprite(high+(val1 + (0x337 | PALETTE_MODIFIER_COLOR)), x, y); } } else { if (!(flag & 1)) { - DrawSprite(high+((val1 * 11 >> 4) + 0x839A), x, y); + DrawSprite(high+((val1 * 11 >> 4) + (0x39A | PALETTE_MODIFIER_COLOR)), x, y); } else { - DrawSprite(high+(val1 + 0x83B8), x, y); + DrawSprite(high+(val1 + (0x3B8 | PALETTE_MODIFIER_COLOR)), x, y); } } } diff --git a/rail_cmd.c b/rail_cmd.c index dbe70938ec..40a8e5daee 100644 --- a/rail_cmd.c +++ b/rail_cmd.c @@ -1351,7 +1351,7 @@ static void DrawSpecialBuilding(uint32 image, uint32 tracktype_offs, byte x, byte y, byte z, byte xsize, byte ysize, byte zsize) { - if (image & 0x8000) + if (image & PALETTE_MODIFIER_COLOR) image |= _drawtile_track_palette; image += tracktype_offs; if (_display_opt & DO_TRANS_BUILDINGS) // show transparent depots @@ -1483,7 +1483,7 @@ static void DrawTile_Track(TileInfo *ti) } if ((_m[ti->tile].m2 & RAIL_MAP2LO_GROUND_MASK)==RAIL_GROUND_BROWN) { - image = (image & 0xFFFF) | 0x3178000; // use a brown palette + image = (image & SPRITE_MASK) | PALETTE_TO_BARE_LAND; // use a brown palette } else if ((_m[ti->tile].m2 & RAIL_MAP2LO_GROUND_MASK)==RAIL_GROUND_ICE_DESERT) { image += TrackSet[SNOW_OFFSET]; } @@ -1604,7 +1604,7 @@ static void DrawTile_Track(TileInfo *ti) drss = _track_depot_layout_table[type]; image = drss++->image; - if (image & 0x8000) image = (image & 0x7FFF) + tracktype_offs; + if (image & PALETTE_MODIFIER_COLOR) image = (image & SPRITE_MASK) + tracktype_offs; // adjust ground tile for desert // (don't adjust for arctic depots, because snow in depots looks weird) @@ -1653,13 +1653,13 @@ void DrawTrainDepotSprite(int x, int y, int image, int railtype) y+=17; img = dtss++->image; - if (img & 0x8000) img = (img & 0x7FFF) + railtype; + if (img & PALETTE_MODIFIER_COLOR) img = (img & SPRITE_MASK) + railtype; DrawSprite(img, x, y); for (; dtss->image != 0; dtss++) { Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0); image = dtss->image; - if (image & 0x8000) image |= ormod; + if (image & PALETTE_MODIFIER_COLOR) image |= ormod; DrawSprite(image + railtype, x + pt.x, y + pt.y); } } diff --git a/road_cmd.c b/road_cmd.c index 22b9c911bb..dd6b945f35 100644 --- a/road_cmd.c +++ b/road_cmd.c @@ -794,7 +794,7 @@ static void DrawTile_Road(TileInfo *ti) m2 = GB(_m[ti->tile].m4, 4, 3); - if (m2 == 0) image |= 0x3178000; + if (m2 == 0) image |= PALETTE_TO_BARE_LAND; if (_m[ti->tile].m4 & 0x80) { image += 19; @@ -839,7 +839,7 @@ static void DrawTile_Road(TileInfo *ti) image += 8; } else { m2 = GB(_m[ti->tile].m4, 4, 3); - if (m2 == 0) image |= 0x3178000; + if (m2 == 0) image |= PALETTE_TO_BARE_LAND; if (m2 > 1) image += 4; } @@ -862,7 +862,7 @@ static void DrawTile_Road(TileInfo *ti) if (ti->tileh != 0) { DrawFoundation(ti, ti->tileh); } - ormod = 0x315; + ormod = PALETTE_TO_GREY; //was this a bug/problem? player = GetTileOwner(ti->tile); if (player < MAX_PLAYERS) ormod = PLAYER_SPRITE_COLOR(player); @@ -874,7 +874,7 @@ static void DrawTile_Road(TileInfo *ti) for (; drss->image != 0; drss++) { uint32 image = drss->image; - if (image & 0x8000) + if (image & PALETTE_MODIFIER_COLOR) image |= ormod; if (_display_opt & DO_TRANS_BUILDINGS) // show transparent depots MAKE_TRANSPARENT(image); @@ -903,7 +903,7 @@ void DrawRoadDepotSprite(int x, int y, int image) Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0); image = dtss->image; - if (image & 0x8000) + if (image & PALETTE_MODIFIER_COLOR) image |= ormod; DrawSprite(image, x + pt.x, y + pt.y); diff --git a/settings_gui.c b/settings_gui.c index f2fdc4b834..cc3b225556 100644 --- a/settings_gui.c +++ b/settings_gui.c @@ -1180,7 +1180,7 @@ static void NewgrfWndProc(Window *w, WindowEvent *e) if(h) GfxFillRect(1, y + 1, 267, y + 12, 156); // XXX - will be grf name later DoDrawString(c->filename, 25, y + 2, h ? 0xC : 0x10); - DrawSprite(SPRITE_PALETTE(SPR_SQUARE | 0x30b8000), 5, y + 2); + DrawSprite(SPRITE_PALETTE(SPR_SQUARE | PALETTE_TO_RED), 5, y + 2); y += NEWGRF_WND_PROC_ROWSIZE; } diff --git a/ship_gui.c b/ship_gui.c index 8a9d26bb30..4b37a02a27 100644 --- a/ship_gui.c +++ b/ship_gui.c @@ -5,6 +5,7 @@ #include "debug.h" #include "functions.h" #include "table/strings.h" +#include "table/sprites.h" #include "map.h" #include "window.h" #include "gui.h" diff --git a/spritecache.c b/spritecache.c index 8d3d5100a6..26a7391e84 100644 --- a/spritecache.c +++ b/spritecache.c @@ -35,27 +35,27 @@ uint16 _custom_sprites_base; static Sprite _cur_sprite; -static void* _sprite_ptr[NUM_SPRITES]; -static uint16 _sprite_size[NUM_SPRITES]; -static uint32 _sprite_file_pos[NUM_SPRITES]; +static void* _sprite_ptr[MAX_SPRITES]; +static uint16 _sprite_size[MAX_SPRITES]; +static uint32 _sprite_file_pos[MAX_SPRITES]; // This one is probably not needed. #if defined(WANT_LOCKED) -static bool _sprite_locked[NUM_SPRITES]; +static bool _sprite_locked[MAX_SPRITES]; #endif #if defined(WANT_NEW_LRU) -static int16 _sprite_lru_new[NUM_SPRITES]; +static int16 _sprite_lru_new[MAX_SPRITES]; #else -static uint16 _sprite_lru[NUM_SPRITES]; -static uint16 _sprite_lru_cur[NUM_SPRITES]; +static uint16 _sprite_lru[MAX_SPRITES]; +static uint16 _sprite_lru_cur[MAX_SPRITES]; #endif #ifdef WANT_SPRITESIZES -static int8 _sprite_xoffs[NUM_SPRITES]; -static int8 _sprite_yoffs[NUM_SPRITES]; -static uint16 _sprite_xsize[NUM_SPRITES]; -static uint8 _sprite_ysize[NUM_SPRITES]; +static int8 _sprite_xoffs[MAX_SPRITES]; +static int8 _sprite_yoffs[MAX_SPRITES]; +static uint16 _sprite_xsize[MAX_SPRITES]; +static uint8 _sprite_ysize[MAX_SPRITES]; #endif bool _cache_sprites; @@ -83,13 +83,13 @@ typedef struct FileList { #include "table/files.h" #include "table/landscape_sprite.h" -static const uint16 * const _landscape_spriteindexes[] = { +static const SpriteID * const _landscape_spriteindexes[] = { _landscape_spriteindexes_1, _landscape_spriteindexes_2, _landscape_spriteindexes_3, }; -static const uint16 * const _slopes_spriteindexes[] = { +static const SpriteID * const _slopes_spriteindexes[] = { _slopes_spriteindexes_0, _slopes_spriteindexes_1, _slopes_spriteindexes_2, @@ -238,7 +238,7 @@ static bool LoadNextSprite(int load_index, byte file_index) _replace_sprites_offset[0]++; _replace_sprites_count[0]--; - if ((offset + count) <= NUM_SPRITES) { + if ((offset + count) <= MAX_SPRITES) { load_index = offset; } else { DEBUG(spritecache, 1) ("Sprites to be replaced are out of range: %x+%x", @@ -294,7 +294,7 @@ static void SkipSprites(uint count) if (size == 0) return; - ReadSpriteHeaderSkipData(size, NUM_SPRITES - 1); + ReadSpriteHeaderSkipData(size, MAX_SPRITES - 1); } } @@ -313,10 +313,11 @@ static int LoadGrfFile(const char *filename, int load_index, int file_index) while (LoadNextSprite(load_index, file_index)) { load_index++; - if (load_index >= NUM_SPRITES) { - error("Too many sprites. Recompile with higher NUM_SPRITES value or remove some custom GRF files."); + if (load_index >= MAX_SPRITES) { + error("Too many sprites. Recompile with higher MAX_SPRITES value or remove some custom GRF files."); } } + DEBUG(spritecache, 2) ("Currently %i sprites are loaded", load_index); return load_index - load_index_org; } @@ -351,8 +352,8 @@ static int LoadNewGrfFile(const char *filename, int load_index, int file_index) } for (i = 0; LoadNextSprite(load_index + i, file_index); i++) { - if (load_index + i >= NUM_SPRITES) - error("Too many sprites (0x%X). Recompile with higher NUM_SPRITES value or remove some custom GRF files.", + if (load_index + i >= MAX_SPRITES) + error("Too many sprites (0x%X). Recompile with higher MAX_SPRITES value or remove some custom GRF files.", load_index + i); } @@ -364,7 +365,7 @@ static int LoadNewGrfFile(const char *filename, int load_index, int file_index) return i; } -static void LoadGrfIndexed(const char *filename, const uint16 *index_tbl, int file_index) +static void LoadGrfIndexed(const char *filename, const SpriteID *index_tbl, int file_index) { int start; @@ -472,7 +473,7 @@ void IncreaseSpriteLRU(void) if (_sprite_lru_counter > 16384) { DEBUG(spritecache, 2) ("fixing lru %d, inuse=%d", _sprite_lru_counter, GetSpriteCacheUsage()); - for (i = 0; i != NUM_SPRITES; i++) + for (i = 0; i != MAX_SPRITES; i++) if (_sprite_ptr[i] != NULL) { if (_sprite_lru_new[i] >= 0) { _sprite_lru_new[i] = -1; @@ -483,7 +484,7 @@ void IncreaseSpriteLRU(void) _sprite_lru_counter = 0; } #else - for (i = 0; i != NUM_SPRITES; i++) + for (i = 0; i != MAX_SPRITES; i++) if (_sprite_ptr[i] != NULL && _sprite_lru[i] != 65535) _sprite_lru[i]++; // Reset the lru counter. @@ -560,7 +561,7 @@ static void DeleteEntryFromSpriteCache(void) #if defined(WANT_NEW_LRU) cur_lru = 0xffff; - for (i = 0; i != NUM_SPRITES; i++) { + for (i = 0; i != MAX_SPRITES; i++) { if (_sprite_ptr[i] != 0 && _sprite_lru_new[i] < cur_lru #if defined(WANT_LOCKED) @@ -574,7 +575,7 @@ static void DeleteEntryFromSpriteCache(void) #else { uint16 cur_lru = 0, cur_lru_cur = 0xffff; - for (i = 0; i != NUM_SPRITES; i++) { + for (i = 0; i != MAX_SPRITES; i++) { if (_sprite_ptr[i] == 0 || #if defined(WANT_LOCKED) _sprite_locked[i] || @@ -702,7 +703,7 @@ const void *GetRawSprite(SpriteID sprite) { void* p; - assert(sprite < NUM_SPRITES); + assert(sprite < MAX_SPRITES); #if defined(NEW_ROTATION) sprite = RotateSprite(sprite); @@ -732,7 +733,7 @@ static const char * const _cached_filenames[4] = { }; #define OPENTTD_SPRITES_COUNT 98 -static const uint16 _openttd_grf_indexes[] = { +static const SpriteID _openttd_grf_indexes[] = { SPR_OPENTTD_BASE + 0, SPR_OPENTTD_BASE + 7, // icons etc 134, 134, // euro symbol medium size 582, 582, // euro symbol large size @@ -910,6 +911,7 @@ static void LoadSpriteTables(void) if (_loading_stage == 0) InitNewGRFFile(_newgrf_files[j], load_index); load_index += LoadNewGrfFile(_newgrf_files[j], load_index, i++); + DEBUG(spritecache, 2) ("Currently %i sprites are loaded", load_index); } } diff --git a/station_cmd.c b/station_cmd.c index 7c2e2caca9..551b490ffe 100644 --- a/station_cmd.c +++ b/station_cmd.c @@ -2139,7 +2139,7 @@ static void DrawTile_Station(TileInfo *ti) { uint owner = GetTileOwner(ti->tile); - image_or_modificator = 0x315 << 16; /* NOTE: possible bug in ttd here? */ + image_or_modificator = PALETTE_TO_GREY; /* NOTE: possible bug in ttd here? */ if (owner < MAX_PLAYERS) image_or_modificator = PLAYER_SPRITE_COLOR(owner); } @@ -2166,11 +2166,11 @@ static void DrawTile_Station(TileInfo *ti) if (t == NULL) t = &_station_display_datas[ti->map5]; image = t->ground_sprite; - if (image & 0x8000) + if (image & PALETTE_MODIFIER_COLOR) image |= image_or_modificator; // For custom sprites, there's no railtype-based pitching. - type_offset = railtype * ((image & 0x3FFF) < _custom_sprites_base ? TRACKTYPE_SPRITE_PITCH : 1); + type_offset = railtype * ((image & SPRITE_MASK) < _custom_sprites_base ? TRACKTYPE_SPRITE_PITCH : 1); // station_land array has been increased from 82 elements to 114 // but this is something else. If AI builds station with 114 it looks all weird @@ -2193,7 +2193,7 @@ static void DrawTile_Station(TileInfo *ti) if (_display_opt & DO_TRANS_BUILDINGS) { MAKE_TRANSPARENT(image); } else { - if (image&0x8000) image |= image_or_modificator; + if (image & PALETTE_MODIFIER_COLOR) image |= image_or_modificator; } if ((byte)dtss->delta_z != 0x80) { @@ -2218,7 +2218,7 @@ void StationPickerDrawSprite(int x, int y, int railtype, int image) t = &_station_display_datas[image]; img = t->ground_sprite; - if (img & 0x8000) + if (img & PALETTE_MODIFIER_COLOR) img |= ormod; DrawSprite(img + railtype, x, y); diff --git a/table/animcursors.h b/table/animcursors.h index e51a4d9a72..26d30197fd 100644 --- a/table/animcursors.h +++ b/table/animcursors.h @@ -1,8 +1,28 @@ /* $Id$ */ -#define ANIM_CURSOR_LINE(a,b) a,b, +/** @file animcursors.h + * This file defines all the the animated cursors. + * Animated cursors consist of the number of sprites that are + * displayed in a round-robin manner. Each sprite also has a time + * associated that indicates how many ticks the corresponding sprite + * is to be displayed. Currently all this information is recorded in a single + * array. @todo This should be converted into an array of structs on the long run + * All these arrays end up in an array of pointers called _animcursors. + */ + +/** Creates two array entries that define one + * status of the cursor. + * @param Sprite The Sprite to be displayed + * @param display_time The Number of ticks to display the sprite + */ +#define ANIM_CURSOR_LINE(Sprite, display_time) Sprite, display_time, + +/** This indicates the termination of the cursor list + */ #define ANIM_CURSOR_END() 0xFFFF +/** Animated cursor elements for demolishion + */ static const CursorID _demolish_animcursor[] = { ANIM_CURSOR_LINE(0x2C0, 29) ANIM_CURSOR_LINE(0x2C1, 29) @@ -11,6 +31,8 @@ static const CursorID _demolish_animcursor[] = { ANIM_CURSOR_END() }; +/** Animated cursor elements for lower land + */ static const CursorID _lower_land_animcursor[] = { ANIM_CURSOR_LINE(0x2BB, 29) ANIM_CURSOR_LINE(0x2BC, 29) @@ -18,6 +40,8 @@ static const CursorID _lower_land_animcursor[] = { ANIM_CURSOR_END() }; +/** Animated cursor elements for raise land + */ static const CursorID _raise_land_animcursor[] = { ANIM_CURSOR_LINE(0x2B8, 29) ANIM_CURSOR_LINE(0x2B9, 29) @@ -25,6 +49,8 @@ static const CursorID _raise_land_animcursor[] = { ANIM_CURSOR_END() }; +/** Animated cursor elements for the goto icon + */ static const CursorID _pick_station_animcursor[] = { ANIM_CURSOR_LINE(0x2CC, 29) ANIM_CURSOR_LINE(0x2CD, 29) @@ -32,12 +58,18 @@ static const CursorID _pick_station_animcursor[] = { ANIM_CURSOR_END() }; +/** Animated cursor elements for the build signal icon + */ static const CursorID _build_signals_animcursor[] = { - ANIM_CURSOR_LINE(0x50C, 148) - ANIM_CURSOR_LINE(0x50D, 148) + ANIM_CURSOR_LINE(0x50C, 29) + ANIM_CURSOR_LINE(0x50D, 29) ANIM_CURSOR_END() }; +/** This is an array of pointers to all the animated cursor + * definitions we have above. This is the only thing that is + * accessed directly from other files + */ static const CursorID * const _animcursors[] = { _demolish_animcursor, _lower_land_animcursor, diff --git a/table/bridge_land.h b/table/bridge_land.h index 9bc9d2b244..3859d4fa5b 100644 --- a/table/bridge_land.h +++ b/table/bridge_land.h @@ -23,9 +23,9 @@ static const PalSpriteID _bridge_sprite_table_2_0[] = { static const PalSpriteID _bridge_sprite_table_2_1[] = { 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, - 0x31D898E, 0x31D8990, 0x31D898D, 0x31D898F, 0x31D8992, 0x31D8994, 0x31D8991, 0x31D8993, - 0x31D90E7, 0x31D90E9, 0x31D90E6, 0x31D90E8, 0x31D90EB, 0x31D90ED, 0x31D90EA, 0x31D90EC, - 0x31D910F, 0x31D9111, 0x31D910E, 0x31D9110, 0x31D9113, 0x31D9115, 0x31D9112, 0x31D9114, + 0x98E | PALETTE_31D, 0x990 | PALETTE_31D, 0x98D | PALETTE_31D, 0x98F | PALETTE_31D, 0x992 | PALETTE_31D, 0x994 | PALETTE_31D, 0x991 | PALETTE_31D, 0x993 | PALETTE_31D, + 0x10E7 | PALETTE_31D, 0x10E9 | PALETTE_31D, 0x10E6 | PALETTE_31D, 0x10E8 | PALETTE_31D, 0x10EB | PALETTE_31D, 0x10ED | PALETTE_31D, 0x10EA | PALETTE_31D, 0x10EC | PALETTE_31D, + 0x110F | PALETTE_31D, 0x1111 | PALETTE_31D, 0x110E | PALETTE_31D, 0x1110 | PALETTE_31D, 0x1113 | PALETTE_31D, 0x1115 | PALETTE_31D, 0x1112 | PALETTE_31D, 0x1114 | PALETTE_31D, }; static const PalSpriteID _bridge_sprite_table_2_poles[] = { @@ -116,74 +116,74 @@ static const PalSpriteID _bridge_sprite_table_4_poles[] = { }; static const PalSpriteID _bridge_sprite_table_5_0[] = { - 0x32189A9, 0x321899F, 0x32189B1, 0x0, 0x32189A5, 0x3218997, 0x32189AD, 0x0, - 0x321899D, 0x321899F, 0x32189B1, 0x0, 0x3218995, 0x3218997, 0x32189AD, 0x0, - 0x32190F2, 0x321899F, 0x32189B1, 0x0, 0x32190EE, 0x3218997, 0x32189AD, 0x0, - 0x321911A, 0x321899F, 0x32189B1, 0x0, 0x3219116, 0x3218997, 0x32189AD, 0x0, + 0x9A9 | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A5 | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x99D | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x995 | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x10F2 | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10EE | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x111A | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1116 | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0, SPR_OPENTTD_BASE + 35, }; static const PalSpriteID _bridge_sprite_table_5_1[] = { - 0x32189AA, 0x32189A0, 0x32189B2, 0x0, 0x32189A6, 0x3218998, 0x32189AE, 0x0, - 0x321899E, 0x32189A0, 0x32189B2, 0x0, 0x3218996, 0x3218998, 0x32189AE, 0x0, - 0x32190F3, 0x32189A0, 0x32189B2, 0x0, 0x32190EF, 0x3218998, 0x32189AE, 0x0, - 0x321911B, 0x32189A0, 0x32189B2, 0x0, 0x3219117, 0x3218998, 0x32189AE, 0x0, + 0x9AA | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A6 | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x99E | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x996 | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x10F3 | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10EF | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x111B | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1117 | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0, SPR_OPENTTD_BASE + 36, }; static const PalSpriteID _bridge_sprite_table_5_2[] = { - 0x32189AC, 0x32189A4, 0x32189B4, 0x0, 0x32189A8, 0x321899C, 0x32189B0, 0x0, - 0x32189A2, 0x32189A4, 0x32189B4, 0x0, 0x321899A, 0x321899C, 0x32189B0, 0x0, - 0x32190F5, 0x32189A4, 0x32189B4, 0x0, 0x32190F1, 0x321899C, 0x32189B0, 0x0, - 0x321911D, 0x32189A4, 0x32189B4, 0x0, 0x3219119, 0x321899C, 0x32189B0, 0x0, + 0x9AC | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A8 | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x9A2 | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x99A | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x10F5 | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10F1 | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x111D | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1119 | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0, SPR_OPENTTD_BASE + 36, }; static const PalSpriteID _bridge_sprite_table_5_3[] = { - 0x32189AB, 0x32189A3, 0x32189B3, 0x0, 0x32189A7, 0x321899B, 0x32189AF, 0x0, - 0x32189A1, 0x32189A3, 0x32189B3, 0x0, 0x3218999, 0x321899B, 0x32189AF, 0x0, - 0x32190F4, 0x32189A3, 0x32189B3, 0x0, 0x32190F0, 0x321899B, 0x32189AF, 0x0, - 0x321911C, 0x32189A3, 0x32189B3, 0x0, 0x3219118, 0x321899B, 0x32189AF, 0x0, + 0x9AB | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A7 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x9A1 | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x999 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x10F4 | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10F0 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x111C | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1118 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0, SPR_OPENTTD_BASE + 35, }; static const PalSpriteID _bridge_sprite_table_5_4[] = { - 0x32189B6, 0x32189BA, 0x32189BC, 0x0, 0x32189B5, 0x32189B9, 0x32189BB, 0x0, - 0x32189B8, 0x32189BA, 0x32189BC, 0x0, 0x32189B7, 0x32189B9, 0x32189BB, 0x0, - 0x32190F7, 0x32189BA, 0x32189BC, 0x0, 0x32190F6, 0x32189B9, 0x32189BB, 0x0, - 0x321911F, 0x32189BA, 0x32189BC, 0x0, 0x321911E, 0x32189B9, 0x32189BB, 0x0, + 0x9B6 | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9B5 | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x9B8 | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9B7 | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x10F7 | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10F6 | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0x111F | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x111E | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0, SPR_OPENTTD_BASE+38, 0x0, 0x0, 0x0, SPR_OPENTTD_BASE + 37, }; static const PalSpriteID _bridge_sprite_table_5_5[] = { - 0x32189BD, 0x32189C1, 0x0, 0x0, 0x32189BE, 0x32189C2, 0x0, 0x0, - 0x32189BF, 0x32189C1, 0x0, 0x0, 0x32189C0, 0x32189C2, 0x0, 0x0, - 0x32190F8, 0x32189C1, 0x0, 0x0, 0x32190F9, 0x32189C2, 0x0, 0x0, - 0x3219120, 0x32189C1, 0x0, 0x0, 0x3219121, 0x32189C2, 0x0, 0x0, + 0x9BD | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x9BE | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, + 0x9BF | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x9C0 | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, + 0x10F8 | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x10F9 | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, + 0x1120 | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x1121 | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x0, SPR_OPENTTD_BASE + 35, }; static const PalSpriteID _bridge_sprite_table_5_6[] = { 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, - 0x321898E, 0x3218990, 0x321898D, 0x321898F, 0x3218992, 0x3218994, 0x3218991, 0x3218993, - 0x32190E7, 0x32190E9, 0x32190E6, 0x32190E8, 0x32190EB, 0x32190ED, 0x32190EA, 0x32190EC, - 0x321910F, 0x3219111, 0x321910E, 0x3219110, 0x3219113, 0x3219115, 0x3219112, 0x3219114, + 0x98E | PALETTE_TO_STRUCT_YELLOW, 0x990 | PALETTE_TO_STRUCT_YELLOW, 0x98D | PALETTE_TO_STRUCT_YELLOW, 0x98F | PALETTE_TO_STRUCT_YELLOW, 0x992 | PALETTE_TO_STRUCT_YELLOW, 0x994 | PALETTE_TO_STRUCT_YELLOW, 0x991 | PALETTE_TO_STRUCT_YELLOW, 0x993 | PALETTE_TO_STRUCT_YELLOW, + 0x10E7 | PALETTE_TO_STRUCT_YELLOW, 0x10E9 | PALETTE_TO_STRUCT_YELLOW, 0x10E6 | PALETTE_TO_STRUCT_YELLOW, 0x10E8 | PALETTE_TO_STRUCT_YELLOW, 0x10EB | PALETTE_TO_STRUCT_YELLOW, 0x10ED | PALETTE_TO_STRUCT_YELLOW, 0x10EA | PALETTE_TO_STRUCT_YELLOW, 0x10EC | PALETTE_TO_STRUCT_YELLOW, + 0x110F | PALETTE_TO_STRUCT_YELLOW, 0x1111 | PALETTE_TO_STRUCT_YELLOW, 0x110E | PALETTE_TO_STRUCT_YELLOW, 0x1110 | PALETTE_TO_STRUCT_YELLOW, 0x1113 | PALETTE_TO_STRUCT_YELLOW, 0x1115 | PALETTE_TO_STRUCT_YELLOW, 0x1112 | PALETTE_TO_STRUCT_YELLOW, 0x1114 | PALETTE_TO_STRUCT_YELLOW, 0x0, SPR_OPENTTD_BASE + 35, }; static const PalSpriteID _bridge_sprite_table_5_poles[] = { - SPR_OPENTTD_BASE + 36 + 0x3218000, - SPR_OPENTTD_BASE + 37 + 0x3218000, - SPR_OPENTTD_BASE + 37 + 0x3218000, - SPR_OPENTTD_BASE + 36 + 0x3218000, - SPR_OPENTTD_BASE + 38 + 0x3218000, + SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 38 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), 0x0, - SPR_OPENTTD_BASE + 33 + 0x3218000, - SPR_OPENTTD_BASE + 34 + 0x3218000, - SPR_OPENTTD_BASE + 34 + 0x3218000, - SPR_OPENTTD_BASE + 33 + 0x3218000, - SPR_OPENTTD_BASE + 35 + 0x3218000, + SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 35 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), 0x0, 0x0, @@ -191,68 +191,68 @@ static const PalSpriteID _bridge_sprite_table_5_poles[] = { }; static const PalSpriteID _bridge_sprite_table_3_0[] = { - 0x32089A9, 0x320899F, 0x32089B1, 0x0, 0x32089A5, 0x3208997, 0x32089AD, 0x0, - 0x320899D, 0x320899F, 0x32089B1, 0x0, 0x3208995, 0x3208997, 0x32089AD, 0x0, - 0x32090F2, 0x320899F, 0x32089B1, 0x0, 0x32090EE, 0x3208997, 0x32089AD, 0x0, - 0x320911A, 0x320899F, 0x32089B1, 0x0, 0x3209116, 0x3208997, 0x32089AD, 0x0, + 0x9A9 | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A5 | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x99D | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x995 | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x10F2 | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10EE | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x111A | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1116 | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0, }; static const PalSpriteID _bridge_sprite_table_3_1[] = { - 0x32089AA, 0x32089A0, 0x32089B2, 0x0, 0x32089A6, 0x3208998, 0x32089AE, 0x0, - 0x320899E, 0x32089A0, 0x32089B2, 0x0, 0x3208996, 0x3208998, 0x32089AE, 0x0, - 0x32090F3, 0x32089A0, 0x32089B2, 0x0, 0x32090EF, 0x3208998, 0x32089AE, 0x0, - 0x320911B, 0x32089A0, 0x32089B2, 0x0, 0x3209117, 0x3208998, 0x32089AE, 0x0, + 0x9AA | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A6 | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x99E | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x996 | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x10F3 | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10EF | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x111B | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1117 | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0, }; static const PalSpriteID _bridge_sprite_table_3_2[] = { - 0x32089AC, 0x32089A4, 0x32089B4, 0x0, 0x32089A8, 0x320899C, 0x32089B0, 0x0, - 0x32089A2, 0x32089A4, 0x32089B4, 0x0, 0x320899A, 0x320899C, 0x32089B0, 0x0, - 0x32090F5, 0x32089A4, 0x32089B4, 0x0, 0x32090F1, 0x320899C, 0x32089B0, 0x0, - 0x320911D, 0x32089A4, 0x32089B4, 0x0, 0x3209119, 0x320899C, 0x32089B0, 0x0, + 0x9AC | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A8 | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x9A2 | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x99A | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x10F5 | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10F1 | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x111D | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1119 | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0, }; static const PalSpriteID _bridge_sprite_table_3_3[] = { - 0x32089AB, 0x32089A3, 0x32089B3, 0x0, 0x32089A7, 0x320899B, 0x32089AF, 0x0, - 0x32089A1, 0x32089A3, 0x32089B3, 0x0, 0x3208999, 0x320899B, 0x32089AF, 0x0, - 0x32090F4, 0x32089A3, 0x32089B3, 0x0, 0x32090F0, 0x320899B, 0x32089AF, 0x0, - 0x320911C, 0x32089A3, 0x32089B3, 0x0, 0x3209118, 0x320899B, 0x32089AF, 0x0, + 0x9AB | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A7 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x9A1 | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x999 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x10F4 | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10F0 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x111C | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1118 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0, }; static const PalSpriteID _bridge_sprite_table_3_4[] = { - 0x32089B6, 0x32089BA, 0x32089BC, 0x0, 0x32089B5, 0x32089B9, 0x32089BB, 0x0, - 0x32089B8, 0x32089BA, 0x32089BC, 0x0, 0x32089B7, 0x32089B9, 0x32089BB, 0x0, - 0x32090F7, 0x32089BA, 0x32089BC, 0x0, 0x32090F6, 0x32089B9, 0x32089BB, 0x0, - 0x320911F, 0x32089BA, 0x32089BC, 0x0, 0x320911E, 0x32089B9, 0x32089BB, 0x0, + 0x9B6 | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9B5 | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x9B8 | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9B7 | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x10F7 | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10F6 | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0, + 0x111F | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x111E | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0, }; static const PalSpriteID _bridge_sprite_table_3_5[] = { - 0x32089BD, 0x32089C1, 0x0, 0x0, 0x32089BE, 0x32089C2, 0x0, 0x0, - 0x32089BF, 0x32089C1, 0x0, 0x0, 0x32089C0, 0x32089C2, 0x0, 0x0, - 0x32090F8, 0x32089C1, 0x0, 0x0, 0x32090F9, 0x32089C2, 0x0, 0x0, - 0x3209120, 0x32089C1, 0x0, 0x0, 0x3209121, 0x32089C2, 0x0, 0x0, + 0x9BD | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x9BE | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, + 0x9BF | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x9C0 | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, + 0x10F8 | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x10F9 | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, + 0x1120 | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x1121 | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, }; static const PalSpriteID _bridge_sprite_table_3_6[] = { 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, - 0x320898E, 0x3208990, 0x320898D, 0x320898F, 0x3208992, 0x3208994, 0x3208991, 0x3208993, - 0x32090E7, 0x32090E9, 0x32090E6, 0x32090E8, 0x32090EB, 0x32090ED, 0x32090EA, 0x32090EC, - 0x320910F, 0x3209111, 0x320910E, 0x3209110, 0x3209113, 0x3209115, 0x3209112, 0x3209114, + 0x98E | PALETTE_TO_STRUCT_CONCRETE, 0x990 | PALETTE_TO_STRUCT_CONCRETE, 0x98D | PALETTE_TO_STRUCT_CONCRETE, 0x98F | PALETTE_TO_STRUCT_CONCRETE, 0x992 | PALETTE_TO_STRUCT_CONCRETE, 0x994 | PALETTE_TO_STRUCT_CONCRETE, 0x991 | PALETTE_TO_STRUCT_CONCRETE, 0x993 | PALETTE_TO_STRUCT_CONCRETE, + 0x10E7 | PALETTE_TO_STRUCT_CONCRETE, 0x10E9 | PALETTE_TO_STRUCT_CONCRETE, 0x10E6 | PALETTE_TO_STRUCT_CONCRETE, 0x10E8 | PALETTE_TO_STRUCT_CONCRETE, 0x10EB | PALETTE_TO_STRUCT_CONCRETE, 0x10ED | PALETTE_TO_STRUCT_CONCRETE, 0x10EA | PALETTE_TO_STRUCT_CONCRETE, 0x10EC | PALETTE_TO_STRUCT_CONCRETE, + 0x110F | PALETTE_TO_STRUCT_CONCRETE, 0x1111 | PALETTE_TO_STRUCT_CONCRETE, 0x110E | PALETTE_TO_STRUCT_CONCRETE, 0x1110 | PALETTE_TO_STRUCT_CONCRETE, 0x1113 | PALETTE_TO_STRUCT_CONCRETE, 0x1115 | PALETTE_TO_STRUCT_CONCRETE, 0x1112 | PALETTE_TO_STRUCT_CONCRETE, 0x1114 | PALETTE_TO_STRUCT_CONCRETE, 0x0, SPR_OPENTTD_BASE + 35, }; static const PalSpriteID _bridge_sprite_table_3_poles[] = { - SPR_OPENTTD_BASE + 36 + 0x3208000, - SPR_OPENTTD_BASE + 37 + 0x3208000, - SPR_OPENTTD_BASE + 37 + 0x3208000, - SPR_OPENTTD_BASE + 36 + 0x3208000, - SPR_OPENTTD_BASE + 38 + 0x3208000, + SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 38 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), 0x0, - SPR_OPENTTD_BASE + 33 + 0x3208000, - SPR_OPENTTD_BASE + 34 + 0x3208000, - SPR_OPENTTD_BASE + 34 + 0x3208000, - SPR_OPENTTD_BASE + 33 + 0x3208000, - SPR_OPENTTD_BASE + 35 + 0x3208000, + SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), + SPR_OPENTTD_BASE + 35 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE), 0x0, 0x0, @@ -261,9 +261,9 @@ static const PalSpriteID _bridge_sprite_table_3_poles[] = { static const PalSpriteID _bridge_sprite_table_1_1[] = { 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, - 0x31E898E, 0x31E8990, 0x31E898D, 0x31E898F, 0x31E8992, 0x31E8994, 0x31E8991, 0x31E8993, - 0x31E90E7, 0x31E90E9, 0x31E90E6, 0x31E90E8, 0x31E90EB, 0x31E90ED, 0x31E90EA, 0x31E90EC, - 0x31E910F, 0x31E9111, 0x31E910E, 0x31E9110, 0x31E9113, 0x31E9115, 0x31E9112, 0x31E9114, + 0x98E | PALETTE_TO_STRUCT_RED, 0x990 | PALETTE_TO_STRUCT_RED, 0x98D | PALETTE_TO_STRUCT_RED, 0x98F | PALETTE_TO_STRUCT_RED, 0x992 | PALETTE_TO_STRUCT_RED, 0x994 | PALETTE_TO_STRUCT_RED, 0x991 | PALETTE_TO_STRUCT_RED, 0x993 | PALETTE_TO_STRUCT_RED, + 0x10E7 | PALETTE_TO_STRUCT_RED, 0x10E9 | PALETTE_TO_STRUCT_RED, 0x10E6 | PALETTE_TO_STRUCT_RED, 0x10E8 | PALETTE_TO_STRUCT_RED, 0x10EB | PALETTE_TO_STRUCT_RED, 0x10ED | PALETTE_TO_STRUCT_RED, 0x10EA | PALETTE_TO_STRUCT_RED, 0x10EC | PALETTE_TO_STRUCT_RED, + 0x110F | PALETTE_TO_STRUCT_RED, 0x1111 | PALETTE_TO_STRUCT_RED, 0x110E | PALETTE_TO_STRUCT_RED, 0x1110 | PALETTE_TO_STRUCT_RED, 0x1113 | PALETTE_TO_STRUCT_RED, 0x1115 | PALETTE_TO_STRUCT_RED, 0x1112 | PALETTE_TO_STRUCT_RED, 0x1114 | PALETTE_TO_STRUCT_RED, }; static const PalSpriteID _bridge_sprite_table_1_poles[] = { @@ -335,31 +335,31 @@ static const PalSpriteID _bridge_sprite_table_6_poles[] = { static const PalSpriteID _bridge_sprite_table_7_0[] = { - 0x31C89CD, 0x31C89D9, 0x0, 0x0, 0x31C89CE, 0x31C89DA, 0x0, 0x0, - 0x31C89D3, 0x31C89D9, 0x0, 0x0, 0x31C89D4, 0x31C89DA, 0x0, 0x0, - 0x31C90FC, 0x31C89D9, 0x0, 0x0, 0x31C90FD, 0x31C89DA, 0x0, 0x0, - 0x31C9124, 0x31C89D9, 0x0, 0x0, 0x31C9125, 0x31C89DA, 0x0, 0x0, + 0x9CD | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x9CE | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, + 0x9D3 | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x9D4 | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, + 0x10FC | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x10FD | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, + 0x1124 | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x1125 | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, }; static const PalSpriteID _bridge_sprite_table_7_1[] = { - 0x31C89CB, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D0, 0x31C89DC, 0x31C89E0, 0x0, - 0x31C89D1, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D6, 0x31C89DC, 0x31C89E0, 0x0, - 0x31C90FA, 0x31C89D7, 0x31C89DD, 0x0, 0x31C90FF, 0x31C89DC, 0x31C89E0, 0x0, - 0x31C9122, 0x31C89D7, 0x31C89DD, 0x0, 0x31C9127, 0x31C89DC, 0x31C89E0, 0x0, + 0x9CB | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9D0 | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0, + 0x9D1 | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9D6 | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0, + 0x10FA | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x10FF | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0, + 0x1122 | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x1127 | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0, }; static const PalSpriteID _bridge_sprite_table_7_2[] = { - 0x31C89CC, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89CF, 0x31C89DB, 0x31C89DF, 0x0, - 0x31C89D2, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89D5, 0x31C89DB, 0x31C89DF, 0x0, - 0x31C90FB, 0x31C89D8, 0x31C89DE, 0x0, 0x31C90FE, 0x31C89DB, 0x31C89DF, 0x0, - 0x31C9123, 0x31C89D8, 0x31C89DE, 0x0, 0x31C9126, 0x31C89DB, 0x31C89DF, 0x0, + 0x9CC | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9CF | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0, + 0x9D2 | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9D5 | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0, + 0x10FB | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x10FE | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0, + 0x1123 | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x1126 | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0, }; static const PalSpriteID _bridge_sprite_table_7_3[] = { 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, - 0x31C898E, 0x31C8990, 0x31C898D, 0x31C898F, 0x31C8992, 0x31C8994, 0x31C8991, 0x31C8993, - 0x31C90E7, 0x31C90E9, 0x31C90E6, 0x31C90E8, 0x31C90EB, 0x31C90ED, 0x31C90EA, 0x31C90EC, - 0x31C910F, 0x31C9111, 0x31C910E, 0x31C9110, 0x31C9113, 0x31C9115, 0x31C9112, 0x31C9114, + 0x98E | PALETTE_TO_STRUCT_BROWN, 0x990 | PALETTE_TO_STRUCT_BROWN, 0x98D | PALETTE_TO_STRUCT_BROWN, 0x98F | PALETTE_TO_STRUCT_BROWN, 0x992 | PALETTE_TO_STRUCT_BROWN, 0x994 | PALETTE_TO_STRUCT_BROWN, 0x991 | PALETTE_TO_STRUCT_BROWN, 0x993 | PALETTE_TO_STRUCT_BROWN, + 0x10E7 | PALETTE_TO_STRUCT_BROWN, 0x10E9 | PALETTE_TO_STRUCT_BROWN, 0x10E6 | PALETTE_TO_STRUCT_BROWN, 0x10E8 | PALETTE_TO_STRUCT_BROWN, 0x10EB | PALETTE_TO_STRUCT_BROWN, 0x10ED | PALETTE_TO_STRUCT_BROWN, 0x10EA | PALETTE_TO_STRUCT_BROWN, 0x10EC | PALETTE_TO_STRUCT_BROWN, + 0x110F | PALETTE_TO_STRUCT_BROWN, 0x1111 | PALETTE_TO_STRUCT_BROWN, 0x110E | PALETTE_TO_STRUCT_BROWN, 0x1110 | PALETTE_TO_STRUCT_BROWN, 0x1113 | PALETTE_TO_STRUCT_BROWN, 0x1115 | PALETTE_TO_STRUCT_BROWN, 0x1112 | PALETTE_TO_STRUCT_BROWN, 0x1114 | PALETTE_TO_STRUCT_BROWN, }; static const PalSpriteID _bridge_sprite_table_7_poles[] = { @@ -382,31 +382,31 @@ static const PalSpriteID _bridge_sprite_table_7_poles[] = { }; static const PalSpriteID _bridge_sprite_table_8_0[] = { - 0x31E89CD, 0x31E89D9, 0x0, 0x0, 0x31E89CE, 0x31E89DA, 0x0, 0x0, - 0x31E89D3, 0x31E89D9, 0x0, 0x0, 0x31E89D4, 0x31E89DA, 0x0, 0x0, - 0x31E90FC, 0x31E89D9, 0x0, 0x0, 0x31E90FD, 0x31E89DA, 0x0, 0x0, - 0x31E9124, 0x31E89D9, 0x0, 0x0, 0x31E9125, 0x31E89DA, 0x0, 0x0, + 0x9CD | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x9CE | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0, + 0x9D3 | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x9D4 | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0, + 0x10FC | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x10FD | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0, + 0x1124 | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x1125 | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0, }; static const PalSpriteID _bridge_sprite_table_8_1[] = { - 0x31E89CB, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D0, 0x31E89DC, 0x31E89E0, 0x0, - 0x31E89D1, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D6, 0x31E89DC, 0x31E89E0, 0x0, - 0x31E90FA, 0x31E89D7, 0x31E89DD, 0x0, 0x31E90FF, 0x31E89DC, 0x31E89E0, 0x0, - 0x31E9122, 0x31E89D7, 0x31E89DD, 0x0, 0x31E9127, 0x31E89DC, 0x31E89E0, 0x0, + 0x9CB | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x9D0 | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0, + 0x9D1 | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x9D6 | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0, + 0x10FA | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x10FF | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0, + 0x1122 | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x1127 | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0, }; static const PalSpriteID _bridge_sprite_table_8_2[] = { - 0x31E89CC, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89CF, 0x31E89DB, 0x31E89DF, 0x0, - 0x31E89D2, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89D5, 0x31E89DB, 0x31E89DF, 0x0, - 0x31E90FB, 0x31E89D8, 0x31E89DE, 0x0, 0x31E90FE, 0x31E89DB, 0x31E89DF, 0x0, - 0x31E9123, 0x31E89D8, 0x31E89DE, 0x0, 0x31E9126, 0x31E89DB, 0x31E89DF, 0x0, + 0x9CC | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x9CF | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0, + 0x9D2 | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x9D5 | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0, + 0x10FB | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x10FE | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0, + 0x1123 | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x1126 | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0, }; static const PalSpriteID _bridge_sprite_table_8_3[] = { 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, - 0x31E898E, 0x31E8990, 0x31E898D, 0x31E898F, 0x31E8992, 0x31E8994, 0x31E8991, 0x31E8993, - 0x31E90E7, 0x31E90E9, 0x31E90E6, 0x31E90E8, 0x31E90EB, 0x31E90ED, 0x31E90EA, 0x31E90EC, - 0x31E910F, 0x31E9111, 0x31E910E, 0x31E9110, 0x31E9113, 0x31E9115, 0x31E9112, 0x31E9114, + 0x98E | PALETTE_TO_STRUCT_RED, 0x990 | PALETTE_TO_STRUCT_RED, 0x98D | PALETTE_TO_STRUCT_RED, 0x98F | PALETTE_TO_STRUCT_RED, 0x992 | PALETTE_TO_STRUCT_RED, 0x994 | PALETTE_TO_STRUCT_RED, 0x991 | PALETTE_TO_STRUCT_RED, 0x993 | PALETTE_TO_STRUCT_RED, + 0x10E7 | PALETTE_TO_STRUCT_RED, 0x10E9 | PALETTE_TO_STRUCT_RED, 0x10E6 | PALETTE_TO_STRUCT_RED, 0x10E8 | PALETTE_TO_STRUCT_RED, 0x10EB | PALETTE_TO_STRUCT_RED, 0x10ED | PALETTE_TO_STRUCT_RED, 0x10EA | PALETTE_TO_STRUCT_RED, 0x10EC | PALETTE_TO_STRUCT_RED, + 0x110F | PALETTE_TO_STRUCT_RED, 0x1111 | PALETTE_TO_STRUCT_RED, 0x110E | PALETTE_TO_STRUCT_RED, 0x1110 | PALETTE_TO_STRUCT_RED, 0x1113 | PALETTE_TO_STRUCT_RED, 0x1115 | PALETTE_TO_STRUCT_RED, 0x1112 | PALETTE_TO_STRUCT_RED, 0x1114 | PALETTE_TO_STRUCT_RED, }; static const PalSpriteID _bridge_sprite_table_8_poles[] = { @@ -463,10 +463,10 @@ static const PalSpriteID _bridge_sprite_table_0_poles[] = { static const PalSpriteID _bridge_sprite_table_1_0[] = { - 0x31E89BD, 0x31E89C1, 0x9C9, 0x0, 0x31E89BE, 0x31E89C2, 0x9CA, 0x0, - 0x31E89BF, 0x31E89C1, 0x9C9, 0x0, 0x31E89C0, 0x31E89C2, 0x9CA, 0x0, - 0x31E90F8, 0x31E89C1, 0x9C9, 0x0, 0x31E90F9, 0x31E89C2, 0x9CA, 0x0, - 0x31E9120, 0x31E89C1, 0x9C9, 0x0, 0x31E9121, 0x31E89C2, 0x9CA, 0x0, + 0x9BD | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x9BE | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0, + 0x9BF | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x9C0 | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0, + 0x10F8 | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x10F9 | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0, + 0x1120 | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x1121 | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0, }; static const PalSpriteID _bridge_sprite_table_9_0[] = { @@ -517,39 +517,39 @@ static const PalSpriteID _bridge_sprite_table_10_poles[] = { }; static const PalSpriteID _bridge_sprite_table_11_0[] = { - 0x3218A0B, 0x3218A01, 0x0, 0x0, 0x3218A0C, 0x3218A02, 0x0, 0x0, - 0x3218A11, 0x3218A01, 0x0, 0x0, 0x3218A12, 0x3218A02, 0x0, 0x0, - 0x3218A17, 0x3218A01, 0x0, 0x0, 0x3218A18, 0x3218A02, 0x0, 0x0, - 0x3218A1D, 0x3218A01, 0x0, 0x0, 0x3218A1E, 0x3218A02, 0x0, 0x0, + 0xA0B | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA0C | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, + 0xA11 | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA12 | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, + 0xA17 | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA18 | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, + 0xA1D | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA1E | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, }; static const PalSpriteID _bridge_sprite_table_11_1[] = { - 0x3218A09, 0x32189FF, 0x3218A05, 0x0, 0x3218A0E, 0x3218A04, 0x3218A08, 0x0, - 0x3218A0F, 0x32189FF, 0x3218A05, 0x0, 0x3218A14, 0x3218A04, 0x3218A08, 0x0, - 0x3218A15, 0x32189FF, 0x3218A05, 0x0, 0x3218A1A, 0x3218A04, 0x3218A08, 0x0, - 0x3218A1B, 0x32189FF, 0x3218A05, 0x0, 0x3218A20, 0x3218A04, 0x3218A08, 0x0, + 0xA09 | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA0E | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0xA0F | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA14 | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0xA15 | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA1A | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0xA1B | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA20 | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0, }; static const PalSpriteID _bridge_sprite_table_11_2[] = { - 0x3218A0A, 0x3218A00, 0x3218A06, 0x0, 0x3218A0D, 0x3218A03, 0x3218A07, 0x0, - 0x3218A10, 0x3218A00, 0x3218A06, 0x0, 0x3218A13, 0x3218A03, 0x3218A07, 0x0, - 0x3218A16, 0x3218A00, 0x3218A06, 0x0, 0x3218A19, 0x3218A03, 0x3218A07, 0x0, - 0x3218A1C, 0x3218A00, 0x3218A06, 0x0, 0x3218A1F, 0x3218A03, 0x3218A07, 0x0, + 0xA0A | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA0D | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0xA10 | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA13 | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0xA16 | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA19 | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0, + 0xA1C | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA1F | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0, }; static const PalSpriteID _bridge_sprite_table_11_poles[] = { - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 38 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 38 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), 0x0, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, - SPR_OPENTTD_BASE + 35 + 2*6 + 0x3218000, + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), + SPR_OPENTTD_BASE + 35 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW), 0x0, 0x0, @@ -557,39 +557,39 @@ static const PalSpriteID _bridge_sprite_table_11_poles[] = { }; static const PalSpriteID _bridge_sprite_table_12_0[] = { - 0x3238A0B, 0x3238A01, 0x0, 0x0, 0x3238A0C, 0x3238A02, 0x0, 0x0, - 0x3238A11, 0x3238A01, 0x0, 0x0, 0x3238A12, 0x3238A02, 0x0, 0x0, - 0x3238A17, 0x3238A01, 0x0, 0x0, 0x3238A18, 0x3238A02, 0x0, 0x0, - 0x3238A1D, 0x3238A01, 0x0, 0x0, 0x3238A1E, 0x3238A02, 0x0, 0x0, + 0xA0B | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA0C | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, + 0xA11 | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA12 | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, + 0xA17 | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA18 | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, + 0xA1D | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA1E | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, }; static const PalSpriteID _bridge_sprite_table_12_1[] = { - 0x3238A09, 0x32389FF, 0x3238A05, 0x0, 0x3238A0E, 0x3238A04, 0x3238A08, 0x0, - 0x3238A0F, 0x32389FF, 0x3238A05, 0x0, 0x3238A14, 0x3238A04, 0x3238A08, 0x0, - 0x3238A15, 0x32389FF, 0x3238A05, 0x0, 0x3238A1A, 0x3238A04, 0x3238A08, 0x0, - 0x3238A1B, 0x32389FF, 0x3238A05, 0x0, 0x3238A20, 0x3238A04, 0x3238A08, 0x0, + 0xA09 | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA0E | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0, + 0xA0F | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA14 | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0, + 0xA15 | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA1A | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0, + 0xA1B | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA20 | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0, }; static const PalSpriteID _bridge_sprite_table_12_2[] = { - 0x3238A0A, 0x3238A00, 0x3238A06, 0x0, 0x3238A0D, 0x3238A03, 0x3238A07, 0x0, - 0x3238A10, 0x3238A00, 0x3238A06, 0x0, 0x3238A13, 0x3238A03, 0x3238A07, 0x0, - 0x3238A16, 0x3238A00, 0x3238A06, 0x0, 0x3238A19, 0x3238A03, 0x3238A07, 0x0, - 0x3238A1C, 0x3238A00, 0x3238A06, 0x0, 0x3238A1F, 0x3238A03, 0x3238A07, 0x0, + 0xA0A | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA0D | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0, + 0xA10 | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA13 | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0, + 0xA16 | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA19 | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0, + 0xA1C | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA1F | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0, }; static const PalSpriteID _bridge_sprite_table_12_poles[] = { - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 38 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 38 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), 0x0, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, - SPR_OPENTTD_BASE + 35 + 2*6 + 0x3238000, + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), + SPR_OPENTTD_BASE + 35 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY), 0x0, 0x0, diff --git a/table/industry_land.h b/table/industry_land.h index 38b4e03081..19629f4f03 100644 --- a/table/industry_land.h +++ b/table/industry_land.h @@ -75,26 +75,26 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0), - M( 0xf54, 0x881e, 1, 1, 14, 14, 4, 0), - M( 0xf54, 0x881f, 1, 1, 14, 14, 24, 0), - M( 0xf54, 0x8820, 1, 1, 14, 14, 27, 0), - M( 0x58c, 0x8820, 1, 1, 14, 14, 27, 0), - M( 0xf54, 0x8821, 3, 3, 10, 9, 3, 0), - M( 0xf54, 0x8822, 3, 3, 10, 9, 63, 0), - M( 0xf54, 0x8823, 3, 3, 10, 9, 62, 0), - M( 0x58c, 0x8823, 3, 3, 10, 9, 62, 0), - M( 0xf54, 0x8824, 4, 4, 7, 7, 3, 0), - M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0), - M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0), - M( 0x58c, 0x8826, 4, 4, 7, 7, 80, 0), - M( 0xf54, 0x8827, 2, 0, 12, 16, 51, 0), - M( 0xf54, 0x8828, 2, 0, 12, 16, 51, 0), - M( 0xf54, 0x8829, 2, 0, 12, 16, 51, 0), - M( 0x58c, 0x8829, 2, 0, 12, 16, 51, 0), - M( 0xf54, 0x882a, 0, 0, 16, 16, 26, 0), - M( 0xf54, 0x882b, 0, 0, 16, 16, 44, 0), - M( 0xf54, 0x882c, 0, 0, 16, 16, 46, 0), - M( 0x58c, 0x882c, 0, 0, 16, 16, 46, 0), + M( 0xf54, 0x81e | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 4, 0), + M( 0xf54, 0x81f | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 24, 0), + M( 0xf54, 0x820 | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 27, 0), + M( 0x58c, 0x820 | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 27, 0), + M( 0xf54, 0x821 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 3, 0), + M( 0xf54, 0x822 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 63, 0), + M( 0xf54, 0x823 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 62, 0), + M( 0x58c, 0x823 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 62, 0), + M( 0xf54, 0x824 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 3, 0), + M( 0xf54, 0x825 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 72, 0), + M( 0xf54, 0x825 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 72, 0), + M( 0x58c, 0x826 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 80, 0), + M( 0xf54, 0x827 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0), + M( 0xf54, 0x828 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0), + M( 0xf54, 0x829 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0), + M( 0x58c, 0x829 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0), + M( 0xf54, 0x82a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 26, 0), + M( 0xf54, 0x82b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 44, 0), + M( 0xf54, 0x82c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 46, 0), + M( 0x58c, 0x82c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 46, 0), M( 0xf54, 0x82d, 3, 1, 10, 13, 2, 0), M( 0xf54, 0x82e, 3, 1, 10, 13, 11, 0), M( 0xf54, 0x82f, 3, 1, 10, 13, 11, 0), @@ -135,18 +135,18 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x87d, 0x880, 0, 0, 16, 16, 20, 0), M( 0x87d, 0x87f, 0, 0, 16, 16, 20, 0), M( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0), - M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), - M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), - M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), - M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), - M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), - M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), - M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), - M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), + M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), - M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0), - M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0), - M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0), + M( 0x83e, 0x83f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83e, 0x83f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), + M( 0x83e, 0x83f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0), M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0), M( 0x840, 0x841, 0, 0, 16, 16, 18, 0), M( 0x840, 0x841, 0, 0, 16, 16, 18, 0), @@ -162,35 +162,35 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x7e6, 0x869, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), - M( 0x8862, 0x8866, 0, 0, 16, 16, 50, 0), + M( 0x862 | PALETTE_MODIFIER_COLOR, 0x866 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86a, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), - M( 0x8863, 0x8867, 0, 0, 16, 16, 50, 0), + M( 0x863 | PALETTE_MODIFIER_COLOR, 0x867 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86b, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), - M( 0x8864, 0x8868, 0, 0, 16, 16, 50, 0), + M( 0x864 | PALETTE_MODIFIER_COLOR, 0x868 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86c, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), - M( 0x8865, 0x0, 0, 0, 1, 1, 0, 0), - M( 0xf54, 0x8871, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8879, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8872, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x887a, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8873, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x887b, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8874, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0), - M( 0xf54, 0x887c, 0, 0, 16, 16, 50, 0), + M( 0x865 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 1, 1, 0, 0), + M( 0xf54, 0x871 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x875 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x875 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x879 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x872 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x876 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x876 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x87a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x873 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x877 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x877 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x87b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x874 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x878 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x878 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf54, 0x87c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x7ea, 3, 2, 8, 8, 18, 0), M( 0xf54, 0x7eb, 3, 2, 8, 8, 37, 0), M( 0xf54, 0x7ec, 3, 2, 8, 8, 49, 0), @@ -214,27 +214,27 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x7e6, 0x85c, 0, 0, 1, 1, 1, 0), M( 0x851, 0x852, 0, 0, 16, 16, 20, 0), M( 0x851, 0x852, 0, 0, 16, 16, 20, 0), - M( 0x8846, 0x8847, 0, 0, 16, 16, 20, 0), + M( 0x846 | PALETTE_MODIFIER_COLOR, 0x847 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0), M( 0x7e6, 0x85d, 0, 0, 1, 1, 1, 0), M( 0x853, 0x854, 0, 0, 16, 16, 20, 0), M( 0x853, 0x854, 0, 0, 16, 16, 20, 0), - M( 0x8848, 0x8849, 0, 0, 16, 16, 20, 0), + M( 0x848 | PALETTE_MODIFIER_COLOR, 0x849 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0), M( 0x7e6, 0x85e, 0, 0, 1, 1, 1, 0), M( 0x855, 0x856, 0, 0, 16, 16, 20, 0), M( 0x855, 0x856, 0, 0, 16, 16, 20, 0), - M( 0x884a, 0x884b, 0, 0, 16, 16, 20, 0), + M( 0x84a | PALETTE_MODIFIER_COLOR, 0x84b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0), M( 0x7e6, 0x85f, 0, 0, 1, 1, 1, 0), M( 0x857, 0x0, 0, 0, 1, 1, 0, 0), M( 0x857, 0x0, 0, 0, 1, 1, 0, 0), - M( 0x884c, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x84c | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 1, 1, 0, 0), M( 0x7e6, 0x860, 0, 0, 1, 1, 1, 0), M( 0x858, 0x859, 0, 0, 16, 16, 20, 0), M( 0x858, 0x859, 0, 0, 16, 16, 20, 0), - M( 0x884d, 0x884e, 0, 0, 16, 16, 20, 0), + M( 0x84d | PALETTE_MODIFIER_COLOR, 0x84e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0), M( 0x7e6, 0x861, 0, 0, 1, 1, 1, 0), M( 0x85a, 0x85b, 0, 0, 16, 16, 20, 0), M( 0x85a, 0x85b, 0, 0, 16, 16, 20, 0), - M( 0x884f, 0x8850, 0, 0, 16, 16, 20, 0), + M( 0x84f | PALETTE_MODIFIER_COLOR, 0x850 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0), M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0), @@ -243,22 +243,22 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x7e6, 0x885, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x885, 0, 0, 16, 16, 25, 0), M( 0x887, 0x885, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x888c, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x888e, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x888f, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8891, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8892, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8894, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8895, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0), - M( 0x7e6, 0x8897, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x88f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x890 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x890 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x891 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x892 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x893 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x893 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x894 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x895 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x896 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x896 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x7e6, 0x897 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x898, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x899, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x899, 0, 0, 16, 16, 25, 0), @@ -475,34 +475,34 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x925, 0x0, 0, 0, 16, 16, 25, 0), M( 0x925, 0x927, 0, 0, 16, 16, 30, 0), M( 0x925, 0x927, 0, 0, 16, 16, 30, 0), - M( 0x11c6, 0x892b, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x892d, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x892e, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x8930, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x8928, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0), - M( 0x11c6, 0x892a, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x930 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x928 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x929 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x929 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), + M( 0x11c6, 0x92a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x869, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0), - M( 0x8862, 0x8866, 0, 0, 16, 16, 50, 0), + M( 0x862 | PALETTE_MODIFIER_COLOR, 0x866 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86a, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0), - M( 0x8863, 0x8867, 0, 0, 16, 16, 50, 0), + M( 0x863 | PALETTE_MODIFIER_COLOR, 0x867 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86b, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0), - M( 0x8864, 0x8868, 0, 0, 16, 16, 50, 0), + M( 0x864 | PALETTE_MODIFIER_COLOR, 0x868 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x86c, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0), - M( 0x8865, 0x0, 0, 0, 1, 1, 0, 0), + M( 0x865 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 1, 1, 0, 0), M( 0x7e6, 0x931, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x935, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x935, 0, 0, 16, 16, 50, 0), @@ -531,18 +531,18 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x9245, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x924b, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x9247, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x924d, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x9246, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0), - M( 0x7e6, 0x924c, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1245 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1248 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1248 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x124b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1247 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x124a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x124a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x124d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1246 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1249 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x1249 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x7e6, 0x124c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x81d, 0x124e, 0, 0, 16, 16, 10, 0), M( 0x81d, 0x124f, 0, 0, 16, 16, 10, 0), M( 0x81d, 0x1250, 0, 0, 16, 16, 10, 0), @@ -634,27 +634,27 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9284, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1284 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9286, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9281, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x9285, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1283 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1283 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1286 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1281 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1282 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1282 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1285 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0), - M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0), - M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1287 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1287 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0), + M( 0x1243, 0x1287 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0), - M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1288 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1288 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0), + M( 0x1244, 0x1288 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0), M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3), - M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3), - M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3), + M( 0x1243, 0x1289 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 3), + M( 0x1243, 0x1289 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 3), + M( 0x1243, 0x1289 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 3), M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0), @@ -671,38 +671,38 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = { M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0), - M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), - M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), + M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), - M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), - M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), - M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), - M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), + M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0), + M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1), + M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1), + M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1), + M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1), }; static const DrawIndustrySpec1Struct _draw_industry_spec1[96] = { diff --git a/table/road_land.h b/table/road_land.h index 0365a9618b..fd01731a71 100644 --- a/table/road_land.h +++ b/table/road_land.h @@ -6,27 +6,27 @@ static const DrawRoadSeqStruct _road_display_datas_0[] = { TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE(0x8584, 0, 15, 16, 1) + TILE_SEQ_LINE(0x584 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1) TILE_SEQ_END() }; static const DrawRoadSeqStruct _road_display_datas_1[] = { TILE_SEQ_BEGIN(0xA4A) TILE_SEQ_LINE(0x580, 0, 0, 1, 16) - TILE_SEQ_LINE(0x8581, 15, 0, 1, 16) + TILE_SEQ_LINE(0x581 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16) TILE_SEQ_END() }; static const DrawRoadSeqStruct _road_display_datas_2[] = { TILE_SEQ_BEGIN(0xA4A) TILE_SEQ_LINE(0x582, 0, 0, 16, 1) - TILE_SEQ_LINE(0x8583, 0, 15, 16, 1) + TILE_SEQ_LINE(0x583 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1) TILE_SEQ_END() }; static const DrawRoadSeqStruct _road_display_datas_3[] = { TILE_SEQ_BEGIN(0xA4A) - TILE_SEQ_LINE(0x8585, 15, 0, 1, 16) + TILE_SEQ_LINE(0x585 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16) TILE_SEQ_END() }; diff --git a/table/sprites.h b/table/sprites.h index b572d0d6ff..421ad74ce8 100644 --- a/table/sprites.h +++ b/table/sprites.h @@ -3,23 +3,25 @@ #ifndef SPRITES_H #define SPRITES_H -/* NOTE: +/** @file sprites.h + This file contails all sprite-related enums and defines. These consist mainly of + the sprite numbers and a bunch of masks and macros to handle sprites and to get + rid of all the magic numbers in the code. + +@NOTE: ALL SPRITE NUMBERS BELOW 5126 are in the main files SPR_CANALS_BASE is in canalsw.grf SPR_SLOPES_BASE is in trkfoundw.grf SPR_OPENTTD_BASE is in openttd.grf -*/ -/* All elements which consist of two elements should have the same name and then suffixes _GROUND and _BUILD for building-type sprites _REAR and _FRONT for transport-type sprites (tiles where vehicles are on) These sprites are split because of the Z order of the elements (like some parts of a bridge are behind the vehicle, while others are before) -*/ -/* + All sprites which are described here are referenced only one to a handful of times throughout the code. When introducing new sprite enums, use meaningful names. Don't be lazy and typing, and only use abbrevations when their meaning is clear or @@ -29,6 +31,8 @@ 30 characters in length. If your editor doen't help you simplifying your work, get a proper editor. If your Operating Systems don't have any decent editors, get a proper Operating System. + + @todo Split the "Sprites" enum into smaller chunks and document them */ @@ -869,7 +873,7 @@ enum Sprites { SPR_IMG_REMOVE = 714 }; -/* Cursor sprite numbers */ +/** Cursor sprite numbers */ typedef enum CursorSprites { /* Terraform */ /* Cursors */ @@ -940,85 +944,127 @@ typedef enum CursorSprites { SPR_CURSOR_ROAD_TUNNEL = 2433, } CursorSprite; -// Animation macro in table/animcursors.h (_animcursors[]) +/// Animation macro in table/animcursors.h (_animcursors[]) enum AnimCursors { - ANIMCURSOR_DEMOLISH = -1, // 704 - 707 - demolish dynamite - ANIMCURSOR_LOWERLAND = -2, // 699 - 701 - lower land tool - ANIMCURSOR_RAISELAND = -3, // 696 - 698 - raise land tool - ANIMCURSOR_PICKSTATION = -4, // 716 - 718 - goto-order icon - ANIMCURSOR_BUILDSIGNALS = -5, // 1292 - 1293 - build signal + ANIMCURSOR_DEMOLISH = -1, ///< 704 - 707 - demolish dynamite + ANIMCURSOR_LOWERLAND = -2, ///< 699 - 701 - lower land tool + ANIMCURSOR_RAISELAND = -3, ///< 696 - 698 - raise land tool + ANIMCURSOR_PICKSTATION = -4, ///< 716 - 718 - goto-order icon + ANIMCURSOR_BUILDSIGNALS = -5, ///< 1292 - 1293 - build signal }; -enum { - MAX_SPRITES = 0x3FFF, //the highest number a sprite can have +/** + * Bitmask setup. For the graphics system, 32 bits are used to define + * the sprite to be displayed. This variable contains various information:

+ *