(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.
This commit is contained in:
celestar 2005-07-24 15:56:31 +00:00
parent a227065ab7
commit 238e47cd42
32 changed files with 2525 additions and 2429 deletions

17
gfx.c
View File

@ -9,6 +9,7 @@
#include "string.h" #include "string.h"
#include "gfx.h" #include "gfx.h"
#include "table/palettes.h" #include "table/palettes.h"
#include "table/sprites.h"
#include "hal.h" #include "hal.h"
#include "variables.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) void DrawSprite(uint32 img, int x, int y)
{ {
if (img & 0x8000) { if (img & PALETTE_MODIFIER_COLOR) {
_color_remap_ptr = GetNonSprite(img >> 16) + 1; _color_remap_ptr = GetNonSprite(GB(img, PALETTE_SPRITE_START, PALETTE_SPRITE_WIDTH)) + 1;
GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 1); GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 1);
} else if (img & 0x4000) { } else if (img & PALETTE_MODIFIER_TRANSPARENT) {
_color_remap_ptr = GetNonSprite(img >> 16) + 1; _color_remap_ptr = GetNonSprite(GB(img, PALETTE_SPRITE_START, PALETTE_SPRITE_WIDTH)) + 1;
GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 2); GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 2);
} else { } 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; if (cv->sprite == cursor) return;
p = GetSprite(cursor & 0x3FFF); p = GetSprite(cursor & SPRITE_MASK);
cv->sprite = cursor; cv->sprite = cursor;
cv->size.y = p->height; cv->size.y = p->height;
cv->size.x = p->width; cv->size.x = p->width;

5
gfx.h
View File

@ -104,11 +104,6 @@ VARDEF int _pal_last_dirty;
VARDEF bool _use_dos_palette; 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 { typedef struct Colour {
byte r; byte r;
byte g; byte g;

View File

@ -3,6 +3,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "openttd.h" #include "openttd.h"
#include "table/strings.h" #include "table/strings.h"
#include "table/sprites.h"
#include "functions.h" #include "functions.h"
#include "window.h" #include "window.h"
#include "gui.h" #include "gui.h"

View File

@ -348,13 +348,13 @@ static void DrawTile_Industry(TileInfo *ti)
/* Pointer to industry */ /* Pointer to industry */
ind = GetIndustry(_m[ti->tile].m2); 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 */ /* Retrieve pointer to the draw industry tile struct */
dits = &_industry_draw_tile_data[(ti->map5<<2) | (_m[ti->tile].owner&3)]; dits = &_industry_draw_tile_data[(ti->map5<<2) | (_m[ti->tile].owner&3)];
image = dits->sprite_1; image = dits->sprite_1;
if (image&0x8000 && (image & 0xFFFF0000) == 0) if (image & PALETTE_MODIFIER_COLOR && (image & PALETTE_SPRITE_MASK) == 0)
image |= ormod; image |= ormod;
z = ti->z; z = ti->z;
@ -371,7 +371,7 @@ static void DrawTile_Industry(TileInfo *ti)
/* Add industry on top of the ground? */ /* Add industry on top of the ground? */
if ((image = dits->sprite_2) != 0) { if ((image = dits->sprite_2) != 0) {
if (image&0x8000 && (image & 0xFFFF0000) == 0) if (image & PALETTE_MODIFIER_COLOR && (image & PALETTE_SPRITE_MASK) == 0)
image |= ormod; image |= ormod;
if (_display_opt & DO_TRANS_BUILDINGS) if (_display_opt & DO_TRANS_BUILDINGS)

View File

@ -60,8 +60,8 @@ static inline int64 BIGMULS(int32 a, int32 b) {
#define SETBITS(x,y) ((x) |= (y)) #define SETBITS(x,y) ((x) |= (y))
#define CLRBITS(x,y) ((x) &= ~(y)) #define CLRBITS(x,y) ((x) &= ~(y))
#define PLAYER_SPRITE_COLOR(owner) ((_player_colors[owner] << 16) + 0x3070000) #define PLAYER_SPRITE_COLOR(owner) ( (_player_colors[owner] + 0x307) << PALETTE_SPRITE_START)
#define SPRITE_PALETTE(x) ((x) + 0x8000) #define SPRITE_PALETTE(x) ((x) | PALETTE_MODIFIER_COLOR)
extern const byte _ffb_64[128]; extern const byte _ffb_64[128];
/* Returns the position of the first bit that is not zero, counted from the /* Returns the position of the first bit that is not zero, counted from the

View File

@ -291,7 +291,7 @@ static const uint32 _tree_sprites[] = {
0x655,0x663,0x678,0x62B,0x647,0x639,0x64E,0x632,0x67F,0x68D,0x69B,0x6A9, 0x655,0x663,0x678,0x62B,0x647,0x639,0x64E,0x632,0x67F,0x68D,0x69B,0x6A9,
0x6AF,0x6D2,0x6D9,0x6C4,0x6CB,0x6B6,0x6BD,0x6E0, 0x6AF,0x6D2,0x6D9,0x6C4,0x6CB,0x6B6,0x6BD,0x6E0,
0x72E,0x734,0x74A,0x74F,0x76B,0x78F,0x788,0x77B,0x75F,0x774,0x720,0x797, 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) static void BuildTreesWndProc(Window *w, WindowEvent *e)

View File

@ -71,7 +71,7 @@ typedef byte PlayerID;
typedef byte OrderID; typedef byte OrderID;
typedef byte CargoID; typedef byte CargoID;
typedef uint16 StringID; typedef uint16 StringID;
typedef uint16 SpriteID; typedef uint32 SpriteID;
typedef uint32 PalSpriteID; typedef uint32 PalSpriteID;
typedef uint32 CursorID; typedef uint32 CursorID;
typedef uint16 EngineID; //! All enginenumbers should be of this type typedef uint16 EngineID; //! All enginenumbers should be of this type

View File

@ -545,7 +545,7 @@ static void PlayerCompanyWndProc(Window *w, WindowEvent *e)
DrawString(110,48, STR_7006_COLOR_SCHEME, 0); DrawString(110,48, STR_7006_COLOR_SCHEME, 0);
// Draw company-colour bus (0xC19) // 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); DrawPlayerFace(p->face, p->player_color, 2, 16);

View File

@ -1,5 +1,8 @@
/* $Id$ */ /* $Id$ */
/** @file players.c
* @todo Cleanup the messy DrawPlayerFace function asap
*/
#include "stdafx.h" #include "stdafx.h"
#include "openttd.h" #include "openttd.h"
#include "engine.h" #include "engine.h"
@ -7,6 +10,7 @@
#include "string.h" #include "string.h"
#include "strings.h" #include "strings.h"
#include "table/strings.h" #include "table/strings.h"
#include "table/sprites.h"
#include "map.h" #include "map.h"
#include "player.h" #include "player.h"
#include "town.h" #include "town.h"
@ -44,7 +48,7 @@ void DrawPlayerFace(uint32 face, int color, int x, int y)
flag |= 2; flag |= 2;
/* draw the gradient */ /* draw the gradient */
DrawSprite( (color<<16) + 0x0307836A, x, y); DrawSprite( (color + 0x307) << PALETTE_SPRITE_START | PALETTE_MODIFIER_COLOR | 0x36A, x, y);
/* draw the cheeks */ /* draw the cheeks */
DrawSprite(cheeks_table[flag&3], x, y); 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 val1 = GB(face, 6, 4);
uint val2 = GB(face, 20, 3); uint val2 = GB(face, 20, 3);
uint32 high = 0x314<<16; uint32 high = 0x314 << PALETTE_SPRITE_START;
if (val2 >= 6) { if (val2 >= 6) {
high = 0x30F<<16; high = 0x30F << PALETTE_SPRITE_START;
if (val2 != 6) if (val2 != 6)
high = 0x30D<<16; high = 0x30D << PALETTE_SPRITE_START;
} }
if (!(flag & 2)) { if (!(flag & 2)) {
if (!(flag & 1)) { if (!(flag & 1)) {
DrawSprite(high+((val1 * 12 >> 4) + 0x832B), x, y); DrawSprite(high+((val1 * 12 >> 4) + (0x32B | PALETTE_MODIFIER_COLOR)), x, y);
} else { } else {
DrawSprite(high+(val1 + 0x8337), x, y); DrawSprite(high+(val1 + (0x337 | PALETTE_MODIFIER_COLOR)), x, y);
} }
} else { } else {
if (!(flag & 1)) { if (!(flag & 1)) {
DrawSprite(high+((val1 * 11 >> 4) + 0x839A), x, y); DrawSprite(high+((val1 * 11 >> 4) + (0x39A | PALETTE_MODIFIER_COLOR)), x, y);
} else { } else {
DrawSprite(high+(val1 + 0x83B8), x, y); DrawSprite(high+(val1 + (0x3B8 | PALETTE_MODIFIER_COLOR)), x, y);
} }
} }
} }

View File

@ -1351,7 +1351,7 @@ static void DrawSpecialBuilding(uint32 image, uint32 tracktype_offs,
byte x, byte y, byte z, byte x, byte y, byte z,
byte xsize, byte ysize, byte zsize) byte xsize, byte ysize, byte zsize)
{ {
if (image & 0x8000) if (image & PALETTE_MODIFIER_COLOR)
image |= _drawtile_track_palette; image |= _drawtile_track_palette;
image += tracktype_offs; image += tracktype_offs;
if (_display_opt & DO_TRANS_BUILDINGS) // show transparent depots 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) { 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) { } else if ((_m[ti->tile].m2 & RAIL_MAP2LO_GROUND_MASK)==RAIL_GROUND_ICE_DESERT) {
image += TrackSet[SNOW_OFFSET]; image += TrackSet[SNOW_OFFSET];
} }
@ -1604,7 +1604,7 @@ static void DrawTile_Track(TileInfo *ti)
drss = _track_depot_layout_table[type]; drss = _track_depot_layout_table[type];
image = drss++->image; 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 // adjust ground tile for desert
// (don't adjust for arctic depots, because snow in depots looks weird) // (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; y+=17;
img = dtss++->image; img = dtss++->image;
if (img & 0x8000) img = (img & 0x7FFF) + railtype; if (img & PALETTE_MODIFIER_COLOR) img = (img & SPRITE_MASK) + railtype;
DrawSprite(img, x, y); DrawSprite(img, x, y);
for (; dtss->image != 0; dtss++) { for (; dtss->image != 0; dtss++) {
Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0); Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0);
image = dtss->image; image = dtss->image;
if (image & 0x8000) image |= ormod; if (image & PALETTE_MODIFIER_COLOR) image |= ormod;
DrawSprite(image + railtype, x + pt.x, y + pt.y); DrawSprite(image + railtype, x + pt.x, y + pt.y);
} }
} }

View File

@ -794,7 +794,7 @@ static void DrawTile_Road(TileInfo *ti)
m2 = GB(_m[ti->tile].m4, 4, 3); 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) { if (_m[ti->tile].m4 & 0x80) {
image += 19; image += 19;
@ -839,7 +839,7 @@ static void DrawTile_Road(TileInfo *ti)
image += 8; image += 8;
} else { } else {
m2 = GB(_m[ti->tile].m4, 4, 3); 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; if (m2 > 1) image += 4;
} }
@ -862,7 +862,7 @@ static void DrawTile_Road(TileInfo *ti)
if (ti->tileh != 0) { DrawFoundation(ti, ti->tileh); } if (ti->tileh != 0) { DrawFoundation(ti, ti->tileh); }
ormod = 0x315; ormod = PALETTE_TO_GREY; //was this a bug/problem?
player = GetTileOwner(ti->tile); player = GetTileOwner(ti->tile);
if (player < MAX_PLAYERS) if (player < MAX_PLAYERS)
ormod = PLAYER_SPRITE_COLOR(player); ormod = PLAYER_SPRITE_COLOR(player);
@ -874,7 +874,7 @@ static void DrawTile_Road(TileInfo *ti)
for (; drss->image != 0; drss++) { for (; drss->image != 0; drss++) {
uint32 image = drss->image; uint32 image = drss->image;
if (image & 0x8000) if (image & PALETTE_MODIFIER_COLOR)
image |= ormod; image |= ormod;
if (_display_opt & DO_TRANS_BUILDINGS) // show transparent depots if (_display_opt & DO_TRANS_BUILDINGS) // show transparent depots
MAKE_TRANSPARENT(image); 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); Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0);
image = dtss->image; image = dtss->image;
if (image & 0x8000) if (image & PALETTE_MODIFIER_COLOR)
image |= ormod; image |= ormod;
DrawSprite(image, x + pt.x, y + pt.y); DrawSprite(image, x + pt.x, y + pt.y);

View File

@ -1180,7 +1180,7 @@ static void NewgrfWndProc(Window *w, WindowEvent *e)
if(h) GfxFillRect(1, y + 1, 267, y + 12, 156); if(h) GfxFillRect(1, y + 1, 267, y + 12, 156);
// XXX - will be grf name later // XXX - will be grf name later
DoDrawString(c->filename, 25, y + 2, h ? 0xC : 0x10); 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; y += NEWGRF_WND_PROC_ROWSIZE;
} }

View File

@ -5,6 +5,7 @@
#include "debug.h" #include "debug.h"
#include "functions.h" #include "functions.h"
#include "table/strings.h" #include "table/strings.h"
#include "table/sprites.h"
#include "map.h" #include "map.h"
#include "window.h" #include "window.h"
#include "gui.h" #include "gui.h"

View File

@ -35,27 +35,27 @@ uint16 _custom_sprites_base;
static Sprite _cur_sprite; static Sprite _cur_sprite;
static void* _sprite_ptr[NUM_SPRITES]; static void* _sprite_ptr[MAX_SPRITES];
static uint16 _sprite_size[NUM_SPRITES]; static uint16 _sprite_size[MAX_SPRITES];
static uint32 _sprite_file_pos[NUM_SPRITES]; static uint32 _sprite_file_pos[MAX_SPRITES];
// This one is probably not needed. // This one is probably not needed.
#if defined(WANT_LOCKED) #if defined(WANT_LOCKED)
static bool _sprite_locked[NUM_SPRITES]; static bool _sprite_locked[MAX_SPRITES];
#endif #endif
#if defined(WANT_NEW_LRU) #if defined(WANT_NEW_LRU)
static int16 _sprite_lru_new[NUM_SPRITES]; static int16 _sprite_lru_new[MAX_SPRITES];
#else #else
static uint16 _sprite_lru[NUM_SPRITES]; static uint16 _sprite_lru[MAX_SPRITES];
static uint16 _sprite_lru_cur[NUM_SPRITES]; static uint16 _sprite_lru_cur[MAX_SPRITES];
#endif #endif
#ifdef WANT_SPRITESIZES #ifdef WANT_SPRITESIZES
static int8 _sprite_xoffs[NUM_SPRITES]; static int8 _sprite_xoffs[MAX_SPRITES];
static int8 _sprite_yoffs[NUM_SPRITES]; static int8 _sprite_yoffs[MAX_SPRITES];
static uint16 _sprite_xsize[NUM_SPRITES]; static uint16 _sprite_xsize[MAX_SPRITES];
static uint8 _sprite_ysize[NUM_SPRITES]; static uint8 _sprite_ysize[MAX_SPRITES];
#endif #endif
bool _cache_sprites; bool _cache_sprites;
@ -83,13 +83,13 @@ typedef struct FileList {
#include "table/files.h" #include "table/files.h"
#include "table/landscape_sprite.h" #include "table/landscape_sprite.h"
static const uint16 * const _landscape_spriteindexes[] = { static const SpriteID * const _landscape_spriteindexes[] = {
_landscape_spriteindexes_1, _landscape_spriteindexes_1,
_landscape_spriteindexes_2, _landscape_spriteindexes_2,
_landscape_spriteindexes_3, _landscape_spriteindexes_3,
}; };
static const uint16 * const _slopes_spriteindexes[] = { static const SpriteID * const _slopes_spriteindexes[] = {
_slopes_spriteindexes_0, _slopes_spriteindexes_0,
_slopes_spriteindexes_1, _slopes_spriteindexes_1,
_slopes_spriteindexes_2, _slopes_spriteindexes_2,
@ -238,7 +238,7 @@ static bool LoadNextSprite(int load_index, byte file_index)
_replace_sprites_offset[0]++; _replace_sprites_offset[0]++;
_replace_sprites_count[0]--; _replace_sprites_count[0]--;
if ((offset + count) <= NUM_SPRITES) { if ((offset + count) <= MAX_SPRITES) {
load_index = offset; load_index = offset;
} else { } else {
DEBUG(spritecache, 1) ("Sprites to be replaced are out of range: %x+%x", 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) if (size == 0)
return; 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)) { while (LoadNextSprite(load_index, file_index)) {
load_index++; load_index++;
if (load_index >= NUM_SPRITES) { if (load_index >= MAX_SPRITES) {
error("Too many sprites. Recompile with higher NUM_SPRITES value or remove some custom GRF files."); 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; 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++) { for (i = 0; LoadNextSprite(load_index + i, file_index); i++) {
if (load_index + i >= NUM_SPRITES) if (load_index + i >= MAX_SPRITES)
error("Too many sprites (0x%X). Recompile with higher NUM_SPRITES value or remove some custom GRF files.", error("Too many sprites (0x%X). Recompile with higher MAX_SPRITES value or remove some custom GRF files.",
load_index + i); load_index + i);
} }
@ -364,7 +365,7 @@ static int LoadNewGrfFile(const char *filename, int load_index, int file_index)
return i; 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; int start;
@ -472,7 +473,7 @@ void IncreaseSpriteLRU(void)
if (_sprite_lru_counter > 16384) { if (_sprite_lru_counter > 16384) {
DEBUG(spritecache, 2) ("fixing lru %d, inuse=%d", _sprite_lru_counter, GetSpriteCacheUsage()); 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_ptr[i] != NULL) {
if (_sprite_lru_new[i] >= 0) { if (_sprite_lru_new[i] >= 0) {
_sprite_lru_new[i] = -1; _sprite_lru_new[i] = -1;
@ -483,7 +484,7 @@ void IncreaseSpriteLRU(void)
_sprite_lru_counter = 0; _sprite_lru_counter = 0;
} }
#else #else
for (i = 0; i != NUM_SPRITES; i++) for (i = 0; i != MAX_SPRITES; i++)
if (_sprite_ptr[i] != NULL && _sprite_lru[i] != 65535) if (_sprite_ptr[i] != NULL && _sprite_lru[i] != 65535)
_sprite_lru[i]++; _sprite_lru[i]++;
// Reset the lru counter. // Reset the lru counter.
@ -560,7 +561,7 @@ static void DeleteEntryFromSpriteCache(void)
#if defined(WANT_NEW_LRU) #if defined(WANT_NEW_LRU)
cur_lru = 0xffff; cur_lru = 0xffff;
for (i = 0; i != NUM_SPRITES; i++) { for (i = 0; i != MAX_SPRITES; i++) {
if (_sprite_ptr[i] != 0 && if (_sprite_ptr[i] != 0 &&
_sprite_lru_new[i] < cur_lru _sprite_lru_new[i] < cur_lru
#if defined(WANT_LOCKED) #if defined(WANT_LOCKED)
@ -574,7 +575,7 @@ static void DeleteEntryFromSpriteCache(void)
#else #else
{ {
uint16 cur_lru = 0, cur_lru_cur = 0xffff; 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 (_sprite_ptr[i] == 0 ||
#if defined(WANT_LOCKED) #if defined(WANT_LOCKED)
_sprite_locked[i] || _sprite_locked[i] ||
@ -702,7 +703,7 @@ const void *GetRawSprite(SpriteID sprite)
{ {
void* p; void* p;
assert(sprite < NUM_SPRITES); assert(sprite < MAX_SPRITES);
#if defined(NEW_ROTATION) #if defined(NEW_ROTATION)
sprite = RotateSprite(sprite); sprite = RotateSprite(sprite);
@ -732,7 +733,7 @@ static const char * const _cached_filenames[4] = {
}; };
#define OPENTTD_SPRITES_COUNT 98 #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 SPR_OPENTTD_BASE + 0, SPR_OPENTTD_BASE + 7, // icons etc
134, 134, // euro symbol medium size 134, 134, // euro symbol medium size
582, 582, // euro symbol large size 582, 582, // euro symbol large size
@ -910,6 +911,7 @@ static void LoadSpriteTables(void)
if (_loading_stage == 0) if (_loading_stage == 0)
InitNewGRFFile(_newgrf_files[j], load_index); InitNewGRFFile(_newgrf_files[j], load_index);
load_index += LoadNewGrfFile(_newgrf_files[j], load_index, i++); load_index += LoadNewGrfFile(_newgrf_files[j], load_index, i++);
DEBUG(spritecache, 2) ("Currently %i sprites are loaded", load_index);
} }
} }

View File

@ -2139,7 +2139,7 @@ static void DrawTile_Station(TileInfo *ti)
{ {
uint owner = GetTileOwner(ti->tile); 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) if (owner < MAX_PLAYERS)
image_or_modificator = PLAYER_SPRITE_COLOR(owner); 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]; if (t == NULL) t = &_station_display_datas[ti->map5];
image = t->ground_sprite; image = t->ground_sprite;
if (image & 0x8000) if (image & PALETTE_MODIFIER_COLOR)
image |= image_or_modificator; image |= image_or_modificator;
// For custom sprites, there's no railtype-based pitching. // 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 // 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 // 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) { if (_display_opt & DO_TRANS_BUILDINGS) {
MAKE_TRANSPARENT(image); MAKE_TRANSPARENT(image);
} else { } else {
if (image&0x8000) image |= image_or_modificator; if (image & PALETTE_MODIFIER_COLOR) image |= image_or_modificator;
} }
if ((byte)dtss->delta_z != 0x80) { 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]; t = &_station_display_datas[image];
img = t->ground_sprite; img = t->ground_sprite;
if (img & 0x8000) if (img & PALETTE_MODIFIER_COLOR)
img |= ormod; img |= ormod;
DrawSprite(img + railtype, x, y); DrawSprite(img + railtype, x, y);

View File

@ -1,8 +1,28 @@
/* $Id$ */ /* $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 #define ANIM_CURSOR_END() 0xFFFF
/** Animated cursor elements for demolishion
*/
static const CursorID _demolish_animcursor[] = { static const CursorID _demolish_animcursor[] = {
ANIM_CURSOR_LINE(0x2C0, 29) ANIM_CURSOR_LINE(0x2C0, 29)
ANIM_CURSOR_LINE(0x2C1, 29) ANIM_CURSOR_LINE(0x2C1, 29)
@ -11,6 +31,8 @@ static const CursorID _demolish_animcursor[] = {
ANIM_CURSOR_END() ANIM_CURSOR_END()
}; };
/** Animated cursor elements for lower land
*/
static const CursorID _lower_land_animcursor[] = { static const CursorID _lower_land_animcursor[] = {
ANIM_CURSOR_LINE(0x2BB, 29) ANIM_CURSOR_LINE(0x2BB, 29)
ANIM_CURSOR_LINE(0x2BC, 29) ANIM_CURSOR_LINE(0x2BC, 29)
@ -18,6 +40,8 @@ static const CursorID _lower_land_animcursor[] = {
ANIM_CURSOR_END() ANIM_CURSOR_END()
}; };
/** Animated cursor elements for raise land
*/
static const CursorID _raise_land_animcursor[] = { static const CursorID _raise_land_animcursor[] = {
ANIM_CURSOR_LINE(0x2B8, 29) ANIM_CURSOR_LINE(0x2B8, 29)
ANIM_CURSOR_LINE(0x2B9, 29) ANIM_CURSOR_LINE(0x2B9, 29)
@ -25,6 +49,8 @@ static const CursorID _raise_land_animcursor[] = {
ANIM_CURSOR_END() ANIM_CURSOR_END()
}; };
/** Animated cursor elements for the goto icon
*/
static const CursorID _pick_station_animcursor[] = { static const CursorID _pick_station_animcursor[] = {
ANIM_CURSOR_LINE(0x2CC, 29) ANIM_CURSOR_LINE(0x2CC, 29)
ANIM_CURSOR_LINE(0x2CD, 29) ANIM_CURSOR_LINE(0x2CD, 29)
@ -32,12 +58,18 @@ static const CursorID _pick_station_animcursor[] = {
ANIM_CURSOR_END() ANIM_CURSOR_END()
}; };
/** Animated cursor elements for the build signal icon
*/
static const CursorID _build_signals_animcursor[] = { static const CursorID _build_signals_animcursor[] = {
ANIM_CURSOR_LINE(0x50C, 148) ANIM_CURSOR_LINE(0x50C, 29)
ANIM_CURSOR_LINE(0x50D, 148) ANIM_CURSOR_LINE(0x50D, 29)
ANIM_CURSOR_END() 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[] = { static const CursorID * const _animcursors[] = {
_demolish_animcursor, _demolish_animcursor,
_lower_land_animcursor, _lower_land_animcursor,

View File

@ -23,9 +23,9 @@ static const PalSpriteID _bridge_sprite_table_2_0[] = {
static const PalSpriteID _bridge_sprite_table_2_1[] = { static const PalSpriteID _bridge_sprite_table_2_1[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31D898E, 0x31D8990, 0x31D898D, 0x31D898F, 0x31D8992, 0x31D8994, 0x31D8991, 0x31D8993, 0x98E | PALETTE_31D, 0x990 | PALETTE_31D, 0x98D | PALETTE_31D, 0x98F | PALETTE_31D, 0x992 | PALETTE_31D, 0x994 | PALETTE_31D, 0x991 | PALETTE_31D, 0x993 | PALETTE_31D,
0x31D90E7, 0x31D90E9, 0x31D90E6, 0x31D90E8, 0x31D90EB, 0x31D90ED, 0x31D90EA, 0x31D90EC, 0x10E7 | PALETTE_31D, 0x10E9 | PALETTE_31D, 0x10E6 | PALETTE_31D, 0x10E8 | PALETTE_31D, 0x10EB | PALETTE_31D, 0x10ED | PALETTE_31D, 0x10EA | PALETTE_31D, 0x10EC | PALETTE_31D,
0x31D910F, 0x31D9111, 0x31D910E, 0x31D9110, 0x31D9113, 0x31D9115, 0x31D9112, 0x31D9114, 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[] = { 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[] = { static const PalSpriteID _bridge_sprite_table_5_0[] = {
0x32189A9, 0x321899F, 0x32189B1, 0x0, 0x32189A5, 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,
0x321899D, 0x321899F, 0x32189B1, 0x0, 0x3218995, 0x3218997, 0x32189AD, 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,
0x32190F2, 0x321899F, 0x32189B1, 0x0, 0x32190EE, 0x3218997, 0x32189AD, 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,
0x321911A, 0x321899F, 0x32189B1, 0x0, 0x3219116, 0x3218997, 0x32189AD, 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, SPR_OPENTTD_BASE + 35,
}; };
static const PalSpriteID _bridge_sprite_table_5_1[] = { static const PalSpriteID _bridge_sprite_table_5_1[] = {
0x32189AA, 0x32189A0, 0x32189B2, 0x0, 0x32189A6, 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,
0x321899E, 0x32189A0, 0x32189B2, 0x0, 0x3218996, 0x3218998, 0x32189AE, 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,
0x32190F3, 0x32189A0, 0x32189B2, 0x0, 0x32190EF, 0x3218998, 0x32189AE, 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,
0x321911B, 0x32189A0, 0x32189B2, 0x0, 0x3219117, 0x3218998, 0x32189AE, 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, SPR_OPENTTD_BASE + 36,
}; };
static const PalSpriteID _bridge_sprite_table_5_2[] = { static const PalSpriteID _bridge_sprite_table_5_2[] = {
0x32189AC, 0x32189A4, 0x32189B4, 0x0, 0x32189A8, 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,
0x32189A2, 0x32189A4, 0x32189B4, 0x0, 0x321899A, 0x321899C, 0x32189B0, 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,
0x32190F5, 0x32189A4, 0x32189B4, 0x0, 0x32190F1, 0x321899C, 0x32189B0, 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,
0x321911D, 0x32189A4, 0x32189B4, 0x0, 0x3219119, 0x321899C, 0x32189B0, 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, SPR_OPENTTD_BASE + 36,
}; };
static const PalSpriteID _bridge_sprite_table_5_3[] = { static const PalSpriteID _bridge_sprite_table_5_3[] = {
0x32189AB, 0x32189A3, 0x32189B3, 0x0, 0x32189A7, 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,
0x32189A1, 0x32189A3, 0x32189B3, 0x0, 0x3218999, 0x321899B, 0x32189AF, 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,
0x32190F4, 0x32189A3, 0x32189B3, 0x0, 0x32190F0, 0x321899B, 0x32189AF, 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,
0x321911C, 0x32189A3, 0x32189B3, 0x0, 0x3219118, 0x321899B, 0x32189AF, 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, SPR_OPENTTD_BASE + 35,
}; };
static const PalSpriteID _bridge_sprite_table_5_4[] = { static const PalSpriteID _bridge_sprite_table_5_4[] = {
0x32189B6, 0x32189BA, 0x32189BC, 0x0, 0x32189B5, 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,
0x32189B8, 0x32189BA, 0x32189BC, 0x0, 0x32189B7, 0x32189B9, 0x32189BB, 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,
0x32190F7, 0x32189BA, 0x32189BC, 0x0, 0x32190F6, 0x32189B9, 0x32189BB, 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,
0x321911F, 0x32189BA, 0x32189BC, 0x0, 0x321911E, 0x32189B9, 0x32189BB, 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, SPR_OPENTTD_BASE+38, 0x0, 0x0, 0x0, SPR_OPENTTD_BASE + 37,
}; };
static const PalSpriteID _bridge_sprite_table_5_5[] = { static const PalSpriteID _bridge_sprite_table_5_5[] = {
0x32189BD, 0x32189C1, 0x0, 0x0, 0x32189BE, 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,
0x32189BF, 0x32189C1, 0x0, 0x0, 0x32189C0, 0x32189C2, 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,
0x32190F8, 0x32189C1, 0x0, 0x0, 0x32190F9, 0x32189C2, 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,
0x3219120, 0x32189C1, 0x0, 0x0, 0x3219121, 0x32189C2, 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, 0x0, SPR_OPENTTD_BASE + 35,
}; };
static const PalSpriteID _bridge_sprite_table_5_6[] = { static const PalSpriteID _bridge_sprite_table_5_6[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x321898E, 0x3218990, 0x321898D, 0x321898F, 0x3218992, 0x3218994, 0x3218991, 0x3218993, 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,
0x32190E7, 0x32190E9, 0x32190E6, 0x32190E8, 0x32190EB, 0x32190ED, 0x32190EA, 0x32190EC, 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,
0x321910F, 0x3219111, 0x321910E, 0x3219110, 0x3219113, 0x3219115, 0x3219112, 0x3219114, 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, 0x0, SPR_OPENTTD_BASE + 35,
}; };
static const PalSpriteID _bridge_sprite_table_5_poles[] = { static const PalSpriteID _bridge_sprite_table_5_poles[] = {
SPR_OPENTTD_BASE + 36 + 0x3218000, SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 37 + 0x3218000, SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 37 + 0x3218000, SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + 0x3218000, SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 38 + 0x3218000, SPR_OPENTTD_BASE + 38 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0, 0x0,
SPR_OPENTTD_BASE + 33 + 0x3218000, SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 34 + 0x3218000, SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 34 + 0x3218000, SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + 0x3218000, SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 35 + 0x3218000, SPR_OPENTTD_BASE + 35 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0, 0x0,
0x0, 0x0,
@ -191,68 +191,68 @@ static const PalSpriteID _bridge_sprite_table_5_poles[] = {
}; };
static const PalSpriteID _bridge_sprite_table_3_0[] = { static const PalSpriteID _bridge_sprite_table_3_0[] = {
0x32089A9, 0x320899F, 0x32089B1, 0x0, 0x32089A5, 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,
0x320899D, 0x320899F, 0x32089B1, 0x0, 0x3208995, 0x3208997, 0x32089AD, 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,
0x32090F2, 0x320899F, 0x32089B1, 0x0, 0x32090EE, 0x3208997, 0x32089AD, 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,
0x320911A, 0x320899F, 0x32089B1, 0x0, 0x3209116, 0x3208997, 0x32089AD, 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[] = { static const PalSpriteID _bridge_sprite_table_3_1[] = {
0x32089AA, 0x32089A0, 0x32089B2, 0x0, 0x32089A6, 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,
0x320899E, 0x32089A0, 0x32089B2, 0x0, 0x3208996, 0x3208998, 0x32089AE, 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,
0x32090F3, 0x32089A0, 0x32089B2, 0x0, 0x32090EF, 0x3208998, 0x32089AE, 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,
0x320911B, 0x32089A0, 0x32089B2, 0x0, 0x3209117, 0x3208998, 0x32089AE, 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[] = { static const PalSpriteID _bridge_sprite_table_3_2[] = {
0x32089AC, 0x32089A4, 0x32089B4, 0x0, 0x32089A8, 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,
0x32089A2, 0x32089A4, 0x32089B4, 0x0, 0x320899A, 0x320899C, 0x32089B0, 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,
0x32090F5, 0x32089A4, 0x32089B4, 0x0, 0x32090F1, 0x320899C, 0x32089B0, 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,
0x320911D, 0x32089A4, 0x32089B4, 0x0, 0x3209119, 0x320899C, 0x32089B0, 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[] = { static const PalSpriteID _bridge_sprite_table_3_3[] = {
0x32089AB, 0x32089A3, 0x32089B3, 0x0, 0x32089A7, 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,
0x32089A1, 0x32089A3, 0x32089B3, 0x0, 0x3208999, 0x320899B, 0x32089AF, 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,
0x32090F4, 0x32089A3, 0x32089B3, 0x0, 0x32090F0, 0x320899B, 0x32089AF, 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,
0x320911C, 0x32089A3, 0x32089B3, 0x0, 0x3209118, 0x320899B, 0x32089AF, 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[] = { static const PalSpriteID _bridge_sprite_table_3_4[] = {
0x32089B6, 0x32089BA, 0x32089BC, 0x0, 0x32089B5, 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,
0x32089B8, 0x32089BA, 0x32089BC, 0x0, 0x32089B7, 0x32089B9, 0x32089BB, 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,
0x32090F7, 0x32089BA, 0x32089BC, 0x0, 0x32090F6, 0x32089B9, 0x32089BB, 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,
0x320911F, 0x32089BA, 0x32089BC, 0x0, 0x320911E, 0x32089B9, 0x32089BB, 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[] = { static const PalSpriteID _bridge_sprite_table_3_5[] = {
0x32089BD, 0x32089C1, 0x0, 0x0, 0x32089BE, 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,
0x32089BF, 0x32089C1, 0x0, 0x0, 0x32089C0, 0x32089C2, 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,
0x32090F8, 0x32089C1, 0x0, 0x0, 0x32090F9, 0x32089C2, 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,
0x3209120, 0x32089C1, 0x0, 0x0, 0x3209121, 0x32089C2, 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[] = { static const PalSpriteID _bridge_sprite_table_3_6[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x320898E, 0x3208990, 0x320898D, 0x320898F, 0x3208992, 0x3208994, 0x3208991, 0x3208993, 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,
0x32090E7, 0x32090E9, 0x32090E6, 0x32090E8, 0x32090EB, 0x32090ED, 0x32090EA, 0x32090EC, 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,
0x320910F, 0x3209111, 0x320910E, 0x3209110, 0x3209113, 0x3209115, 0x3209112, 0x3209114, 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, 0x0, SPR_OPENTTD_BASE + 35,
}; };
static const PalSpriteID _bridge_sprite_table_3_poles[] = { static const PalSpriteID _bridge_sprite_table_3_poles[] = {
SPR_OPENTTD_BASE + 36 + 0x3208000, SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 37 + 0x3208000, SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 37 + 0x3208000, SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 36 + 0x3208000, SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 38 + 0x3208000, SPR_OPENTTD_BASE + 38 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
0x0, 0x0,
SPR_OPENTTD_BASE + 33 + 0x3208000, SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 34 + 0x3208000, SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 34 + 0x3208000, SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 33 + 0x3208000, SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 35 + 0x3208000, SPR_OPENTTD_BASE + 35 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
0x0, 0x0,
0x0, 0x0,
@ -261,9 +261,9 @@ static const PalSpriteID _bridge_sprite_table_3_poles[] = {
static const PalSpriteID _bridge_sprite_table_1_1[] = { static const PalSpriteID _bridge_sprite_table_1_1[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31E898E, 0x31E8990, 0x31E898D, 0x31E898F, 0x31E8992, 0x31E8994, 0x31E8991, 0x31E8993, 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,
0x31E90E7, 0x31E90E9, 0x31E90E6, 0x31E90E8, 0x31E90EB, 0x31E90ED, 0x31E90EA, 0x31E90EC, 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,
0x31E910F, 0x31E9111, 0x31E910E, 0x31E9110, 0x31E9113, 0x31E9115, 0x31E9112, 0x31E9114, 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[] = { 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[] = { static const PalSpriteID _bridge_sprite_table_7_0[] = {
0x31C89CD, 0x31C89D9, 0x0, 0x0, 0x31C89CE, 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,
0x31C89D3, 0x31C89D9, 0x0, 0x0, 0x31C89D4, 0x31C89DA, 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,
0x31C90FC, 0x31C89D9, 0x0, 0x0, 0x31C90FD, 0x31C89DA, 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,
0x31C9124, 0x31C89D9, 0x0, 0x0, 0x31C9125, 0x31C89DA, 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[] = { static const PalSpriteID _bridge_sprite_table_7_1[] = {
0x31C89CB, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D0, 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,
0x31C89D1, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D6, 0x31C89DC, 0x31C89E0, 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,
0x31C90FA, 0x31C89D7, 0x31C89DD, 0x0, 0x31C90FF, 0x31C89DC, 0x31C89E0, 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,
0x31C9122, 0x31C89D7, 0x31C89DD, 0x0, 0x31C9127, 0x31C89DC, 0x31C89E0, 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[] = { static const PalSpriteID _bridge_sprite_table_7_2[] = {
0x31C89CC, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89CF, 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,
0x31C89D2, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89D5, 0x31C89DB, 0x31C89DF, 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,
0x31C90FB, 0x31C89D8, 0x31C89DE, 0x0, 0x31C90FE, 0x31C89DB, 0x31C89DF, 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,
0x31C9123, 0x31C89D8, 0x31C89DE, 0x0, 0x31C9126, 0x31C89DB, 0x31C89DF, 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[] = { static const PalSpriteID _bridge_sprite_table_7_3[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31C898E, 0x31C8990, 0x31C898D, 0x31C898F, 0x31C8992, 0x31C8994, 0x31C8991, 0x31C8993, 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,
0x31C90E7, 0x31C90E9, 0x31C90E6, 0x31C90E8, 0x31C90EB, 0x31C90ED, 0x31C90EA, 0x31C90EC, 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,
0x31C910F, 0x31C9111, 0x31C910E, 0x31C9110, 0x31C9113, 0x31C9115, 0x31C9112, 0x31C9114, 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[] = { 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[] = { static const PalSpriteID _bridge_sprite_table_8_0[] = {
0x31E89CD, 0x31E89D9, 0x0, 0x0, 0x31E89CE, 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,
0x31E89D3, 0x31E89D9, 0x0, 0x0, 0x31E89D4, 0x31E89DA, 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,
0x31E90FC, 0x31E89D9, 0x0, 0x0, 0x31E90FD, 0x31E89DA, 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,
0x31E9124, 0x31E89D9, 0x0, 0x0, 0x31E9125, 0x31E89DA, 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[] = { static const PalSpriteID _bridge_sprite_table_8_1[] = {
0x31E89CB, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D0, 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,
0x31E89D1, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D6, 0x31E89DC, 0x31E89E0, 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,
0x31E90FA, 0x31E89D7, 0x31E89DD, 0x0, 0x31E90FF, 0x31E89DC, 0x31E89E0, 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,
0x31E9122, 0x31E89D7, 0x31E89DD, 0x0, 0x31E9127, 0x31E89DC, 0x31E89E0, 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[] = { static const PalSpriteID _bridge_sprite_table_8_2[] = {
0x31E89CC, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89CF, 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,
0x31E89D2, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89D5, 0x31E89DB, 0x31E89DF, 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,
0x31E90FB, 0x31E89D8, 0x31E89DE, 0x0, 0x31E90FE, 0x31E89DB, 0x31E89DF, 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,
0x31E9123, 0x31E89D8, 0x31E89DE, 0x0, 0x31E9126, 0x31E89DB, 0x31E89DF, 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[] = { static const PalSpriteID _bridge_sprite_table_8_3[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B, 0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31E898E, 0x31E8990, 0x31E898D, 0x31E898F, 0x31E8992, 0x31E8994, 0x31E8991, 0x31E8993, 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,
0x31E90E7, 0x31E90E9, 0x31E90E6, 0x31E90E8, 0x31E90EB, 0x31E90ED, 0x31E90EA, 0x31E90EC, 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,
0x31E910F, 0x31E9111, 0x31E910E, 0x31E9110, 0x31E9113, 0x31E9115, 0x31E9112, 0x31E9114, 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[] = { 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[] = { static const PalSpriteID _bridge_sprite_table_1_0[] = {
0x31E89BD, 0x31E89C1, 0x9C9, 0x0, 0x31E89BE, 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,
0x31E89BF, 0x31E89C1, 0x9C9, 0x0, 0x31E89C0, 0x31E89C2, 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,
0x31E90F8, 0x31E89C1, 0x9C9, 0x0, 0x31E90F9, 0x31E89C2, 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,
0x31E9120, 0x31E89C1, 0x9C9, 0x0, 0x31E9121, 0x31E89C2, 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[] = { 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[] = { static const PalSpriteID _bridge_sprite_table_11_0[] = {
0x3218A0B, 0x3218A01, 0x0, 0x0, 0x3218A0C, 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,
0x3218A11, 0x3218A01, 0x0, 0x0, 0x3218A12, 0x3218A02, 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,
0x3218A17, 0x3218A01, 0x0, 0x0, 0x3218A18, 0x3218A02, 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,
0x3218A1D, 0x3218A01, 0x0, 0x0, 0x3218A1E, 0x3218A02, 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[] = { static const PalSpriteID _bridge_sprite_table_11_1[] = {
0x3218A09, 0x32189FF, 0x3218A05, 0x0, 0x3218A0E, 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,
0x3218A0F, 0x32189FF, 0x3218A05, 0x0, 0x3218A14, 0x3218A04, 0x3218A08, 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,
0x3218A15, 0x32189FF, 0x3218A05, 0x0, 0x3218A1A, 0x3218A04, 0x3218A08, 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,
0x3218A1B, 0x32189FF, 0x3218A05, 0x0, 0x3218A20, 0x3218A04, 0x3218A08, 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[] = { static const PalSpriteID _bridge_sprite_table_11_2[] = {
0x3218A0A, 0x3218A00, 0x3218A06, 0x0, 0x3218A0D, 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,
0x3218A10, 0x3218A00, 0x3218A06, 0x0, 0x3218A13, 0x3218A03, 0x3218A07, 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,
0x3218A16, 0x3218A00, 0x3218A06, 0x0, 0x3218A19, 0x3218A03, 0x3218A07, 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,
0x3218A1C, 0x3218A00, 0x3218A06, 0x0, 0x3218A1F, 0x3218A03, 0x3218A07, 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[] = { static const PalSpriteID _bridge_sprite_table_11_poles[] = {
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 38 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 38 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0, 0x0,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 35 + 2*6 + 0x3218000, SPR_OPENTTD_BASE + 35 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0, 0x0,
0x0, 0x0,
@ -557,39 +557,39 @@ static const PalSpriteID _bridge_sprite_table_11_poles[] = {
}; };
static const PalSpriteID _bridge_sprite_table_12_0[] = { static const PalSpriteID _bridge_sprite_table_12_0[] = {
0x3238A0B, 0x3238A01, 0x0, 0x0, 0x3238A0C, 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,
0x3238A11, 0x3238A01, 0x0, 0x0, 0x3238A12, 0x3238A02, 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,
0x3238A17, 0x3238A01, 0x0, 0x0, 0x3238A18, 0x3238A02, 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,
0x3238A1D, 0x3238A01, 0x0, 0x0, 0x3238A1E, 0x3238A02, 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[] = { static const PalSpriteID _bridge_sprite_table_12_1[] = {
0x3238A09, 0x32389FF, 0x3238A05, 0x0, 0x3238A0E, 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,
0x3238A0F, 0x32389FF, 0x3238A05, 0x0, 0x3238A14, 0x3238A04, 0x3238A08, 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,
0x3238A15, 0x32389FF, 0x3238A05, 0x0, 0x3238A1A, 0x3238A04, 0x3238A08, 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,
0x3238A1B, 0x32389FF, 0x3238A05, 0x0, 0x3238A20, 0x3238A04, 0x3238A08, 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[] = { static const PalSpriteID _bridge_sprite_table_12_2[] = {
0x3238A0A, 0x3238A00, 0x3238A06, 0x0, 0x3238A0D, 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,
0x3238A10, 0x3238A00, 0x3238A06, 0x0, 0x3238A13, 0x3238A03, 0x3238A07, 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,
0x3238A16, 0x3238A00, 0x3238A06, 0x0, 0x3238A19, 0x3238A03, 0x3238A07, 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,
0x3238A1C, 0x3238A00, 0x3238A06, 0x0, 0x3238A1F, 0x3238A03, 0x3238A07, 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[] = { static const PalSpriteID _bridge_sprite_table_12_poles[] = {
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 38 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 38 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
0x0, 0x0,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 35 + 2*6 + 0x3238000, SPR_OPENTTD_BASE + 35 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
0x0, 0x0,
0x0, 0x0,

View File

@ -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( 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, 0x81e | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 4, 0),
M( 0xf54, 0x881f, 1, 1, 14, 14, 24, 0), M( 0xf54, 0x81f | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 24, 0),
M( 0xf54, 0x8820, 1, 1, 14, 14, 27, 0), M( 0xf54, 0x820 | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 27, 0),
M( 0x58c, 0x8820, 1, 1, 14, 14, 27, 0), M( 0x58c, 0x820 | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 27, 0),
M( 0xf54, 0x8821, 3, 3, 10, 9, 3, 0), M( 0xf54, 0x821 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 3, 0),
M( 0xf54, 0x8822, 3, 3, 10, 9, 63, 0), M( 0xf54, 0x822 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 63, 0),
M( 0xf54, 0x8823, 3, 3, 10, 9, 62, 0), M( 0xf54, 0x823 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 62, 0),
M( 0x58c, 0x8823, 3, 3, 10, 9, 62, 0), M( 0x58c, 0x823 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 62, 0),
M( 0xf54, 0x8824, 4, 4, 7, 7, 3, 0), M( 0xf54, 0x824 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 3, 0),
M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0), M( 0xf54, 0x825 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 72, 0),
M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0), M( 0xf54, 0x825 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 72, 0),
M( 0x58c, 0x8826, 4, 4, 7, 7, 80, 0), M( 0x58c, 0x826 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 80, 0),
M( 0xf54, 0x8827, 2, 0, 12, 16, 51, 0), M( 0xf54, 0x827 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x8828, 2, 0, 12, 16, 51, 0), M( 0xf54, 0x828 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x8829, 2, 0, 12, 16, 51, 0), M( 0xf54, 0x829 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0x58c, 0x8829, 2, 0, 12, 16, 51, 0), M( 0x58c, 0x829 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x882a, 0, 0, 16, 16, 26, 0), M( 0xf54, 0x82a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 26, 0),
M( 0xf54, 0x882b, 0, 0, 16, 16, 44, 0), M( 0xf54, 0x82b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 44, 0),
M( 0xf54, 0x882c, 0, 0, 16, 16, 46, 0), M( 0xf54, 0x82c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 46, 0),
M( 0x58c, 0x882c, 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, 0x82d, 3, 1, 10, 13, 2, 0),
M( 0xf54, 0x82e, 3, 1, 10, 13, 11, 0), M( 0xf54, 0x82e, 3, 1, 10, 13, 11, 0),
M( 0xf54, 0x82f, 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, 0x880, 0, 0, 16, 16, 20, 0),
M( 0x87d, 0x87f, 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( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0), M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0), M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 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( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0), M( 0x83e, 0x83f | PALETTE_MODIFIER_COLOR, 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, 0x883f, 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( 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),
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, 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( 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, 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( 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, 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( 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, 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( 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( 0xf54, 0x8871, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x871 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x875 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x875 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8879, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x879 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8872, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x872 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x876 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x876 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x887a, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x87a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8873, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x873 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x877 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x877 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x887b, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x87b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8874, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x874 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x878 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0), M( 0xf54, 0x878 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x887c, 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, 0x7ea, 3, 2, 8, 8, 18, 0),
M( 0xf54, 0x7eb, 3, 2, 8, 8, 37, 0), M( 0xf54, 0x7eb, 3, 2, 8, 8, 37, 0),
M( 0xf54, 0x7ec, 3, 2, 8, 8, 49, 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( 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( 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( 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( 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( 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( 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( 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( 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( 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( 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( 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( 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), 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( 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( 0x887, 0x885, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888c, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x88c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x88d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x88d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888e, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x88e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888f, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x88f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x890 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x890 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8891, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x891 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8892, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x892 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x893 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x893 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8894, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x894 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8895, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x895 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x896 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0), M( 0x7e6, 0x896 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8897, 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, 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),
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, 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( 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, 0x92b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x92c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x92c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892d, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x92d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892e, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x92e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x92f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x92f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8930, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x930 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8928, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x928 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x929 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0), M( 0x11c6, 0x929 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892a, 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, 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( 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, 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( 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, 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( 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, 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( 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, 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),
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, 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, 0x1245 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x1248 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x1248 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924b, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x124b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9247, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x1247 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x124a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x124a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924d, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x124d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9246, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x1246 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x1249 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0), M( 0x7e6, 0x1249 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924c, 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, 0x124e, 0, 0, 16, 16, 10, 0),
M( 0x81d, 0x124f, 0, 0, 16, 16, 10, 0), M( 0x81d, 0x124f, 0, 0, 16, 16, 10, 0),
M( 0x81d, 0x1250, 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, 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, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x1283 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x1283 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9286, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x1286 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9281, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x1281 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x1282 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0), M( 0x1244, 0x1282 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9285, 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, 0x0, 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, 0x30b9287, 0, 0, 16, 16, 50, 0), M( 0x1243, 0x1287 | PALETTE_TO_RED, 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( 0x1244, 0x0, 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, 0x1288 | PALETTE_TO_RED, 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, 0x30b9288, 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, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3), M( 0x1243, 0x1289 | PALETTE_TO_RED, 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, 0x30b9289, 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), 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( 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( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0), M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 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, 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, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0), M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1), M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x92a5, 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] = { static const DrawIndustrySpec1Struct _draw_industry_spec1[96] = {

View File

@ -6,27 +6,27 @@
static const DrawRoadSeqStruct _road_display_datas_0[] = { static const DrawRoadSeqStruct _road_display_datas_0[] = {
TILE_SEQ_BEGIN(0xA4A) 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() TILE_SEQ_END()
}; };
static const DrawRoadSeqStruct _road_display_datas_1[] = { static const DrawRoadSeqStruct _road_display_datas_1[] = {
TILE_SEQ_BEGIN(0xA4A) TILE_SEQ_BEGIN(0xA4A)
TILE_SEQ_LINE(0x580, 0, 0, 1, 16) 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() TILE_SEQ_END()
}; };
static const DrawRoadSeqStruct _road_display_datas_2[] = { static const DrawRoadSeqStruct _road_display_datas_2[] = {
TILE_SEQ_BEGIN(0xA4A) TILE_SEQ_BEGIN(0xA4A)
TILE_SEQ_LINE(0x582, 0, 0, 16, 1) 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() TILE_SEQ_END()
}; };
static const DrawRoadSeqStruct _road_display_datas_3[] = { static const DrawRoadSeqStruct _road_display_datas_3[] = {
TILE_SEQ_BEGIN(0xA4A) 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() TILE_SEQ_END()
}; };

View File

@ -3,23 +3,25 @@
#ifndef SPRITES_H #ifndef SPRITES_H
#define 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 ALL SPRITE NUMBERS BELOW 5126 are in the main files
SPR_CANALS_BASE is in canalsw.grf SPR_CANALS_BASE is in canalsw.grf
SPR_SLOPES_BASE is in trkfoundw.grf SPR_SLOPES_BASE is in trkfoundw.grf
SPR_OPENTTD_BASE is in openttd.grf SPR_OPENTTD_BASE is in openttd.grf
*/
/*
All elements which consist of two elements should All elements which consist of two elements should
have the same name and then suffixes have the same name and then suffixes
_GROUND and _BUILD for building-type sprites _GROUND and _BUILD for building-type sprites
_REAR and _FRONT for transport-type sprites (tiles where vehicles are on) _REAR and _FRONT for transport-type sprites (tiles where vehicles are on)
These sprites are split because of the Z order of the elements 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) (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 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. 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 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, 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 editor. If your Operating Systems don't have any decent editors,
get a proper Operating System. 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 SPR_IMG_REMOVE = 714
}; };
/* Cursor sprite numbers */ /** Cursor sprite numbers */
typedef enum CursorSprites { typedef enum CursorSprites {
/* Terraform */ /* Terraform */
/* Cursors */ /* Cursors */
@ -940,85 +944,127 @@ typedef enum CursorSprites {
SPR_CURSOR_ROAD_TUNNEL = 2433, SPR_CURSOR_ROAD_TUNNEL = 2433,
} CursorSprite; } CursorSprite;
// Animation macro in table/animcursors.h (_animcursors[]) /// Animation macro in table/animcursors.h (_animcursors[])
enum AnimCursors { enum AnimCursors {
ANIMCURSOR_DEMOLISH = -1, // 704 - 707 - demolish dynamite ANIMCURSOR_DEMOLISH = -1, ///< 704 - 707 - demolish dynamite
ANIMCURSOR_LOWERLAND = -2, // 699 - 701 - lower land tool ANIMCURSOR_LOWERLAND = -2, ///< 699 - 701 - lower land tool
ANIMCURSOR_RAISELAND = -3, // 696 - 698 - raise land tool ANIMCURSOR_RAISELAND = -3, ///< 696 - 698 - raise land tool
ANIMCURSOR_PICKSTATION = -4, // 716 - 718 - goto-order icon ANIMCURSOR_PICKSTATION = -4, ///< 716 - 718 - goto-order icon
ANIMCURSOR_BUILDSIGNALS = -5, // 1292 - 1293 - build signal 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:<p>
* <ul><li> SPRITE_WIDTH is the number of bits used for the actual sprite to be displayed.
* This always starts at bit 0.</li>
* <li> TRANSPARENT_BIT is the bit number which toggles sprite transparency</li>
* <li> RECOLOR_BIT toggles the recoloring system</li>
* <li> PALETTE_SPRITE_WIDTH and PALETTE_SPRITE_START determine the position and number of
* bits used for the recoloring process. For transparency, it must be 0x322.</li>
*/
enum SpriteSetup {
TRANSPARENT_BIT = 31, ///< toggles transparency in the sprite
RECOLOR_BIT = 15, ///< toggles recoloring in the sprite
PALETTE_SPRITE_START = 16, ///< number of the first bit of the sprite containing the recolor palette
PALETTE_SPRITE_WIDTH = 11, ///< number of bits of the sprite containing the recolor palette
SPRITE_WIDTH = 14, ///< number of bits for the sprite number
}; };
/* /**
these numbers change the colors of the palette for a sprite these masks change the colors of the palette for a sprite.
both need to be fed a sprite which contains the "new" colors Apart from this bit, a sprite number is needed to define
the palette used for recoloring. This palette is stored
in the bits marked by PALETTE_SPRITE_MASK.
@note Do not modify this enum. Alter SpriteSetup instead
@see SpriteSetup
*/ */
enum Modifiers { enum Modifiers {
PALETTE_MODIFIER_TRANSPARENT = 0x4000, ///when a sprite is to be displayed transparently, this bit needs to be set.
PALETTE_MODIFIER_COLOR = 0x8000, PALETTE_MODIFIER_TRANSPARENT = 1 << TRANSPARENT_BIT,
///this bit is set when a recoloring process is in action
PALETTE_MODIFIER_COLOR = 1 << RECOLOR_BIT,
}; };
/** Masks needed for sprite operations.
* @note Do not modify this enum. Alter SpriteSetup instead
* @see SpriteSetup
*/
enum SpriteMasks {
///Maximum number of sprites that can be loaded at a given time.
MAX_SPRITES = (1 << SPRITE_WIDTH) - 1,
///The mask to for the main sprite
SPRITE_MASK = MAX_SPRITES,
///The mask for the auxiliary sprite (the one that takes care of recoloring)
PALETTE_SPRITE_MASK = ((1 << PALETTE_SPRITE_WIDTH) - 1) << PALETTE_SPRITE_START,
};
assert_compile( (1 << TRANSPARENT_BIT & SPRITE_MASK) == 0 );
assert_compile( (1 << RECOLOR_BIT & SPRITE_MASK) == 0 );
assert_compile( TRANSPARENT_BIT != RECOLOR_BIT );
assert_compile( (1 << TRANSPARENT_BIT & PALETTE_SPRITE_MASK) == 0);
assert_compile( (1 << RECOLOR_BIT & PALETTE_SPRITE_MASK) == 0 );
assert_compile( (PALETTE_SPRITE_MASK & SPRITE_MASK) == 0 );
assert_compile( SPRITE_WIDTH + PALETTE_SPRITE_WIDTH <= 30 );
#define PALETTE_RECOLOR_SPRITE(a) (a << PALETTE_SPRITE_START | PALETTE_MODIFIER_COLOR)
enum PaletteSprites { enum PaletteSprites {
//note: these numbers are already the modified once the renderer needs. //note: these numbers are already the modified once the renderer needs.
//the actual sprite number is the upper 16 bits of the number //the actual sprite number is the upper 16 bits of the number
//Here a puslating red tile is drawn if you try to build a wrong tunnel or raise/lower land where it is not possible ///Here a puslating red tile is drawn if you try to build a wrong tunnel or raise/lower land where it is not possible
PALETTE_TILE_RED_PULSATING = 0x3038000, PALETTE_TILE_RED_PULSATING = PALETTE_RECOLOR_SPRITE(0x303),
//makes a square red. is used when removing rails or other stuff ///makes a square red. is used when removing rails or other stuff
PALETTE_SEL_TILE_RED = 0x3048000, PALETTE_SEL_TILE_RED = PALETTE_RECOLOR_SPRITE(0x304),
//This draws a blueish square (catchment areas for example) ///This draws a blueish square (catchment areas for example)
PALETTE_SEL_TILE_BLUE = 0x3058000, PALETTE_SEL_TILE_BLUE = PALETTE_RECOLOR_SPRITE(0x305),
//0x306 is a real sprite (the little dot you get when you try to raise/lower a corner of the map //0x306 is a real sprite (the little dot you get when you try to raise/lower a corner of the map
//here the color switches begin //here the color switches begin
//use this if you add stuff to the value, so that the resulting color //use this if you add stuff to the value, so that the resulting color
//is not a fixed value. //is not a fixed value.
//NOTE THAT THE SWITCH 0x8000 is NOT present in _TO_COLORS yet! //NOTE THAT THE SWITCH 0x8000 is NOT present in _TO_COLORS yet!
PALETTE_TO_COLORS = 0x3070000, PALETTE_TO_COLORS = 0x307 << PALETTE_SPRITE_START,
PALETTE_TO_DARK_BLUE = 0x3078000, PALETTE_TO_DARK_BLUE = PALETTE_RECOLOR_SPRITE(0x307),
PALETTE_TO_PALE_GREEN = 0x3088000, PALETTE_TO_PALE_GREEN = PALETTE_RECOLOR_SPRITE(0x308),
PALETTE_TO_PINK = 0x3098000, PALETTE_TO_PINK = PALETTE_RECOLOR_SPRITE(0x309),
PALETTE_TO_YELLOW = 0x30A8000, PALETTE_TO_YELLOW = PALETTE_RECOLOR_SPRITE(0x30A),
PALETTE_TO_RED = 0x30B8000, PALETTE_TO_RED = PALETTE_RECOLOR_SPRITE(0x30B),
PALETTE_TO_LIGHT_BLUE = 0x30C8000, PALETTE_TO_LIGHT_BLUE = PALETTE_RECOLOR_SPRITE(0x30C),
PALETTE_TO_GREEN = 0x30D8000, PALETTE_TO_GREEN = PALETTE_RECOLOR_SPRITE(0x30D),
PALETTE_TO_DARK_GREEN = 0x30E8000, PALETTE_TO_DARK_GREEN = PALETTE_RECOLOR_SPRITE(0x30E),
PALETTE_TO_BLUE = 0x30F8000, PALETTE_TO_BLUE = PALETTE_RECOLOR_SPRITE(0x30F),
PALETTE_TO_CREAM = 0x3108000, PALETTE_TO_CREAM = PALETTE_RECOLOR_SPRITE(0x310),
//maybe don't use as player color because it doesn't display in the graphs? //maybe don't use as player color because it doesn't display in the graphs?
PALETTE_TO_MAUVE = 0x3118000, PALETTE_TO_MAUVE = PALETTE_RECOLOR_SPRITE(0x311),
PALETTE_TO_PURPLE = 0x3128000, PALETTE_TO_PURPLE = PALETTE_RECOLOR_SPRITE(0x312),
PALETTE_TO_ORANGE = 0x3138000, PALETTE_TO_ORANGE = PALETTE_RECOLOR_SPRITE(0x313),
PALETTE_TO_BROWN = 0x3148000, PALETTE_TO_BROWN = PALETTE_RECOLOR_SPRITE(0x314),
PALETTE_TO_GREY = 0x3158000, PALETTE_TO_GREY = PALETTE_RECOLOR_SPRITE(0x315),
PALETTE_TO_WHITE = 0x3168000, PALETTE_TO_WHITE = PALETTE_RECOLOR_SPRITE(0x316),
//sets color to bare land stuff, for rail and road (and crossings) //sets color to bare land stuff, for rail and road (and crossings)
PALETTE_TO_BARE_LAND = 0x3178000, PALETTE_TO_BARE_LAND = PALETTE_RECOLOR_SPRITE(0x317),
//XXX is 318-31A really not used? //XXX is 318-31A really not used?
//XXX FIXME I dunno yet what this is //XXX FIXME I dunno yet what this is
PALETTE_31B = 0x31B8000, PALETTE_31B = PALETTE_RECOLOR_SPRITE(0x31B),
//structure color to something brownish (for the cantilever bridges for example) //structure color to something brownish (for the cantilever bridges for example)
PALETTE_TO_STRUCT_BROWN = 0x31C8000, PALETTE_TO_STRUCT_BROWN = PALETTE_RECOLOR_SPRITE(0x31C),
PALETTE_31D = 0x31D8000, //XXX FIXME Don't know this either PALETTE_31D = PALETTE_RECOLOR_SPRITE(0x31D), //XXX FIXME Don't know this either
//sets bridge or structure to red, little concrete one and cantilever use this one for example //sets bridge or structure to red, little concrete one and cantilever use this one for example
PALETTE_TO_STRUCT_RED = 0x31E8000, PALETTE_TO_STRUCT_RED = PALETTE_RECOLOR_SPRITE(0x31E),
//XXX 31F //XXX 31F
PALETTE_TO_STRUCT_CONCRETE = 0x3208000, //Sets the suspension bridge to concrete, also other strucutures use it PALETTE_TO_STRUCT_CONCRETE = PALETTE_RECOLOR_SPRITE(0x320), //Sets the suspension bridge to concrete, also other strucutures use it
PALETTE_TO_STRUCT_YELLOW = 0x3218000, //Sets the bridge color to yellow (suspension and tubular) PALETTE_TO_STRUCT_YELLOW = PALETTE_RECOLOR_SPRITE(0x321), //Sets the bridge color to yellow (suspension and tubular)
PALETTE_TO_TRANSPARENT = 0x3224000, //This sets the sprite to transparent PALETTE_TO_TRANSPARENT = 0x322 << PALETTE_SPRITE_START | PALETTE_MODIFIER_TRANSPARENT, //This sets the sprite to transparent
//This is used for changing the tubular bridges to the silicon display, or some grayish color //This is used for changing the tubular bridges to the silicon display, or some grayish color
PALETTE_TO_STRUCT_GREY = 0x3238000, PALETTE_TO_STRUCT_GREY = PALETTE_RECOLOR_SPRITE(0x323),
PALETTE_CRASH = 0x3248000, //this changes stuff to the "crash color" PALETTE_CRASH = PALETTE_RECOLOR_SPRITE(0x324), //this changes stuff to the "crash color"
//XXX another place where structures are colored. //XXX another place where structures are colored.
//I'm not sure which colors these are //I'm not sure which colors these are
PALETTE_59E = 0x59E8000, PALETTE_59E = PALETTE_RECOLOR_SPRITE(0x59E),
PALETTE_59F = 0x59F8000, PALETTE_59F = PALETTE_RECOLOR_SPRITE(0x59F),
}; };
#undef PALETTE_RECOLOR_SPRITE
#define MAKE_TRANSPARENT(img) (img = (img & MAX_SPRITES) | PALETTE_TO_TRANSPARENT) #define MAKE_TRANSPARENT(img) (img = (img & SPRITE_MASK) | PALETTE_TO_TRANSPARENT)
#endif /* SPRITES_H */ #endif /* SPRITES_H */

View File

@ -3,58 +3,58 @@
#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 } #define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 }
static const DrawTileSeqStruct _station_display_datas_0[] = { static const DrawTileSeqStruct _station_display_datas_0[] = {
{ 0, 0, 0, 16, 5, 2, 0x842E }, { 0, 0, 0, 16, 5, 2, 0x42E | PALETTE_MODIFIER_COLOR },
{ 0, 11, 0, 16, 5, 2, 0x8430 }, { 0, 11, 0, 16, 5, 2, 0x430 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_1[] = { static const DrawTileSeqStruct _station_display_datas_1[] = {
{ 0, 0, 0, 5, 16, 2, 0x842F }, { 0, 0, 0, 5, 16, 2, 0x42F | PALETTE_MODIFIER_COLOR },
{ 11, 0, 0, 5, 16, 2, 0x842D }, { 11, 0, 0, 5, 16, 2, 0x42D | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_2[] = { static const DrawTileSeqStruct _station_display_datas_2[] = {
{ 0, 0, 0, 16, 5, 2, 0x8431 }, { 0, 0, 0, 16, 5, 2, 0x431 | PALETTE_MODIFIER_COLOR },
{ 0, 11, 0, 16, 5, 2, 0x8430 }, { 0, 11, 0, 16, 5, 2, 0x430 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_3[] = { static const DrawTileSeqStruct _station_display_datas_3[] = {
{ 0, 0, 0, 5, 16, 2, 0x8432 }, { 0, 0, 0, 5, 16, 2, 0x432 | PALETTE_MODIFIER_COLOR },
{ 11, 0, 0, 5, 16, 2, 0x842D }, { 11, 0, 0, 5, 16, 2, 0x42D | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_4[] = { static const DrawTileSeqStruct _station_display_datas_4[] = {
{ 0, 0, 0, 16, 5, 7, 0x8434 }, { 0, 0, 0, 16, 5, 7, 0x434 | PALETTE_MODIFIER_COLOR },
{ 0, 11, 0, 16, 5, 2, 0x8430 }, { 0, 11, 0, 16, 5, 2, 0x430 | PALETTE_MODIFIER_COLOR },
{ 0, 0, 16, 16, 16, 10, 0x8437 }, { 0, 0, 16, 16, 16, 10, 0x437 | PALETTE_MODIFIER_COLOR },
{ 0, 0,0x80, 0, 0, 0, 0x322443B }, { 0, 0,0x80, 0, 0, 0, 0x43B | PALETTE_TO_TRANSPARENT },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_5[] = { static const DrawTileSeqStruct _station_display_datas_5[] = {
{ 0, 0, 0, 5, 16, 2, 0x8435 }, { 0, 0, 0, 5, 16, 2, 0x435 | PALETTE_MODIFIER_COLOR },
{ 11, 0, 0, 5, 16, 2, 0x842D }, { 11, 0, 0, 5, 16, 2, 0x42D | PALETTE_MODIFIER_COLOR },
{ 0, 0, 16, 16, 16, 10, 0x8438 }, { 0, 0, 16, 16, 16, 10, 0x438 | PALETTE_MODIFIER_COLOR },
{ 0, 0,0x80, 0, 0, 0, 0x322443C }, { 0, 0,0x80, 0, 0, 0, 0x43C | PALETTE_TO_TRANSPARENT },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_6[] = { static const DrawTileSeqStruct _station_display_datas_6[] = {
{ 0, 0, 0, 16, 5, 2, 0x842E }, { 0, 0, 0, 16, 5, 2, 0x42E | PALETTE_MODIFIER_COLOR },
{ 0, 11, 0, 16, 5, 2, 0x8436 }, { 0, 11, 0, 16, 5, 2, 0x436 | PALETTE_MODIFIER_COLOR },
{ 0, 0, 16, 16, 16, 10, 0x8439 }, { 0, 0, 16, 16, 16, 10, 0x439 | PALETTE_MODIFIER_COLOR },
{ 0, 0,0x80, 0, 0, 0, 0x322443D }, { 0, 0,0x80, 0, 0, 0, 0x43D | PALETTE_TO_TRANSPARENT },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_7[] = { static const DrawTileSeqStruct _station_display_datas_7[] = {
{ 0, 0, 0, 5, 16, 2, 0x842F }, { 0, 0, 0, 5, 16, 2, 0x42F | PALETTE_MODIFIER_COLOR },
{ 11, 0, 0, 5, 16, 2, 0x8433 }, { 11, 0, 0, 5, 16, 2, 0x433 | PALETTE_MODIFIER_COLOR },
{ 0, 0, 16, 16, 16, 10, 0x843A }, { 0, 0, 16, 16, 16, 10, 0x43A | PALETTE_MODIFIER_COLOR },
{ 0, 0,0x80, 0, 0, 0, 0x322443E }, { 0, 0,0x80, 0, 0, 0, 0x43E | PALETTE_TO_TRANSPARENT },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -63,12 +63,12 @@ static const DrawTileSeqStruct _station_display_datas_8[] = {
}; };
static const DrawTileSeqStruct _station_display_datas_9[] = { static const DrawTileSeqStruct _station_display_datas_9[] = {
{ 0, 0, 0, 16, 1, 6, 0x8A68 }, { 0, 0, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_10[] = { static const DrawTileSeqStruct _station_display_datas_10[] = {
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -113,70 +113,70 @@ static const DrawTileSeqStruct _station_display_datas_20[] = {
}; };
static const DrawTileSeqStruct _station_display_datas_21[] = { static const DrawTileSeqStruct _station_display_datas_21[] = {
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_22[] = { static const DrawTileSeqStruct _station_display_datas_22[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_23[] = { static const DrawTileSeqStruct _station_display_datas_23[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_24[] = { static const DrawTileSeqStruct _station_display_datas_24[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_25[] = { static const DrawTileSeqStruct _station_display_datas_25[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_26[] = { static const DrawTileSeqStruct _station_display_datas_26[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_27[] = { static const DrawTileSeqStruct _station_display_datas_27[] = {
{ 2, 0, 0, 11, 16, 40, 0x8A5A }, { 2, 0, 0, 11, 16, 40, 0xA5A | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_28[] = { static const DrawTileSeqStruct _station_display_datas_28[] = {
{ 3, 3, 0, 10, 10, 60, 0x8A5B }, { 3, 3, 0, 10, 10, 60, 0xA5B | PALETTE_MODIFIER_COLOR },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_29[] = { static const DrawTileSeqStruct _station_display_datas_29[] = {
{ 0, 1, 0, 14, 14, 30, 0x8A5C }, { 0, 1, 0, 14, 14, 30, 0xA5C | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_30[] = { static const DrawTileSeqStruct _station_display_datas_30[] = {
{ 3, 3, 0, 10, 11, 35, 0x8A5D }, { 3, 3, 0, 10, 11, 35, 0xA5D | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_31[] = { static const DrawTileSeqStruct _station_display_datas_31[] = {
{ 0, 3, 0, 16, 11, 40, 0x8A5E }, { 0, 3, 0, 16, 11, 40, 0xA5E | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_32[] = { static const DrawTileSeqStruct _station_display_datas_32[] = {
{ 14, 0, 0, 2, 16, 28, 0x8A5F }, { 14, 0, 0, 2, 16, 28, 0xA5F | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 2, 16, 28, 0xA60 }, { 0, 0, 0, 2, 16, 28, 0xA60 },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_33[] = { static const DrawTileSeqStruct _station_display_datas_33[] = {
{ 7, 11, 0, 3, 3, 14, 0xA63 }, { 7, 11, 0, 3, 3, 14, 0xA63 },
{ 0, 0, 0, 16, 1, 6, 0x8A68 }, { 0, 0, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -200,85 +200,85 @@ static const DrawTileSeqStruct _station_display_datas_37[] = {
}; };
static const DrawTileSeqStruct _station_display_datas_38[] = { static const DrawTileSeqStruct _station_display_datas_38[] = {
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_39[] = { static const DrawTileSeqStruct _station_display_datas_39[] = {
{ 7, 7, 0, 2, 2, 8, 0xA78 }, { 7, 7, 0, 2, 2, 8, 0xA78 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_40[] = { static const DrawTileSeqStruct _station_display_datas_40[] = {
{ 7, 7, 0, 2, 2, 8, 0xA79 }, { 7, 7, 0, 2, 2, 8, 0xA79 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_41[] = { static const DrawTileSeqStruct _station_display_datas_41[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7A }, { 7, 7, 0, 2, 2, 8, 0xA7A },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_42[] = { static const DrawTileSeqStruct _station_display_datas_42[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7B }, { 7, 7, 0, 2, 2, 8, 0xA7B },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_43[] = { static const DrawTileSeqStruct _station_display_datas_43[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7C }, { 7, 7, 0, 2, 2, 8, 0xA7C },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_44[] = { static const DrawTileSeqStruct _station_display_datas_44[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7D }, { 7, 7, 0, 2, 2, 8, 0xA7D },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_45[] = { static const DrawTileSeqStruct _station_display_datas_45[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7E }, { 7, 7, 0, 2, 2, 8, 0xA7E },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_46[] = { static const DrawTileSeqStruct _station_display_datas_46[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7F }, { 7, 7, 0, 2, 2, 8, 0xA7F },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_47[] = { static const DrawTileSeqStruct _station_display_datas_47[] = {
{ 7, 7, 0, 2, 2, 8, 0xA80 }, { 7, 7, 0, 2, 2, 8, 0xA80 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_48[] = { static const DrawTileSeqStruct _station_display_datas_48[] = {
{ 7, 7, 0, 2, 2, 8, 0xA81 }, { 7, 7, 0, 2, 2, 8, 0xA81 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_49[] = { static const DrawTileSeqStruct _station_display_datas_49[] = {
{ 7, 7, 0, 2, 2, 8, 0xA82 }, { 7, 7, 0, 2, 2, 8, 0xA82 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_50[] = { static const DrawTileSeqStruct _station_display_datas_50[] = {
{ 7, 7, 0, 2, 2, 8, 0xA83 }, { 7, 7, 0, 2, 2, 8, 0xA83 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_51[] = { static const DrawTileSeqStruct _station_display_datas_51[] = {
{ 7, 7, 0, 2, 2, 70, 0xA29 }, { 7, 7, 0, 2, 2, 70, 0xA29 },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -291,12 +291,12 @@ static const DrawTileSeqStruct _station_display_datas_53[] = {
}; };
static const DrawTileSeqStruct _station_display_datas_54[] = { static const DrawTileSeqStruct _station_display_datas_54[] = {
{ 0, 0, 0, 15, 15, 30, 0x8A6C }, { 0, 0, 0, 15, 15, 30, 0xA6C | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_55[] = { static const DrawTileSeqStruct _station_display_datas_55[] = {
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -309,108 +309,108 @@ static const DrawTileSeqStruct _station_display_datas_57[] = {
}; };
static const DrawTileSeqStruct _station_display_datas_58[] = { static const DrawTileSeqStruct _station_display_datas_58[] = {
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
{ 4, 11, 0, 1, 1, 20, 0x8A74 }, { 4, 11, 0, 1, 1, 20, 0xA74 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_59[] = { static const DrawTileSeqStruct _station_display_datas_59[] = {
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
{ 4, 11, 0, 1, 1, 20, 0x8A75 }, { 4, 11, 0, 1, 1, 20, 0xA75 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_60[] = { static const DrawTileSeqStruct _station_display_datas_60[] = {
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
{ 4, 11, 0, 1, 1, 20, 0x8A76 }, { 4, 11, 0, 1, 1, 20, 0xA76 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_61[] = { static const DrawTileSeqStruct _station_display_datas_61[] = {
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
{ 4, 11, 0, 1, 1, 20, 0x8A77 }, { 4, 11, 0, 1, 1, 20, 0xA77 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_62[] = { static const DrawTileSeqStruct _station_display_datas_62[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_63[] = { static const DrawTileSeqStruct _station_display_datas_63[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_64[] = { static const DrawTileSeqStruct _station_display_datas_64[] = {
{ 0, 15, 0, 16, 1, 6, 0x8A68 }, { 0, 15, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_65[] = { static const DrawTileSeqStruct _station_display_datas_65[] = {
{ 14, 0, 0, 2, 16, 28, 0x8A61 }, { 14, 0, 0, 2, 16, 28, 0xA61 | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 2, 16, 28, 0xA62 }, { 0, 0, 0, 2, 16, 28, 0xA62 },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_66[] = { static const DrawTileSeqStruct _station_display_datas_66[] = {
{ 0, 0, 0, 16, 16, 60, 0x8A49 }, { 0, 0, 0, 16, 16, 60, 0xA49 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_67[] = { static const DrawTileSeqStruct _station_display_datas_67[] = {
{ 0, 15, 0, 13, 1, 10, 0x8A98 }, { 0, 15, 0, 13, 1, 10, 0xA98 | PALETTE_MODIFIER_COLOR },
{ 13, 0, 0, 3, 16, 10, 0x8A9C }, { 13, 0, 0, 3, 16, 10, 0xA9C | PALETTE_MODIFIER_COLOR },
{ 2, 0, 0, 11, 1, 10, 0x8AA0 }, { 2, 0, 0, 11, 1, 10, 0xAA0 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_68[] = { static const DrawTileSeqStruct _station_display_datas_68[] = {
{ 15, 3, 0, 1, 13, 10, 0x8A99 }, { 15, 3, 0, 1, 13, 10, 0xA99 | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 16, 3, 10, 0x8A9D }, { 0, 0, 0, 16, 3, 10, 0xA9D | PALETTE_MODIFIER_COLOR },
{ 0, 3, 0, 1, 11, 10, 0x8AA1 }, { 0, 3, 0, 1, 11, 10, 0xAA1 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_69[] = { static const DrawTileSeqStruct _station_display_datas_69[] = {
{ 3, 0, 0, 13, 1, 10, 0x8A9A }, { 3, 0, 0, 13, 1, 10, 0xA9A | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 3, 16, 10, 0x8A9E }, { 0, 0, 0, 3, 16, 10, 0xA9E | PALETTE_MODIFIER_COLOR },
{ 3, 15, 0, 11, 1, 10, 0x8AA2 }, { 3, 15, 0, 11, 1, 10, 0xAA2 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_70[] = { static const DrawTileSeqStruct _station_display_datas_70[] = {
{ 0, 0, 0, 1, 13, 10, 0x8A9B }, { 0, 0, 0, 1, 13, 10, 0xA9B | PALETTE_MODIFIER_COLOR },
{ 0, 13, 0, 16, 3, 10, 0x8A9F }, { 0, 13, 0, 16, 3, 10, 0xA9F | PALETTE_MODIFIER_COLOR },
{ 15, 2, 0, 1, 11, 10, 0x8AA3 }, { 15, 2, 0, 1, 11, 10, 0xAA3 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_71[] = { static const DrawTileSeqStruct _station_display_datas_71[] = {
{ 2, 0, 0, 11, 1, 10, 0x8A88 }, { 2, 0, 0, 11, 1, 10, 0xA88 | PALETTE_MODIFIER_COLOR },
{ 13, 0, 0, 3, 16, 10, 0x8A8C }, { 13, 0, 0, 3, 16, 10, 0xA8C | PALETTE_MODIFIER_COLOR },
{ 0, 13, 0, 13, 3, 10, 0x8A90 }, { 0, 13, 0, 13, 3, 10, 0xA90 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_72[] = { static const DrawTileSeqStruct _station_display_datas_72[] = {
{ 0, 3, 0, 1, 11, 10, 0x8A89 }, { 0, 3, 0, 1, 11, 10, 0xA89 | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 16, 3, 10, 0x8A8D }, { 0, 0, 0, 16, 3, 10, 0xA8D | PALETTE_MODIFIER_COLOR },
{ 13, 3, 0, 3, 13, 10, 0x8A91 }, { 13, 3, 0, 3, 13, 10, 0xA91 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_73[] = { static const DrawTileSeqStruct _station_display_datas_73[] = {
{ 3, 15, 0, 11, 1, 10, 0x8A8A }, { 3, 15, 0, 11, 1, 10, 0xA8A | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 3, 16, 10, 0x8A8E }, { 0, 0, 0, 3, 16, 10, 0xA8E | PALETTE_MODIFIER_COLOR },
{ 3, 0, 0, 13, 3, 10, 0x8A92 }, { 3, 0, 0, 13, 3, 10, 0xA92 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _station_display_datas_74[] = { static const DrawTileSeqStruct _station_display_datas_74[] = {
{ 15, 2, 0, 1, 11, 10, 0x8A8B }, { 15, 2, 0, 1, 11, 10, 0xA8B | PALETTE_MODIFIER_COLOR },
{ 0, 13, 0, 16, 3, 10, 0x8A8F }, { 0, 13, 0, 16, 3, 10, 0xA8F | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 3, 13, 10, 0x8A93 }, { 0, 0, 0, 3, 13, 10, 0xA93 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -465,14 +465,14 @@ const DrawTileSeqStruct _station_display_datas_084[] = {
// control tower with concrete underground and no fence // control tower with concrete underground and no fence
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_085[] = { const DrawTileSeqStruct _station_display_datas_085[] = {
{ 3, 3, 0, 10, 10, 60, 0x8A5B }, // control tower { 3, 3, 0, 10, 10, 60, 0xA5B | PALETTE_MODIFIER_COLOR }, // control tower
TILE_SEQ_END() TILE_SEQ_END()
}; };
// new airportdepot, facing west // new airportdepot, facing west
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_086[] = { const DrawTileSeqStruct _station_display_datas_086[] = {
{ 14, 0, 0, 2, 16, 28, 0x8A61 }, { 14, 0, 0, 2, 16, 28, 0xA61 | PALETTE_MODIFIER_COLOR },
{ 0, 0, 0, 2, 16, 28, 0xA62 }, { 0, 0, 0, 2, 16, 28, 0xA62 },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -480,19 +480,19 @@ const DrawTileSeqStruct _station_display_datas_086[] = {
// asphalt tile with fences in north // asphalt tile with fences in north
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_087[] = { const DrawTileSeqStruct _station_display_datas_087[] = {
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// end of runway // end of runway
const DrawTileSeqStruct _station_display_datas_088[] = { const DrawTileSeqStruct _station_display_datas_088[] = {
{ 0, 0, 0, 16, 1, 6, 0x8A68 }, // fences { 0, 0, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR }, // fences
TILE_SEQ_END() TILE_SEQ_END()
}; };
// runway tiles // runway tiles
const DrawTileSeqStruct _station_display_datas_089[] = { const DrawTileSeqStruct _station_display_datas_089[] = {
{ 0, 0, 0, 16, 1, 6, 0x8A68 }, // fences { 0, 0, 0, 16, 1, 6, 0xA68 | PALETTE_MODIFIER_COLOR }, // fences
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -501,84 +501,84 @@ const DrawTileSeqStruct _station_display_datas_089[] = {
//BEGIN //BEGIN
const DrawTileSeqStruct _station_display_datas_090[] = { const DrawTileSeqStruct _station_display_datas_090[] = {
{ 7, 7, 0, 2, 2, 8, 0xA78 }, // turning radar { 7, 7, 0, 2, 2, 8, 0xA78 }, // turning radar
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, //fences { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR }, //fences
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_091[] = { const DrawTileSeqStruct _station_display_datas_091[] = {
{ 7, 7, 0, 2, 2, 8, 0xA79 }, { 7, 7, 0, 2, 2, 8, 0xA79 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_092[] = { const DrawTileSeqStruct _station_display_datas_092[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7A }, { 7, 7, 0, 2, 2, 8, 0xA7A },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_093[] = { const DrawTileSeqStruct _station_display_datas_093[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7B }, { 7, 7, 0, 2, 2, 8, 0xA7B },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_094[] = { const DrawTileSeqStruct _station_display_datas_094[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7C }, { 7, 7, 0, 2, 2, 8, 0xA7C },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_095[] = { const DrawTileSeqStruct _station_display_datas_095[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7D }, { 7, 7, 0, 2, 2, 8, 0xA7D },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_096[] = { const DrawTileSeqStruct _station_display_datas_096[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7E }, { 7, 7, 0, 2, 2, 8, 0xA7E },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_097[] = { const DrawTileSeqStruct _station_display_datas_097[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7F }, { 7, 7, 0, 2, 2, 8, 0xA7F },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_098[] = { const DrawTileSeqStruct _station_display_datas_098[] = {
{ 7, 7, 0, 2, 2, 8, 0xA80 }, { 7, 7, 0, 2, 2, 8, 0xA80 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_099[] = { const DrawTileSeqStruct _station_display_datas_099[] = {
{ 7, 7, 0, 2, 2, 8, 0xA81 }, { 7, 7, 0, 2, 2, 8, 0xA81 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0100[] = { const DrawTileSeqStruct _station_display_datas_0100[] = {
{ 7, 7, 0, 2, 2, 8, 0xA82 }, { 7, 7, 0, 2, 2, 8, 0xA82 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0101[] = { const DrawTileSeqStruct _station_display_datas_0101[] = {
{ 7, 7, 0, 2, 2, 8, 0xA83 }, { 7, 7, 0, 2, 2, 8, 0xA83 },
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
//END //END
@ -588,84 +588,84 @@ const DrawTileSeqStruct _station_display_datas_0101[] = {
//BEGIN //BEGIN
const DrawTileSeqStruct _station_display_datas_0102[] = { const DrawTileSeqStruct _station_display_datas_0102[] = {
{ 7, 7, 0, 2, 2, 8, 0xA78 }, // turning radar { 7, 7, 0, 2, 2, 8, 0xA78 }, // turning radar
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0103[] = { const DrawTileSeqStruct _station_display_datas_0103[] = {
{ 7, 7, 0, 2, 2, 8, 0xA79 }, { 7, 7, 0, 2, 2, 8, 0xA79 },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0104[] = { const DrawTileSeqStruct _station_display_datas_0104[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7A }, { 7, 7, 0, 2, 2, 8, 0xA7A },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0105[] = { const DrawTileSeqStruct _station_display_datas_0105[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7B }, { 7, 7, 0, 2, 2, 8, 0xA7B },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0106[] = { const DrawTileSeqStruct _station_display_datas_0106[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7C }, { 7, 7, 0, 2, 2, 8, 0xA7C },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0107[] = { const DrawTileSeqStruct _station_display_datas_0107[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7D }, { 7, 7, 0, 2, 2, 8, 0xA7D },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0108[] = { const DrawTileSeqStruct _station_display_datas_0108[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7E }, { 7, 7, 0, 2, 2, 8, 0xA7E },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0109[] = { const DrawTileSeqStruct _station_display_datas_0109[] = {
{ 7, 7, 0, 2, 2, 8, 0xA7F }, { 7, 7, 0, 2, 2, 8, 0xA7F },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0110[] = { const DrawTileSeqStruct _station_display_datas_0110[] = {
{ 7, 7, 0, 2, 2, 8, 0xA80 }, { 7, 7, 0, 2, 2, 8, 0xA80 },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0111[] = { const DrawTileSeqStruct _station_display_datas_0111[] = {
{ 7, 7, 0, 2, 2, 8, 0xA81 }, { 7, 7, 0, 2, 2, 8, 0xA81 },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0112[] = { const DrawTileSeqStruct _station_display_datas_0112[] = {
{ 7, 7, 0, 2, 2, 8, 0xA82 }, { 7, 7, 0, 2, 2, 8, 0xA82 },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0113[] = { const DrawTileSeqStruct _station_display_datas_0113[] = {
{ 7, 7, 0, 2, 2, 8, 0xA83 }, { 7, 7, 0, 2, 2, 8, 0xA83 },
{ 0, 0, 0, 1, 16, 6, 0x8A67 }, { 0, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
//END //END
@ -674,7 +674,7 @@ const DrawTileSeqStruct _station_display_datas_0113[] = {
// concrete underground // concrete underground
const DrawTileSeqStruct _station_display_datas_0114[] = { const DrawTileSeqStruct _station_display_datas_0114[] = {
{ 10, 6, 0, 0, 0, 0, SPR_OPENTTD_BASE + 31 }, // helipad { 10, 6, 0, 0, 0, 0, SPR_OPENTTD_BASE + 31 }, // helipad
{ 15, 0, 0, 1, 16, 6, 0x8A67 }, // fences bottom { 15, 0, 0, 1, 16, 6, 0xA67 | PALETTE_MODIFIER_COLOR }, // fences bottom
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -733,7 +733,7 @@ static const DrawTileSprites _station_display_datas[] = {
{ 0xF8D, _station_display_datas_51 }, { 0xF8D, _station_display_datas_51 },
{ 0xA69, _station_display_datas_52 }, { 0xA69, _station_display_datas_52 },
{ 0xA6A, _station_display_datas_53 }, { 0xA6A, _station_display_datas_53 },
{ 0x8A6B, _station_display_datas_54 }, { 0xA6B | PALETTE_MODIFIER_COLOR, _station_display_datas_54 },
{ 0xA6D, _station_display_datas_55 }, { 0xA6D, _station_display_datas_55 },
{ 0xA6E, _station_display_datas_56 }, { 0xA6E, _station_display_datas_56 },
{ 0xA6F, _station_display_datas_57 }, { 0xA6F, _station_display_datas_57 },
@ -746,14 +746,14 @@ static const DrawTileSprites _station_display_datas[] = {
{ 0xA73, _station_display_datas_64 }, { 0xA73, _station_display_datas_64 },
{ 0xA4A, _station_display_datas_65 }, { 0xA4A, _station_display_datas_65 },
{ 0xF8D, _station_display_datas_66 }, { 0xF8D, _station_display_datas_66 },
{ 0x8A94, _station_display_datas_67 }, { 0xA94 | PALETTE_MODIFIER_COLOR, _station_display_datas_67 },
{ 0x8A95, _station_display_datas_68 }, { 0xA95 | PALETTE_MODIFIER_COLOR, _station_display_datas_68 },
{ 0x8A96, _station_display_datas_69 }, { 0xA96 | PALETTE_MODIFIER_COLOR, _station_display_datas_69 },
{ 0x8A97, _station_display_datas_70 }, { 0xA97 | PALETTE_MODIFIER_COLOR, _station_display_datas_70 },
{ 0x8A84, _station_display_datas_71 }, { 0xA84 | PALETTE_MODIFIER_COLOR, _station_display_datas_71 },
{ 0x8A85, _station_display_datas_72 }, { 0xA85 | PALETTE_MODIFIER_COLOR, _station_display_datas_72 },
{ 0x8A86, _station_display_datas_73 }, { 0xA86 | PALETTE_MODIFIER_COLOR, _station_display_datas_73 },
{ 0x8A87, _station_display_datas_74 }, { 0xA87 | PALETTE_MODIFIER_COLOR, _station_display_datas_74 },
{ 0xFDD, _station_display_datas_75 }, { 0xFDD, _station_display_datas_75 },
{ 0xFE4, _station_display_datas_76 }, { 0xFE4, _station_display_datas_76 },
{ 0xFE5, _station_display_datas_77 }, { 0xFE5, _station_display_datas_77 },

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
/* $Id$ */ /* $Id$ */
typedef struct DrawTrackSeqStruct { typedef struct DrawTrackSeqStruct {
uint16 image; SpriteID image;
byte subcoord_x; byte subcoord_x;
byte subcoord_y; byte subcoord_y;
byte width; byte width;
@ -14,41 +14,41 @@ typedef struct DrawTrackSeqStruct {
static const DrawTrackSeqStruct _track_depot_layout_table_0[] = { static const DrawTrackSeqStruct _track_depot_layout_table_0[] = {
TILE_SEQ_BEGIN(0xF8D) TILE_SEQ_BEGIN(0xF8D)
TILE_SEQ_LINE(0x842B, 2, 13, 13, 1) TILE_SEQ_LINE(0x42B | PALETTE_MODIFIER_COLOR, 2, 13, 13, 1)
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTrackSeqStruct _track_depot_layout_table_1[] = { static const DrawTrackSeqStruct _track_depot_layout_table_1[] = {
TILE_SEQ_BEGIN(0x83F3) TILE_SEQ_BEGIN(0x3F3 | PALETTE_MODIFIER_COLOR)
TILE_SEQ_LINE(0x8427, 2, 2, 1, 13) TILE_SEQ_LINE(0x427 | PALETTE_MODIFIER_COLOR, 2, 2, 1, 13)
TILE_SEQ_LINE(0x8428, 13, 2, 1, 13) TILE_SEQ_LINE(0x428 | PALETTE_MODIFIER_COLOR, 13, 2, 1, 13)
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTrackSeqStruct _track_depot_layout_table_2[] = { static const DrawTrackSeqStruct _track_depot_layout_table_2[] = {
TILE_SEQ_BEGIN(0x83F4) TILE_SEQ_BEGIN(0x3F4 | PALETTE_MODIFIER_COLOR)
TILE_SEQ_LINE(0x8429, 2, 2, 13, 1) TILE_SEQ_LINE(0x429 | PALETTE_MODIFIER_COLOR, 2, 2, 13, 1)
TILE_SEQ_LINE(0x842A, 2, 13, 13, 1) TILE_SEQ_LINE(0x42A | PALETTE_MODIFIER_COLOR, 2, 13, 13, 1)
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTrackSeqStruct _track_depot_layout_table_3[] = { static const DrawTrackSeqStruct _track_depot_layout_table_3[] = {
TILE_SEQ_BEGIN(0xF8D) TILE_SEQ_BEGIN(0xF8D)
TILE_SEQ_LINE(0x842C, 13, 2, 1, 13) TILE_SEQ_LINE(0x42C | PALETTE_MODIFIER_COLOR, 13, 2, 1, 13)
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTrackSeqStruct _track_waypoint_table_0[] = { static const DrawTrackSeqStruct _track_waypoint_table_0[] = {
TILE_SEQ_BEGIN(0x83F4) TILE_SEQ_BEGIN(0x3F4 | PALETTE_MODIFIER_COLOR)
TILE_SEQ_LINE(0x8000 + SPR_OPENTTD_BASE+18, 0, 0, 16, 5) TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | (SPR_OPENTTD_BASE + 18), 0, 0, 16, 5)
TILE_SEQ_LINE(0x8000 + SPR_OPENTTD_BASE+19, 0, 11, 16, 5) TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | (SPR_OPENTTD_BASE + 19), 0, 11, 16, 5)
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTrackSeqStruct _track_waypoint_table_1[] = { static const DrawTrackSeqStruct _track_waypoint_table_1[] = {
TILE_SEQ_BEGIN(0x83F3) TILE_SEQ_BEGIN(0x3F3 | PALETTE_MODIFIER_COLOR)
TILE_SEQ_LINE(0x8000 + SPR_OPENTTD_BASE+20, 0, 0, 5, 16) TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | (SPR_OPENTTD_BASE + 20), 0, 0, 5, 16)
TILE_SEQ_LINE(0x8000 + SPR_OPENTTD_BASE+21, 11, 0, 5, 16) TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | (SPR_OPENTTD_BASE + 21), 11, 0, 5, 16)
TILE_SEQ_END() TILE_SEQ_END()
}; };

View File

@ -149,42 +149,42 @@ static const PalSpriteID _tree_layout_sprite[164+(79-48+1)][4] = {
{ 0x794, 0x794, 0x75c, 0x71d}, /* 125 */ { 0x794, 0x794, 0x75c, 0x71d}, /* 125 */
{ 0x794, 0x724, 0x794, 0x71d}, /* 126 */ { 0x794, 0x724, 0x794, 0x71d}, /* 126 */
{ 0x794, 0x794, 0x771, 0x78d}, /* 127 */ { 0x794, 0x794, 0x771, 0x78d}, /* 127 */
{ 0x30b879b, 0x308879b, 0x311879b, 0x312879b}, /* 128 */ { 0x79b | PALETTE_TO_RED, 0x79b | PALETTE_TO_PALE_GREEN, 0x79b | PALETTE_TO_MAUVE, 0x79b | PALETTE_TO_PURPLE}, /* 128 */
{ 0x79b, 0x315879b, 0x30d879b, 0x316879b}, /* 129 */ { 0x79b, 0x79b | PALETTE_TO_GREY, 0x79b | PALETTE_TO_GREEN, 0x79b | PALETTE_TO_WHITE}, /* 129 */
{ 0x30d879b, 0x313879b, 0x309879b, 0x79b}, /* 130 */ { 0x79b | PALETTE_TO_GREEN, 0x79b | PALETTE_TO_ORANGE, 0x79b | PALETTE_TO_PINK, 0x79b}, /* 130 */
{ 0x30a879b, 0x30b879b, 0x310879b, 0x30b879b}, /* 131 */ { 0x79b | PALETTE_TO_YELLOW, 0x79b | PALETTE_TO_RED, 0x79b | PALETTE_TO_CREAM, 0x79b | PALETTE_TO_RED}, /* 131 */
{ 0x7a2, 0x30b87a2, 0x30987a2, 0x31287a2}, /* 132 */ { 0x7a2, 0x7a2 | PALETTE_TO_RED, 0x7a2 | PALETTE_TO_PINK, 0x7a2 | PALETTE_TO_PURPLE}, /* 132 */
{ 0x31187a2, 0x30d87a2, 0x30987a2, 0x31587a2}, /* 133 */ { 0x7a2 | PALETTE_TO_MAUVE, 0x7a2 | PALETTE_TO_GREEN, 0x7a2 | PALETTE_TO_PINK, 0x7a2 | PALETTE_TO_GREY}, /* 133 */
{ 0x30b87a2, 0x30887a2, 0x30a87a2, 0x31687a2}, /* 134 */ { 0x7a2 | PALETTE_TO_RED, 0x7a2 | PALETTE_TO_PALE_GREEN, 0x7a2 | PALETTE_TO_YELLOW, 0x7a2 | PALETTE_TO_WHITE}, /* 134 */
{ 0x31387a2, 0x31187a2, 0x31087a2, 0x31487a2}, /* 135 */ { 0x7a2 | PALETTE_TO_ORANGE, 0x7a2 | PALETTE_TO_MAUVE, 0x7a2 | PALETTE_TO_CREAM, 0x7a2 | PALETTE_TO_BROWN}, /* 135 */
{ 0x30b87a9, 0x7a9, 0x31387a9, 0x31587a9}, /* 136 */ { 0x7a9 | PALETTE_TO_RED, 0x7a9, 0x7a9 | PALETTE_TO_ORANGE, 0x7a9 | PALETTE_TO_GREY}, /* 136 */
{ 0x31387a9, 0x30d87a9, 0x30887a9, 0x31187a9}, /* 137 */ { 0x7a9 | PALETTE_TO_ORANGE, 0x7a9 | PALETTE_TO_GREEN, 0x7a9 | PALETTE_TO_PALE_GREEN, 0x7a9 | PALETTE_TO_MAUVE}, /* 137 */
{ 0x30987a9, 0x30b87a9, 0x30d87a9, 0x31487a9}, /* 138 */ { 0x7a9 | PALETTE_TO_PINK, 0x7a9 | PALETTE_TO_RED, 0x7a9 | PALETTE_TO_GREEN, 0x7a9 | PALETTE_TO_BROWN}, /* 138 */
{ 0x30d87a9, 0x7a9, 0x30b87a9, 0x31087a9}, /* 139 */ { 0x7a9 | PALETTE_TO_GREEN, 0x7a9, 0x7a9 | PALETTE_TO_RED, 0x7a9 | PALETTE_TO_CREAM}, /* 139 */
{ 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 140 */ { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 140 */
{ 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 141 */ { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 141 */
{ 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 142 */ { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 142 */
{ 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 143 */ { 0x7b0, 0x7b0, 0x7b0, 0x7b0}, /* 143 */
{ 0x30987b7, 0x30b87b7, 0x31387b7, 0x31187b7}, /* 144 */ { 0x7b7 | PALETTE_TO_PINK, 0x7b7 | PALETTE_TO_RED, 0x7b7 | PALETTE_TO_ORANGE, 0x7b7 | PALETTE_TO_MAUVE}, /* 144 */
{ 0x30b87b7, 0x7b7, 0x31587b7, 0x31087b7}, /* 145 */ { 0x7b7 | PALETTE_TO_RED, 0x7b7, 0x7b7 | PALETTE_TO_GREY, 0x7b7 | PALETTE_TO_CREAM}, /* 145 */
{ 0x30d87b7, 0x31487b7, 0x30987b7, 0x30b87b7}, /* 146 */ { 0x7b7 | PALETTE_TO_GREEN, 0x7b7 | PALETTE_TO_BROWN, 0x7b7 | PALETTE_TO_PINK, 0x7b7 | PALETTE_TO_RED}, /* 146 */
{ 0x7b7, 0x30887b7, 0x31387b7, 0x30b87b7}, /* 147 */ { 0x7b7, 0x7b7 | PALETTE_TO_PALE_GREEN, 0x7b7 | PALETTE_TO_ORANGE, 0x7b7 | PALETTE_TO_RED}, /* 147 */
{ 0x30b87be, 0x30987be, 0x30d87be, 0x7be}, /* 148 */ { 0x7be | PALETTE_TO_RED, 0x7be | PALETTE_TO_PINK, 0x7be | PALETTE_TO_GREEN, 0x7be}, /* 148 */
{ 0x30d87be, 0x31487be, 0x31287be, 0x31587be}, /* 149 */ { 0x7be | PALETTE_TO_GREEN, 0x7be | PALETTE_TO_BROWN, 0x7be | PALETTE_TO_PURPLE, 0x7be | PALETTE_TO_GREY}, /* 149 */
{ 0x31187be, 0x31087be, 0x31387be, 0x30b87be}, /* 150 */ { 0x7be | PALETTE_TO_MAUVE, 0x7be | PALETTE_TO_CREAM, 0x7be | PALETTE_TO_ORANGE, 0x7be | PALETTE_TO_RED}, /* 150 */
{ 0x7be, 0x30b87be, 0x30887be, 0x30987be}, /* 151 */ { 0x7be, 0x7be | PALETTE_TO_RED, 0x7be | PALETTE_TO_PALE_GREEN, 0x7be | PALETTE_TO_PINK}, /* 151 */
{ 0x30a87c5, 0x30b87c5, 0x31687c5, 0x31087c5}, /* 152 */ { 0x7c5 | PALETTE_TO_YELLOW, 0x7c5 | PALETTE_TO_RED, 0x7c5 | PALETTE_TO_WHITE, 0x7c5 | PALETTE_TO_CREAM}, /* 152 */
{ 0x30b87c5, 0x30887c5, 0x31487c5, 0x30a87c5}, /* 153 */ { 0x7c5 | PALETTE_TO_RED, 0x7c5 | PALETTE_TO_PALE_GREEN, 0x7c5 | PALETTE_TO_BROWN, 0x7c5 | PALETTE_TO_YELLOW}, /* 153 */
{ 0x7c5, 0x31287c5, 0x30d87c5, 0x30a87c5}, /* 154 */ { 0x7c5, 0x7c5 | PALETTE_TO_PURPLE, 0x7c5 | PALETTE_TO_GREEN, 0x7c5 | PALETTE_TO_YELLOW}, /* 154 */
{ 0x30987c5, 0x31087c5, 0x7c5, 0x31587c5}, /* 155 */ { 0x7c5 | PALETTE_TO_PINK, 0x7c5 | PALETTE_TO_CREAM, 0x7c5, 0x7c5 | PALETTE_TO_GREY}, /* 155 */
{ 0x30a87cc, 0x31587cc, 0x31287cc, 0x31487cc}, /* 156 */ { 0x7cc | PALETTE_TO_YELLOW, 0x7cc | PALETTE_TO_GREY, 0x7cc | PALETTE_TO_PURPLE, 0x7cc | PALETTE_TO_BROWN}, /* 156 */
{ 0x30d87cc, 0x7cc, 0x31087cc, 0x31687cc}, /* 157 */ { 0x7cc | PALETTE_TO_GREEN, 0x7cc, 0x7cc | PALETTE_TO_CREAM, 0x7cc | PALETTE_TO_WHITE}, /* 157 */
{ 0x30b87cc, 0x30887cc, 0x31187cc, 0x30b87cc}, /* 158 */ { 0x7cc | PALETTE_TO_RED, 0x7cc | PALETTE_TO_PALE_GREEN, 0x7cc | PALETTE_TO_MAUVE, 0x7cc | PALETTE_TO_RED}, /* 158 */
{ 0x30987cc, 0x31387cc, 0x30d87cc, 0x30a87cc}, /* 159 */ { 0x7cc | PALETTE_TO_PINK, 0x7cc | PALETTE_TO_ORANGE, 0x7cc | PALETTE_TO_GREEN, 0x7cc | PALETTE_TO_YELLOW}, /* 159 */
{ 0x30b87d3, 0x30987d3, 0x31487d3, 0x31687d3}, /* 160 */ { 0x7d3 | PALETTE_TO_RED, 0x7d3 | PALETTE_TO_PINK, 0x7d3 | PALETTE_TO_BROWN, 0x7d3 | PALETTE_TO_WHITE}, /* 160 */
{ 0x30d87d3, 0x31387d3, 0x31587d3, 0x31187d3}, /* 161 */ { 0x7d3 | PALETTE_TO_GREEN, 0x7d3 | PALETTE_TO_ORANGE, 0x7d3 | PALETTE_TO_GREY, 0x7d3 | PALETTE_TO_MAUVE}, /* 161 */
{ 0x30a87d3, 0x30887d3, 0x7d3, 0x31087d3}, /* 162 */ { 0x7d3 | PALETTE_TO_YELLOW, 0x7d3 | PALETTE_TO_PALE_GREEN, 0x7d3, 0x7d3 | PALETTE_TO_CREAM}, /* 162 */
{ 0x31587d3, 0x30b87d3, 0x31687d3, 0x7d3}, /* 163 */ { 0x7d3 | PALETTE_TO_GREY, 0x7d3 | PALETTE_TO_RED, 0x7d3 | PALETTE_TO_WHITE, 0x7d3}, /* 163 */
/* the extra things follow */ /* the extra things follow */
{ 0x6e5, 0x6e5, 0x6e5, 0x6e5}, /* 0 */ { 0x6e5, 0x6e5, 0x6e5, 0x6e5}, /* 0 */
{ 0x6e5, 0x6e5, 0x6fa, 0x708}, /* 1 */ { 0x6e5, 0x6e5, 0x6fa, 0x708}, /* 1 */

View File

@ -41,17 +41,17 @@ static const DrawTileSeqStruct _unmovable_display_datas_7[] = {
}; };
static const DrawTileSeqStruct _unmovable_display_datas_8[] = { static const DrawTileSeqStruct _unmovable_display_datas_8[] = {
{ 0, 0, 0, 16, 16, 20, 0x8A34 }, { 0, 0, 0, 16, 16, 20, 0xA34 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _unmovable_display_datas_9[] = { static const DrawTileSeqStruct _unmovable_display_datas_9[] = {
{ 0, 0, 0, 16, 16, 20, 0x8A36 }, { 0, 0, 0, 16, 16, 20, 0xA36 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _unmovable_display_datas_10[] = { static const DrawTileSeqStruct _unmovable_display_datas_10[] = {
{ 0, 0, 0, 16, 16, 20, 0x8A38 }, { 0, 0, 0, 16, 16, 20, 0xA38 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -60,17 +60,17 @@ static const DrawTileSeqStruct _unmovable_display_datas_11[] = {
}; };
static const DrawTileSeqStruct _unmovable_display_datas_12[] = { static const DrawTileSeqStruct _unmovable_display_datas_12[] = {
{ 0, 0, 0, 16, 16, 50, 0x8A3B }, { 0, 0, 0, 16, 16, 50, 0xA3B | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _unmovable_display_datas_13[] = { static const DrawTileSeqStruct _unmovable_display_datas_13[] = {
{ 0, 0, 0, 16, 16, 50, 0x8A3D }, { 0, 0, 0, 16, 16, 50, 0xA3D | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _unmovable_display_datas_14[] = { static const DrawTileSeqStruct _unmovable_display_datas_14[] = {
{ 0, 0, 0, 16, 16, 50, 0x8A3F }, { 0, 0, 0, 16, 16, 50, 0xA3F | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -79,17 +79,17 @@ static const DrawTileSeqStruct _unmovable_display_datas_15[] = {
}; };
static const DrawTileSeqStruct _unmovable_display_datas_16[] = { static const DrawTileSeqStruct _unmovable_display_datas_16[] = {
{ 0, 0, 0, 16, 16, 60, 0x8A42 }, { 0, 0, 0, 16, 16, 60, 0xA42 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _unmovable_display_datas_17[] = { static const DrawTileSeqStruct _unmovable_display_datas_17[] = {
{ 0, 0, 0, 16, 16, 60, 0x8A44 }, { 0, 0, 0, 16, 16, 60, 0xA44 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
static const DrawTileSeqStruct _unmovable_display_datas_18[] = { static const DrawTileSeqStruct _unmovable_display_datas_18[] = {
{ 0, 0, 0, 16, 16, 60, 0x8A46 }, { 0, 0, 0, 16, 16, 60, 0xA46 | PALETTE_MODIFIER_COLOR },
TILE_SEQ_END() TILE_SEQ_END()
}; };
@ -98,24 +98,24 @@ static const DrawTileSeqStruct _unmovable_display_datas_19[] = {
}; };
static const DrawTileSprites _unmovable_display_datas[] = { static const DrawTileSprites _unmovable_display_datas[] = {
{ 0x8A2B, _unmovable_display_datas_0 }, { 0xA2B | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_0 },
{ 0x8A2C, _unmovable_display_datas_1 }, { 0xA2C | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_1 },
{ 0x8A2D, _unmovable_display_datas_2 }, { 0xA2D | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_2 },
{ 0x8A2E, _unmovable_display_datas_3 }, { 0xA2E | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_3 },
{ 0x8A2F, _unmovable_display_datas_4 }, { 0xA2F | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_4 },
{ 0x8A30, _unmovable_display_datas_5 }, { 0xA30 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_5 },
{ 0x8A31, _unmovable_display_datas_6 }, { 0xA31 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_6 },
{ 0x8A32, _unmovable_display_datas_7 }, { 0xA32 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_7 },
{ 0x8A33, _unmovable_display_datas_8 }, { 0xA33 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_8 },
{ 0x8A35, _unmovable_display_datas_9 }, { 0xA35 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_9 },
{ 0x8A37, _unmovable_display_datas_10 }, { 0xA37 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_10 },
{ 0x8A39, _unmovable_display_datas_11 }, { 0xA39 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_11 },
{ 0x8A3A, _unmovable_display_datas_12 }, { 0xA3A | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_12 },
{ 0x8A3C, _unmovable_display_datas_13 }, { 0xA3C | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_13 },
{ 0x8A3E, _unmovable_display_datas_14 }, { 0xA3E | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_14 },
{ 0x8A40, _unmovable_display_datas_15 }, { 0xA40 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_15 },
{ 0x8A41, _unmovable_display_datas_16 }, { 0xA41 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_16 },
{ 0x8A43, _unmovable_display_datas_17 }, { 0xA43 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_17 },
{ 0x8A45, _unmovable_display_datas_18 }, { 0xA45 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_18 },
{ 0x8A47, _unmovable_display_datas_19 }, { 0xA47 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_19 },
}; };

View File

@ -15,27 +15,27 @@ typedef struct WaterDrawTileStruct {
static const WaterDrawTileStruct _shipdepot_display_seq_1[] = { static const WaterDrawTileStruct _shipdepot_display_seq_1[] = {
BEGIN(0xFDD), BEGIN(0xFDD),
{ 0, 15, 0, 16, 1, 0x14, 0x8FE8 }, { 0, 15, 0, 16, 1, 0x14, 0xFE8 | PALETTE_MODIFIER_COLOR },
END(0) END(0)
}; };
static const WaterDrawTileStruct _shipdepot_display_seq_2[] = { static const WaterDrawTileStruct _shipdepot_display_seq_2[] = {
BEGIN(0xFDD), BEGIN(0xFDD),
{ 0, 0, 0, 16, 1, 0x14, 0xFEA }, { 0, 0, 0, 16, 1, 0x14, 0xFEA },
{ 0, 15, 0, 16, 1, 0x14, 0x8FE6 }, { 0, 15, 0, 16, 1, 0x14, 0xFE6 | PALETTE_MODIFIER_COLOR },
END(0) END(0)
}; };
static const WaterDrawTileStruct _shipdepot_display_seq_3[] = { static const WaterDrawTileStruct _shipdepot_display_seq_3[] = {
BEGIN(0xFDD), BEGIN(0xFDD),
{ 15, 0, 0, 1, 0x10, 0x14, 0x8FE9 }, { 15, 0, 0, 1, 0x10, 0x14, 0xFE9 | PALETTE_MODIFIER_COLOR },
END(0) END(0)
}; };
static const WaterDrawTileStruct _shipdepot_display_seq_4[] = { static const WaterDrawTileStruct _shipdepot_display_seq_4[] = {
BEGIN(0xFDD), BEGIN(0xFDD),
{ 0, 0, 0, 1, 16, 0x14, 0xFEB }, { 0, 0, 0, 1, 16, 0x14, 0xFEB },
{ 15, 0, 0, 1, 16, 0x14, 0x8FE7 }, { 15, 0, 0, 1, 16, 0x14, 0xFE7 | PALETTE_MODIFIER_COLOR },
END(0) END(0)
}; };

View File

@ -62,8 +62,8 @@ static void ClearTownHouse(Town *t, TileIndex tile);
static void DoBuildTownHouse(Town *t, TileIndex tile); static void DoBuildTownHouse(Town *t, TileIndex tile);
typedef struct DrawTownTileStruct { typedef struct DrawTownTileStruct {
uint32 sprite_1; SpriteID sprite_1;
uint32 sprite_2; SpriteID sprite_2;
byte subtile_x:4; byte subtile_x:4;
byte subtile_y:4; byte subtile_y:4;

View File

@ -138,7 +138,7 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e)
SetDParam(4, str); SetDParam(4, str);
if (t->exclusivity == p->index) // red icon for player with exclusive rights if (t->exclusivity == p->index) // red icon for player with exclusive rights
DrawSprite((SPR_BLOT) | 0x30b8000, 18, y); DrawSprite((SPR_BLOT) | PALETTE_TO_RED, 18, y);
DrawString(28, y, STR_2024, 0); DrawString(28, y, STR_2024, 0);
y+=10; y+=10;

View File

@ -40,10 +40,10 @@ const uint16 _bridge_speeds[MAX_BRIDGES] = {
}; };
const PalSpriteID _bridge_sprites[MAX_BRIDGES] = { const PalSpriteID _bridge_sprites[MAX_BRIDGES] = {
0x0A24, 0x31E8A26, 0x0A25, 0x3208A22, 0x0A24, 0xA26 | PALETTE_TO_STRUCT_RED, 0x0A25, 0xA22 | PALETTE_TO_STRUCT_CONCRETE,
0x0A22, 0x3218A22, 0x0A23, 0x31C8A23, 0x0A22, 0xA22 | PALETTE_TO_STRUCT_YELLOW, 0x0A23, 0xA23 | PALETTE_TO_STRUCT_BROWN,
0x31E8A23, 0x0A27, 0x0A28, 0x3218A28, 0xA23 | PALETTE_TO_STRUCT_RED, 0x0A27, 0x0A28, 0xA28 | PALETTE_TO_STRUCT_YELLOW,
0x3238A28, 0xA28 | PALETTE_TO_STRUCT_GREY,
}; };
const StringID _bridge_material[MAX_BRIDGES] = { const StringID _bridge_material[MAX_BRIDGES] = {
@ -1135,10 +1135,10 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
// draw roof // draw roof
if (ti->map5&1) { if (ti->map5&1) {
x += 12; x += 12;
if (image&0x3FFF) AddSortableSpriteToDraw(image, x,y, 1, 16, 0x28, z); if (image & SPRITE_MASK) AddSortableSpriteToDraw(image, x,y, 1, 16, 0x28, z);
} else { } else {
y += 12; y += 12;
if (image&0x3FFF) AddSortableSpriteToDraw(image, x,y, 16, 1, 0x28, z); if (image & SPRITE_MASK) AddSortableSpriteToDraw(image, x,y, 16, 1, 0x28, z);
} }
if (ti->z + 5 == z ) { if (ti->z + 5 == z ) {

View File

@ -361,7 +361,7 @@ void DrawGroundSpriteAt(uint32 image, int32 x, int32 y, byte z)
ViewportDrawer *vd = _cur_vd; ViewportDrawer *vd = _cur_vd;
TileSpriteToDraw *ts; TileSpriteToDraw *ts;
assert((image & 0x3FFF) < NUM_SPRITES); assert((image & SPRITE_MASK) < MAX_SPRITES);
if (vd->spritelist_mem >= vd->eof_spritelist_mem) { if (vd->spritelist_mem >= vd->eof_spritelist_mem) {
DEBUG(misc, 0) ("Out of sprite mem"); DEBUG(misc, 0) ("Out of sprite mem");
@ -403,7 +403,7 @@ static void AddCombinedSprite(uint32 image, int x, int y, byte z)
{ {
const ViewportDrawer *vd = _cur_vd; const ViewportDrawer *vd = _cur_vd;
Point pt = RemapCoords(x, y, z); Point pt = RemapCoords(x, y, z);
const SpriteDimension *sd = GetSpriteDimension(image & 0x3FFF); const SpriteDimension *sd = GetSpriteDimension(image & SPRITE_MASK);
if (pt.x + sd->xoffs >= vd->dpi.left + vd->dpi.width || if (pt.x + sd->xoffs >= vd->dpi.left + vd->dpi.width ||
pt.x + sd->xoffs + sd->xsize <= vd->dpi.left || pt.x + sd->xoffs + sd->xsize <= vd->dpi.left ||
@ -422,7 +422,7 @@ void AddSortableSpriteToDraw(uint32 image, int x, int y, int w, int h, byte dz,
const SpriteDimension *sd; const SpriteDimension *sd;
Point pt; Point pt;
assert((image & 0x3FFF) < NUM_SPRITES); assert((image & SPRITE_MASK) < MAX_SPRITES);
if (vd->combine_sprites == 2) { if (vd->combine_sprites == 2) {
AddCombinedSprite(image, x, y, z); AddCombinedSprite(image, x, y, z);
@ -462,7 +462,7 @@ void AddSortableSpriteToDraw(uint32 image, int x, int y, int w, int h, byte dz,
pt = RemapCoords(x, y, z); pt = RemapCoords(x, y, z);
sd = GetSpriteDimension(image & 0x3FFF); sd = GetSpriteDimension(image & SPRITE_MASK);
if ((ps->left = (pt.x += sd->xoffs)) >= vd->dpi.left + vd->dpi.width || if ((ps->left = (pt.x += sd->xoffs)) >= vd->dpi.left + vd->dpi.width ||
(ps->right = (pt.x + sd->xsize)) <= vd->dpi.left || (ps->right = (pt.x + sd->xsize)) <= vd->dpi.left ||
(ps->top = (pt.y += sd->yoffs)) >= vd->dpi.top + vd->dpi.height || (ps->top = (pt.y += sd->yoffs)) >= vd->dpi.top + vd->dpi.height ||
@ -494,7 +494,7 @@ void AddChildSpriteScreen(uint32 image, int x, int y)
ViewportDrawer *vd = _cur_vd; ViewportDrawer *vd = _cur_vd;
ChildScreenSpriteToDraw *cs; ChildScreenSpriteToDraw *cs;
assert((image & 0x3FFF) < NUM_SPRITES); assert((image & SPRITE_MASK) < MAX_SPRITES);
if (vd->spritelist_mem >= vd->eof_spritelist_mem) { if (vd->spritelist_mem >= vd->eof_spritelist_mem) {
DEBUG(misc, 0) ("Out of sprite mem"); DEBUG(misc, 0) ("Out of sprite mem");

View File

@ -378,13 +378,13 @@ void DrawWaypointSprite(int x, int y, int stat_id, int railtype)
const DrawTrackSeqStruct *dtss = _track_depot_layout_table[4]; const DrawTrackSeqStruct *dtss = _track_depot_layout_table[4];
img = dtss++->image; img = dtss++->image;
if (img & 0x8000) img = (img & 0x7FFF) + railtype*TRACKTYPE_SPRITE_PITCH; if (img & PALETTE_MODIFIER_COLOR) img = (img & SPRITE_MASK) + railtype*TRACKTYPE_SPRITE_PITCH;
DrawSprite(img, x, y); DrawSprite(img, x, y);
for (; dtss->image != 0; dtss++) { for (; dtss->image != 0; dtss++) {
Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0); Point pt = RemapCoords(dtss->subcoord_x, dtss->subcoord_y, 0);
img = dtss->image; img = dtss->image;
if (img & 0x8000) img |= ormod; if (img & PALETTE_MODIFIER_COLOR) img |= ormod;
DrawSprite(img, x + pt.x, y + pt.y); DrawSprite(img, x + pt.x, y + pt.y);
} }
return; return;
@ -400,14 +400,14 @@ void DrawWaypointSprite(int x, int y, int stat_id, int railtype)
img = cust->ground_sprite; img = cust->ground_sprite;
img += railtype * ((img < _custom_sprites_base) ? TRACKTYPE_SPRITE_PITCH : 1); img += railtype * ((img < _custom_sprites_base) ? TRACKTYPE_SPRITE_PITCH : 1);
if (img & 0x8000) img = (img & 0x7FFF); if (img & PALETTE_MODIFIER_COLOR) img = (img & SPRITE_MASK);
DrawSprite(img, x, y); DrawSprite(img, x, y);
foreach_draw_tile_seq(seq, cust->seq) { foreach_draw_tile_seq(seq, cust->seq) {
Point pt = RemapCoords(seq->delta_x, seq->delta_y, seq->delta_z); Point pt = RemapCoords(seq->delta_x, seq->delta_y, seq->delta_z);
uint32 image = seq->image + relocation; uint32 image = seq->image + relocation;
DrawSprite((image&0x3FFF) | ormod, x + pt.x, y + pt.y); DrawSprite((image & SPRITE_MASK) | ormod, x + pt.x, y + pt.y);
} }
} }

View File

@ -606,7 +606,7 @@ void InputLoop(void);
void UpdateWindows(void); void UpdateWindows(void);
void InvalidateWidget(Window *w, byte widget_index); void InvalidateWidget(Window *w, byte widget_index);
void GuiShowTooltips(uint16 string_id); void GuiShowTooltips(StringID string_id);
void UnclickWindowButtons(Window *w); void UnclickWindowButtons(Window *w);
void UnclickSomeWindowButtons(Window *w, uint32 mask); void UnclickSomeWindowButtons(Window *w, uint32 mask);