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:

+ *