(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.
pull/155/head
celestar 19 years ago
parent 647cbd6bdd
commit a3739aecdf

17
gfx.c

@ -9,6 +9,7 @@
#include "string.h"
#include "gfx.h"
#include "table/palettes.h"
#include "table/sprites.h"
#include "hal.h"
#include "variables.h"
@ -661,14 +662,14 @@ int DoDrawStringTruncated(const char *str, int x, int y, uint16 color, uint maxw
void DrawSprite(uint32 img, int x, int y)
{
if (img & 0x8000) {
_color_remap_ptr = GetNonSprite(img >> 16) + 1;
GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 1);
} else if (img & 0x4000) {
_color_remap_ptr = GetNonSprite(img >> 16) + 1;
GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 2);
if (img & PALETTE_MODIFIER_COLOR) {
_color_remap_ptr = GetNonSprite(GB(img, PALETTE_SPRITE_START, PALETTE_SPRITE_WIDTH)) + 1;
GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 1);
} else if (img & PALETTE_MODIFIER_TRANSPARENT) {
_color_remap_ptr = GetNonSprite(GB(img, PALETTE_SPRITE_START, PALETTE_SPRITE_WIDTH)) + 1;
GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 2);
} else {
GfxMainBlitter(GetSprite(img & 0x3FFF), x, y, 0);
GfxMainBlitter(GetSprite(img & SPRITE_MASK), x, y, 0);
}
}
@ -1923,7 +1924,7 @@ static void SetCursorSprite(CursorID cursor)
if (cv->sprite == cursor) return;
p = GetSprite(cursor & 0x3FFF);
p = GetSprite(cursor & SPRITE_MASK);
cv->sprite = cursor;
cv->size.y = p->height;
cv->size.x = p->width;

@ -104,11 +104,6 @@ VARDEF int _pal_last_dirty;
VARDEF bool _use_dos_palette;
/* spritecache.c */
//enum { NUM_SPRITES = 0x1320 };
//enum { NUM_SPRITES = 0x1500 };
enum { NUM_SPRITES = 0x3500 }; // 1500 + space for custom GRF sets
typedef struct Colour {
byte r;
byte g;

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

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

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

@ -291,7 +291,7 @@ static const uint32 _tree_sprites[] = {
0x655,0x663,0x678,0x62B,0x647,0x639,0x64E,0x632,0x67F,0x68D,0x69B,0x6A9,
0x6AF,0x6D2,0x6D9,0x6C4,0x6CB,0x6B6,0x6BD,0x6E0,
0x72E,0x734,0x74A,0x74F,0x76B,0x78F,0x788,0x77B,0x75F,0x774,0x720,0x797,
0x79E,0x30D87A5,0x30B87AC,0x7B3,0x7BA,0x30B87C1,0x30887C8,0x30A87CF,0x30B87D6
0x79E,0x7A5 | PALETTE_TO_GREEN,0x7AC | PALETTE_TO_RED,0x7B3,0x7BA,0x7C1 | PALETTE_TO_RED,0x7C8 | PALETTE_TO_PALE_GREEN,0x7CF | PALETTE_TO_YELLOW,0x7D6 | PALETTE_TO_RED
};
static void BuildTreesWndProc(Window *w, WindowEvent *e)

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

@ -545,7 +545,7 @@ static void PlayerCompanyWndProc(Window *w, WindowEvent *e)
DrawString(110,48, STR_7006_COLOR_SCHEME, 0);
// Draw company-colour bus (0xC19)
DrawSprite(PLAYER_SPRITE_COLOR(p->index) + 0x8C19, 215, 49);
DrawSprite(PLAYER_SPRITE_COLOR(p->index) + (0xC19 | PALETTE_MODIFIER_COLOR), 215, 49);
DrawPlayerFace(p->face, p->player_color, 2, 16);

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

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

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

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

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

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

@ -2139,7 +2139,7 @@ static void DrawTile_Station(TileInfo *ti)
{
uint owner = GetTileOwner(ti->tile);
image_or_modificator = 0x315 << 16; /* NOTE: possible bug in ttd here? */
image_or_modificator = PALETTE_TO_GREY; /* NOTE: possible bug in ttd here? */
if (owner < MAX_PLAYERS)
image_or_modificator = PLAYER_SPRITE_COLOR(owner);
}
@ -2166,11 +2166,11 @@ static void DrawTile_Station(TileInfo *ti)
if (t == NULL) t = &_station_display_datas[ti->map5];
image = t->ground_sprite;
if (image & 0x8000)
if (image & PALETTE_MODIFIER_COLOR)
image |= image_or_modificator;
// For custom sprites, there's no railtype-based pitching.
type_offset = railtype * ((image & 0x3FFF) < _custom_sprites_base ? TRACKTYPE_SPRITE_PITCH : 1);
type_offset = railtype * ((image & SPRITE_MASK) < _custom_sprites_base ? TRACKTYPE_SPRITE_PITCH : 1);
// station_land array has been increased from 82 elements to 114
// but this is something else. If AI builds station with 114 it looks all weird
@ -2193,7 +2193,7 @@ static void DrawTile_Station(TileInfo *ti)
if (_display_opt & DO_TRANS_BUILDINGS) {
MAKE_TRANSPARENT(image);
} else {
if (image&0x8000) image |= image_or_modificator;
if (image & PALETTE_MODIFIER_COLOR) image |= image_or_modificator;
}
if ((byte)dtss->delta_z != 0x80) {
@ -2218,7 +2218,7 @@ void StationPickerDrawSprite(int x, int y, int railtype, int image)
t = &_station_display_datas[image];
img = t->ground_sprite;
if (img & 0x8000)
if (img & PALETTE_MODIFIER_COLOR)
img |= ormod;
DrawSprite(img + railtype, x, y);

@ -1,8 +1,28 @@
/* $Id$ */
#define ANIM_CURSOR_LINE(a,b) a,b,
/** @file animcursors.h
* This file defines all the the animated cursors.
* Animated cursors consist of the number of sprites that are
* displayed in a round-robin manner. Each sprite also has a time
* associated that indicates how many ticks the corresponding sprite
* is to be displayed. Currently all this information is recorded in a single
* array. @todo This should be converted into an array of structs on the long run
* All these arrays end up in an array of pointers called _animcursors.
*/
/** Creates two array entries that define one
* status of the cursor.
* @param Sprite The Sprite to be displayed
* @param display_time The Number of ticks to display the sprite
*/
#define ANIM_CURSOR_LINE(Sprite, display_time) Sprite, display_time,
/** This indicates the termination of the cursor list
*/
#define ANIM_CURSOR_END() 0xFFFF
/** Animated cursor elements for demolishion
*/
static const CursorID _demolish_animcursor[] = {
ANIM_CURSOR_LINE(0x2C0, 29)
ANIM_CURSOR_LINE(0x2C1, 29)
@ -11,6 +31,8 @@ static const CursorID _demolish_animcursor[] = {
ANIM_CURSOR_END()
};
/** Animated cursor elements for lower land
*/
static const CursorID _lower_land_animcursor[] = {
ANIM_CURSOR_LINE(0x2BB, 29)
ANIM_CURSOR_LINE(0x2BC, 29)
@ -18,6 +40,8 @@ static const CursorID _lower_land_animcursor[] = {
ANIM_CURSOR_END()
};
/** Animated cursor elements for raise land
*/
static const CursorID _raise_land_animcursor[] = {
ANIM_CURSOR_LINE(0x2B8, 29)
ANIM_CURSOR_LINE(0x2B9, 29)
@ -25,6 +49,8 @@ static const CursorID _raise_land_animcursor[] = {
ANIM_CURSOR_END()
};
/** Animated cursor elements for the goto icon
*/
static const CursorID _pick_station_animcursor[] = {
ANIM_CURSOR_LINE(0x2CC, 29)
ANIM_CURSOR_LINE(0x2CD, 29)
@ -32,12 +58,18 @@ static const CursorID _pick_station_animcursor[] = {
ANIM_CURSOR_END()
};
/** Animated cursor elements for the build signal icon
*/
static const CursorID _build_signals_animcursor[] = {
ANIM_CURSOR_LINE(0x50C, 148)
ANIM_CURSOR_LINE(0x50D, 148)
ANIM_CURSOR_LINE(0x50C, 29)
ANIM_CURSOR_LINE(0x50D, 29)
ANIM_CURSOR_END()
};
/** This is an array of pointers to all the animated cursor
* definitions we have above. This is the only thing that is
* accessed directly from other files
*/
static const CursorID * const _animcursors[] = {
_demolish_animcursor,
_lower_land_animcursor,

@ -23,9 +23,9 @@ static const PalSpriteID _bridge_sprite_table_2_0[] = {
static const PalSpriteID _bridge_sprite_table_2_1[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31D898E, 0x31D8990, 0x31D898D, 0x31D898F, 0x31D8992, 0x31D8994, 0x31D8991, 0x31D8993,
0x31D90E7, 0x31D90E9, 0x31D90E6, 0x31D90E8, 0x31D90EB, 0x31D90ED, 0x31D90EA, 0x31D90EC,
0x31D910F, 0x31D9111, 0x31D910E, 0x31D9110, 0x31D9113, 0x31D9115, 0x31D9112, 0x31D9114,
0x98E | PALETTE_31D, 0x990 | PALETTE_31D, 0x98D | PALETTE_31D, 0x98F | PALETTE_31D, 0x992 | PALETTE_31D, 0x994 | PALETTE_31D, 0x991 | PALETTE_31D, 0x993 | PALETTE_31D,
0x10E7 | PALETTE_31D, 0x10E9 | PALETTE_31D, 0x10E6 | PALETTE_31D, 0x10E8 | PALETTE_31D, 0x10EB | PALETTE_31D, 0x10ED | PALETTE_31D, 0x10EA | PALETTE_31D, 0x10EC | PALETTE_31D,
0x110F | PALETTE_31D, 0x1111 | PALETTE_31D, 0x110E | PALETTE_31D, 0x1110 | PALETTE_31D, 0x1113 | PALETTE_31D, 0x1115 | PALETTE_31D, 0x1112 | PALETTE_31D, 0x1114 | PALETTE_31D,
};
static const PalSpriteID _bridge_sprite_table_2_poles[] = {
@ -116,74 +116,74 @@ static const PalSpriteID _bridge_sprite_table_4_poles[] = {
};
static const PalSpriteID _bridge_sprite_table_5_0[] = {
0x32189A9, 0x321899F, 0x32189B1, 0x0, 0x32189A5, 0x3218997, 0x32189AD, 0x0,
0x321899D, 0x321899F, 0x32189B1, 0x0, 0x3218995, 0x3218997, 0x32189AD, 0x0,
0x32190F2, 0x321899F, 0x32189B1, 0x0, 0x32190EE, 0x3218997, 0x32189AD, 0x0,
0x321911A, 0x321899F, 0x32189B1, 0x0, 0x3219116, 0x3218997, 0x32189AD, 0x0,
0x9A9 | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A5 | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x99D | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x995 | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x10F2 | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10EE | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x111A | PALETTE_TO_STRUCT_YELLOW, 0x99F | PALETTE_TO_STRUCT_YELLOW, 0x9B1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1116 | PALETTE_TO_STRUCT_YELLOW, 0x997 | PALETTE_TO_STRUCT_YELLOW, 0x9AD | PALETTE_TO_STRUCT_YELLOW, 0x0,
SPR_OPENTTD_BASE + 35,
};
static const PalSpriteID _bridge_sprite_table_5_1[] = {
0x32189AA, 0x32189A0, 0x32189B2, 0x0, 0x32189A6, 0x3218998, 0x32189AE, 0x0,
0x321899E, 0x32189A0, 0x32189B2, 0x0, 0x3218996, 0x3218998, 0x32189AE, 0x0,
0x32190F3, 0x32189A0, 0x32189B2, 0x0, 0x32190EF, 0x3218998, 0x32189AE, 0x0,
0x321911B, 0x32189A0, 0x32189B2, 0x0, 0x3219117, 0x3218998, 0x32189AE, 0x0,
0x9AA | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A6 | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x99E | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x996 | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x10F3 | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10EF | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x111B | PALETTE_TO_STRUCT_YELLOW, 0x9A0 | PALETTE_TO_STRUCT_YELLOW, 0x9B2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1117 | PALETTE_TO_STRUCT_YELLOW, 0x998 | PALETTE_TO_STRUCT_YELLOW, 0x9AE | PALETTE_TO_STRUCT_YELLOW, 0x0,
SPR_OPENTTD_BASE + 36,
};
static const PalSpriteID _bridge_sprite_table_5_2[] = {
0x32189AC, 0x32189A4, 0x32189B4, 0x0, 0x32189A8, 0x321899C, 0x32189B0, 0x0,
0x32189A2, 0x32189A4, 0x32189B4, 0x0, 0x321899A, 0x321899C, 0x32189B0, 0x0,
0x32190F5, 0x32189A4, 0x32189B4, 0x0, 0x32190F1, 0x321899C, 0x32189B0, 0x0,
0x321911D, 0x32189A4, 0x32189B4, 0x0, 0x3219119, 0x321899C, 0x32189B0, 0x0,
0x9AC | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A8 | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x9A2 | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x99A | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x10F5 | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10F1 | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x111D | PALETTE_TO_STRUCT_YELLOW, 0x9A4 | PALETTE_TO_STRUCT_YELLOW, 0x9B4 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1119 | PALETTE_TO_STRUCT_YELLOW, 0x99C | PALETTE_TO_STRUCT_YELLOW, 0x9B0 | PALETTE_TO_STRUCT_YELLOW, 0x0,
SPR_OPENTTD_BASE + 36,
};
static const PalSpriteID _bridge_sprite_table_5_3[] = {
0x32189AB, 0x32189A3, 0x32189B3, 0x0, 0x32189A7, 0x321899B, 0x32189AF, 0x0,
0x32189A1, 0x32189A3, 0x32189B3, 0x0, 0x3218999, 0x321899B, 0x32189AF, 0x0,
0x32190F4, 0x32189A3, 0x32189B3, 0x0, 0x32190F0, 0x321899B, 0x32189AF, 0x0,
0x321911C, 0x32189A3, 0x32189B3, 0x0, 0x3219118, 0x321899B, 0x32189AF, 0x0,
0x9AB | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9A7 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x9A1 | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x999 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x10F4 | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10F0 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x111C | PALETTE_TO_STRUCT_YELLOW, 0x9A3 | PALETTE_TO_STRUCT_YELLOW, 0x9B3 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x1118 | PALETTE_TO_STRUCT_YELLOW, 0x99B | PALETTE_TO_STRUCT_YELLOW, 0x9AF | PALETTE_TO_STRUCT_YELLOW, 0x0,
SPR_OPENTTD_BASE + 35,
};
static const PalSpriteID _bridge_sprite_table_5_4[] = {
0x32189B6, 0x32189BA, 0x32189BC, 0x0, 0x32189B5, 0x32189B9, 0x32189BB, 0x0,
0x32189B8, 0x32189BA, 0x32189BC, 0x0, 0x32189B7, 0x32189B9, 0x32189BB, 0x0,
0x32190F7, 0x32189BA, 0x32189BC, 0x0, 0x32190F6, 0x32189B9, 0x32189BB, 0x0,
0x321911F, 0x32189BA, 0x32189BC, 0x0, 0x321911E, 0x32189B9, 0x32189BB, 0x0,
0x9B6 | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9B5 | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x9B8 | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x9B7 | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x10F7 | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x10F6 | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0,
0x111F | PALETTE_TO_STRUCT_YELLOW, 0x9BA | PALETTE_TO_STRUCT_YELLOW, 0x9BC | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x111E | PALETTE_TO_STRUCT_YELLOW, 0x9B9 | PALETTE_TO_STRUCT_YELLOW, 0x9BB | PALETTE_TO_STRUCT_YELLOW, 0x0,
SPR_OPENTTD_BASE+38, 0x0, 0x0, 0x0, SPR_OPENTTD_BASE + 37,
};
static const PalSpriteID _bridge_sprite_table_5_5[] = {
0x32189BD, 0x32189C1, 0x0, 0x0, 0x32189BE, 0x32189C2, 0x0, 0x0,
0x32189BF, 0x32189C1, 0x0, 0x0, 0x32189C0, 0x32189C2, 0x0, 0x0,
0x32190F8, 0x32189C1, 0x0, 0x0, 0x32190F9, 0x32189C2, 0x0, 0x0,
0x3219120, 0x32189C1, 0x0, 0x0, 0x3219121, 0x32189C2, 0x0, 0x0,
0x9BD | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x9BE | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
0x9BF | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x9C0 | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
0x10F8 | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x10F9 | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
0x1120 | PALETTE_TO_STRUCT_YELLOW, 0x9C1 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0x1121 | PALETTE_TO_STRUCT_YELLOW, 0x9C2 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
0x0, SPR_OPENTTD_BASE + 35,
};
static const PalSpriteID _bridge_sprite_table_5_6[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x321898E, 0x3218990, 0x321898D, 0x321898F, 0x3218992, 0x3218994, 0x3218991, 0x3218993,
0x32190E7, 0x32190E9, 0x32190E6, 0x32190E8, 0x32190EB, 0x32190ED, 0x32190EA, 0x32190EC,
0x321910F, 0x3219111, 0x321910E, 0x3219110, 0x3219113, 0x3219115, 0x3219112, 0x3219114,
0x98E | PALETTE_TO_STRUCT_YELLOW, 0x990 | PALETTE_TO_STRUCT_YELLOW, 0x98D | PALETTE_TO_STRUCT_YELLOW, 0x98F | PALETTE_TO_STRUCT_YELLOW, 0x992 | PALETTE_TO_STRUCT_YELLOW, 0x994 | PALETTE_TO_STRUCT_YELLOW, 0x991 | PALETTE_TO_STRUCT_YELLOW, 0x993 | PALETTE_TO_STRUCT_YELLOW,
0x10E7 | PALETTE_TO_STRUCT_YELLOW, 0x10E9 | PALETTE_TO_STRUCT_YELLOW, 0x10E6 | PALETTE_TO_STRUCT_YELLOW, 0x10E8 | PALETTE_TO_STRUCT_YELLOW, 0x10EB | PALETTE_TO_STRUCT_YELLOW, 0x10ED | PALETTE_TO_STRUCT_YELLOW, 0x10EA | PALETTE_TO_STRUCT_YELLOW, 0x10EC | PALETTE_TO_STRUCT_YELLOW,
0x110F | PALETTE_TO_STRUCT_YELLOW, 0x1111 | PALETTE_TO_STRUCT_YELLOW, 0x110E | PALETTE_TO_STRUCT_YELLOW, 0x1110 | PALETTE_TO_STRUCT_YELLOW, 0x1113 | PALETTE_TO_STRUCT_YELLOW, 0x1115 | PALETTE_TO_STRUCT_YELLOW, 0x1112 | PALETTE_TO_STRUCT_YELLOW, 0x1114 | PALETTE_TO_STRUCT_YELLOW,
0x0, SPR_OPENTTD_BASE + 35,
};
static const PalSpriteID _bridge_sprite_table_5_poles[] = {
SPR_OPENTTD_BASE + 36 + 0x3218000,
SPR_OPENTTD_BASE + 37 + 0x3218000,
SPR_OPENTTD_BASE + 37 + 0x3218000,
SPR_OPENTTD_BASE + 36 + 0x3218000,
SPR_OPENTTD_BASE + 38 + 0x3218000,
SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 38 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0,
SPR_OPENTTD_BASE + 33 + 0x3218000,
SPR_OPENTTD_BASE + 34 + 0x3218000,
SPR_OPENTTD_BASE + 34 + 0x3218000,
SPR_OPENTTD_BASE + 33 + 0x3218000,
SPR_OPENTTD_BASE + 35 + 0x3218000,
SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 35 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0,
0x0,
@ -191,68 +191,68 @@ static const PalSpriteID _bridge_sprite_table_5_poles[] = {
};
static const PalSpriteID _bridge_sprite_table_3_0[] = {
0x32089A9, 0x320899F, 0x32089B1, 0x0, 0x32089A5, 0x3208997, 0x32089AD, 0x0,
0x320899D, 0x320899F, 0x32089B1, 0x0, 0x3208995, 0x3208997, 0x32089AD, 0x0,
0x32090F2, 0x320899F, 0x32089B1, 0x0, 0x32090EE, 0x3208997, 0x32089AD, 0x0,
0x320911A, 0x320899F, 0x32089B1, 0x0, 0x3209116, 0x3208997, 0x32089AD, 0x0,
0x9A9 | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A5 | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x99D | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x995 | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x10F2 | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10EE | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x111A | PALETTE_TO_STRUCT_CONCRETE, 0x99F | PALETTE_TO_STRUCT_CONCRETE, 0x9B1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1116 | PALETTE_TO_STRUCT_CONCRETE, 0x997 | PALETTE_TO_STRUCT_CONCRETE, 0x9AD | PALETTE_TO_STRUCT_CONCRETE, 0x0,
};
static const PalSpriteID _bridge_sprite_table_3_1[] = {
0x32089AA, 0x32089A0, 0x32089B2, 0x0, 0x32089A6, 0x3208998, 0x32089AE, 0x0,
0x320899E, 0x32089A0, 0x32089B2, 0x0, 0x3208996, 0x3208998, 0x32089AE, 0x0,
0x32090F3, 0x32089A0, 0x32089B2, 0x0, 0x32090EF, 0x3208998, 0x32089AE, 0x0,
0x320911B, 0x32089A0, 0x32089B2, 0x0, 0x3209117, 0x3208998, 0x32089AE, 0x0,
0x9AA | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A6 | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x99E | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x996 | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x10F3 | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10EF | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x111B | PALETTE_TO_STRUCT_CONCRETE, 0x9A0 | PALETTE_TO_STRUCT_CONCRETE, 0x9B2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1117 | PALETTE_TO_STRUCT_CONCRETE, 0x998 | PALETTE_TO_STRUCT_CONCRETE, 0x9AE | PALETTE_TO_STRUCT_CONCRETE, 0x0,
};
static const PalSpriteID _bridge_sprite_table_3_2[] = {
0x32089AC, 0x32089A4, 0x32089B4, 0x0, 0x32089A8, 0x320899C, 0x32089B0, 0x0,
0x32089A2, 0x32089A4, 0x32089B4, 0x0, 0x320899A, 0x320899C, 0x32089B0, 0x0,
0x32090F5, 0x32089A4, 0x32089B4, 0x0, 0x32090F1, 0x320899C, 0x32089B0, 0x0,
0x320911D, 0x32089A4, 0x32089B4, 0x0, 0x3209119, 0x320899C, 0x32089B0, 0x0,
0x9AC | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A8 | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x9A2 | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x99A | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x10F5 | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10F1 | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x111D | PALETTE_TO_STRUCT_CONCRETE, 0x9A4 | PALETTE_TO_STRUCT_CONCRETE, 0x9B4 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1119 | PALETTE_TO_STRUCT_CONCRETE, 0x99C | PALETTE_TO_STRUCT_CONCRETE, 0x9B0 | PALETTE_TO_STRUCT_CONCRETE, 0x0,
};
static const PalSpriteID _bridge_sprite_table_3_3[] = {
0x32089AB, 0x32089A3, 0x32089B3, 0x0, 0x32089A7, 0x320899B, 0x32089AF, 0x0,
0x32089A1, 0x32089A3, 0x32089B3, 0x0, 0x3208999, 0x320899B, 0x32089AF, 0x0,
0x32090F4, 0x32089A3, 0x32089B3, 0x0, 0x32090F0, 0x320899B, 0x32089AF, 0x0,
0x320911C, 0x32089A3, 0x32089B3, 0x0, 0x3209118, 0x320899B, 0x32089AF, 0x0,
0x9AB | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9A7 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x9A1 | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x999 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x10F4 | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10F0 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x111C | PALETTE_TO_STRUCT_CONCRETE, 0x9A3 | PALETTE_TO_STRUCT_CONCRETE, 0x9B3 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x1118 | PALETTE_TO_STRUCT_CONCRETE, 0x99B | PALETTE_TO_STRUCT_CONCRETE, 0x9AF | PALETTE_TO_STRUCT_CONCRETE, 0x0,
};
static const PalSpriteID _bridge_sprite_table_3_4[] = {
0x32089B6, 0x32089BA, 0x32089BC, 0x0, 0x32089B5, 0x32089B9, 0x32089BB, 0x0,
0x32089B8, 0x32089BA, 0x32089BC, 0x0, 0x32089B7, 0x32089B9, 0x32089BB, 0x0,
0x32090F7, 0x32089BA, 0x32089BC, 0x0, 0x32090F6, 0x32089B9, 0x32089BB, 0x0,
0x320911F, 0x32089BA, 0x32089BC, 0x0, 0x320911E, 0x32089B9, 0x32089BB, 0x0,
0x9B6 | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9B5 | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x9B8 | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x9B7 | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x10F7 | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x10F6 | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0,
0x111F | PALETTE_TO_STRUCT_CONCRETE, 0x9BA | PALETTE_TO_STRUCT_CONCRETE, 0x9BC | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x111E | PALETTE_TO_STRUCT_CONCRETE, 0x9B9 | PALETTE_TO_STRUCT_CONCRETE, 0x9BB | PALETTE_TO_STRUCT_CONCRETE, 0x0,
};
static const PalSpriteID _bridge_sprite_table_3_5[] = {
0x32089BD, 0x32089C1, 0x0, 0x0, 0x32089BE, 0x32089C2, 0x0, 0x0,
0x32089BF, 0x32089C1, 0x0, 0x0, 0x32089C0, 0x32089C2, 0x0, 0x0,
0x32090F8, 0x32089C1, 0x0, 0x0, 0x32090F9, 0x32089C2, 0x0, 0x0,
0x3209120, 0x32089C1, 0x0, 0x0, 0x3209121, 0x32089C2, 0x0, 0x0,
0x9BD | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x9BE | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0,
0x9BF | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x9C0 | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0,
0x10F8 | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x10F9 | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0,
0x1120 | PALETTE_TO_STRUCT_CONCRETE, 0x9C1 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0, 0x1121 | PALETTE_TO_STRUCT_CONCRETE, 0x9C2 | PALETTE_TO_STRUCT_CONCRETE, 0x0, 0x0,
};
static const PalSpriteID _bridge_sprite_table_3_6[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x320898E, 0x3208990, 0x320898D, 0x320898F, 0x3208992, 0x3208994, 0x3208991, 0x3208993,
0x32090E7, 0x32090E9, 0x32090E6, 0x32090E8, 0x32090EB, 0x32090ED, 0x32090EA, 0x32090EC,
0x320910F, 0x3209111, 0x320910E, 0x3209110, 0x3209113, 0x3209115, 0x3209112, 0x3209114,
0x98E | PALETTE_TO_STRUCT_CONCRETE, 0x990 | PALETTE_TO_STRUCT_CONCRETE, 0x98D | PALETTE_TO_STRUCT_CONCRETE, 0x98F | PALETTE_TO_STRUCT_CONCRETE, 0x992 | PALETTE_TO_STRUCT_CONCRETE, 0x994 | PALETTE_TO_STRUCT_CONCRETE, 0x991 | PALETTE_TO_STRUCT_CONCRETE, 0x993 | PALETTE_TO_STRUCT_CONCRETE,
0x10E7 | PALETTE_TO_STRUCT_CONCRETE, 0x10E9 | PALETTE_TO_STRUCT_CONCRETE, 0x10E6 | PALETTE_TO_STRUCT_CONCRETE, 0x10E8 | PALETTE_TO_STRUCT_CONCRETE, 0x10EB | PALETTE_TO_STRUCT_CONCRETE, 0x10ED | PALETTE_TO_STRUCT_CONCRETE, 0x10EA | PALETTE_TO_STRUCT_CONCRETE, 0x10EC | PALETTE_TO_STRUCT_CONCRETE,
0x110F | PALETTE_TO_STRUCT_CONCRETE, 0x1111 | PALETTE_TO_STRUCT_CONCRETE, 0x110E | PALETTE_TO_STRUCT_CONCRETE, 0x1110 | PALETTE_TO_STRUCT_CONCRETE, 0x1113 | PALETTE_TO_STRUCT_CONCRETE, 0x1115 | PALETTE_TO_STRUCT_CONCRETE, 0x1112 | PALETTE_TO_STRUCT_CONCRETE, 0x1114 | PALETTE_TO_STRUCT_CONCRETE,
0x0, SPR_OPENTTD_BASE + 35,
};
static const PalSpriteID _bridge_sprite_table_3_poles[] = {
SPR_OPENTTD_BASE + 36 + 0x3208000,
SPR_OPENTTD_BASE + 37 + 0x3208000,
SPR_OPENTTD_BASE + 37 + 0x3208000,
SPR_OPENTTD_BASE + 36 + 0x3208000,
SPR_OPENTTD_BASE + 38 + 0x3208000,
SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 37 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 36 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 38 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
0x0,
SPR_OPENTTD_BASE + 33 + 0x3208000,
SPR_OPENTTD_BASE + 34 + 0x3208000,
SPR_OPENTTD_BASE + 34 + 0x3208000,
SPR_OPENTTD_BASE + 33 + 0x3208000,
SPR_OPENTTD_BASE + 35 + 0x3208000,
SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 34 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 33 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
SPR_OPENTTD_BASE + 35 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_CONCRETE),
0x0,
0x0,
@ -261,9 +261,9 @@ static const PalSpriteID _bridge_sprite_table_3_poles[] = {
static const PalSpriteID _bridge_sprite_table_1_1[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31E898E, 0x31E8990, 0x31E898D, 0x31E898F, 0x31E8992, 0x31E8994, 0x31E8991, 0x31E8993,
0x31E90E7, 0x31E90E9, 0x31E90E6, 0x31E90E8, 0x31E90EB, 0x31E90ED, 0x31E90EA, 0x31E90EC,
0x31E910F, 0x31E9111, 0x31E910E, 0x31E9110, 0x31E9113, 0x31E9115, 0x31E9112, 0x31E9114,
0x98E | PALETTE_TO_STRUCT_RED, 0x990 | PALETTE_TO_STRUCT_RED, 0x98D | PALETTE_TO_STRUCT_RED, 0x98F | PALETTE_TO_STRUCT_RED, 0x992 | PALETTE_TO_STRUCT_RED, 0x994 | PALETTE_TO_STRUCT_RED, 0x991 | PALETTE_TO_STRUCT_RED, 0x993 | PALETTE_TO_STRUCT_RED,
0x10E7 | PALETTE_TO_STRUCT_RED, 0x10E9 | PALETTE_TO_STRUCT_RED, 0x10E6 | PALETTE_TO_STRUCT_RED, 0x10E8 | PALETTE_TO_STRUCT_RED, 0x10EB | PALETTE_TO_STRUCT_RED, 0x10ED | PALETTE_TO_STRUCT_RED, 0x10EA | PALETTE_TO_STRUCT_RED, 0x10EC | PALETTE_TO_STRUCT_RED,
0x110F | PALETTE_TO_STRUCT_RED, 0x1111 | PALETTE_TO_STRUCT_RED, 0x110E | PALETTE_TO_STRUCT_RED, 0x1110 | PALETTE_TO_STRUCT_RED, 0x1113 | PALETTE_TO_STRUCT_RED, 0x1115 | PALETTE_TO_STRUCT_RED, 0x1112 | PALETTE_TO_STRUCT_RED, 0x1114 | PALETTE_TO_STRUCT_RED,
};
static const PalSpriteID _bridge_sprite_table_1_poles[] = {
@ -335,31 +335,31 @@ static const PalSpriteID _bridge_sprite_table_6_poles[] = {
static const PalSpriteID _bridge_sprite_table_7_0[] = {
0x31C89CD, 0x31C89D9, 0x0, 0x0, 0x31C89CE, 0x31C89DA, 0x0, 0x0,
0x31C89D3, 0x31C89D9, 0x0, 0x0, 0x31C89D4, 0x31C89DA, 0x0, 0x0,
0x31C90FC, 0x31C89D9, 0x0, 0x0, 0x31C90FD, 0x31C89DA, 0x0, 0x0,
0x31C9124, 0x31C89D9, 0x0, 0x0, 0x31C9125, 0x31C89DA, 0x0, 0x0,
0x9CD | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x9CE | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0,
0x9D3 | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x9D4 | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0,
0x10FC | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x10FD | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0,
0x1124 | PALETTE_TO_STRUCT_BROWN, 0x9D9 | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0, 0x1125 | PALETTE_TO_STRUCT_BROWN, 0x9DA | PALETTE_TO_STRUCT_BROWN, 0x0, 0x0,
};
static const PalSpriteID _bridge_sprite_table_7_1[] = {
0x31C89CB, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D0, 0x31C89DC, 0x31C89E0, 0x0,
0x31C89D1, 0x31C89D7, 0x31C89DD, 0x0, 0x31C89D6, 0x31C89DC, 0x31C89E0, 0x0,
0x31C90FA, 0x31C89D7, 0x31C89DD, 0x0, 0x31C90FF, 0x31C89DC, 0x31C89E0, 0x0,
0x31C9122, 0x31C89D7, 0x31C89DD, 0x0, 0x31C9127, 0x31C89DC, 0x31C89E0, 0x0,
0x9CB | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9D0 | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0,
0x9D1 | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9D6 | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0,
0x10FA | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x10FF | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0,
0x1122 | PALETTE_TO_STRUCT_BROWN, 0x9D7 | PALETTE_TO_STRUCT_BROWN, 0x9DD | PALETTE_TO_STRUCT_BROWN, 0x0, 0x1127 | PALETTE_TO_STRUCT_BROWN, 0x9DC | PALETTE_TO_STRUCT_BROWN, 0x9E0 | PALETTE_TO_STRUCT_BROWN, 0x0,
};
static const PalSpriteID _bridge_sprite_table_7_2[] = {
0x31C89CC, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89CF, 0x31C89DB, 0x31C89DF, 0x0,
0x31C89D2, 0x31C89D8, 0x31C89DE, 0x0, 0x31C89D5, 0x31C89DB, 0x31C89DF, 0x0,
0x31C90FB, 0x31C89D8, 0x31C89DE, 0x0, 0x31C90FE, 0x31C89DB, 0x31C89DF, 0x0,
0x31C9123, 0x31C89D8, 0x31C89DE, 0x0, 0x31C9126, 0x31C89DB, 0x31C89DF, 0x0,
0x9CC | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9CF | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0,
0x9D2 | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x9D5 | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0,
0x10FB | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x10FE | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0,
0x1123 | PALETTE_TO_STRUCT_BROWN, 0x9D8 | PALETTE_TO_STRUCT_BROWN, 0x9DE | PALETTE_TO_STRUCT_BROWN, 0x0, 0x1126 | PALETTE_TO_STRUCT_BROWN, 0x9DB | PALETTE_TO_STRUCT_BROWN, 0x9DF | PALETTE_TO_STRUCT_BROWN, 0x0,
};
static const PalSpriteID _bridge_sprite_table_7_3[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31C898E, 0x31C8990, 0x31C898D, 0x31C898F, 0x31C8992, 0x31C8994, 0x31C8991, 0x31C8993,
0x31C90E7, 0x31C90E9, 0x31C90E6, 0x31C90E8, 0x31C90EB, 0x31C90ED, 0x31C90EA, 0x31C90EC,
0x31C910F, 0x31C9111, 0x31C910E, 0x31C9110, 0x31C9113, 0x31C9115, 0x31C9112, 0x31C9114,
0x98E | PALETTE_TO_STRUCT_BROWN, 0x990 | PALETTE_TO_STRUCT_BROWN, 0x98D | PALETTE_TO_STRUCT_BROWN, 0x98F | PALETTE_TO_STRUCT_BROWN, 0x992 | PALETTE_TO_STRUCT_BROWN, 0x994 | PALETTE_TO_STRUCT_BROWN, 0x991 | PALETTE_TO_STRUCT_BROWN, 0x993 | PALETTE_TO_STRUCT_BROWN,
0x10E7 | PALETTE_TO_STRUCT_BROWN, 0x10E9 | PALETTE_TO_STRUCT_BROWN, 0x10E6 | PALETTE_TO_STRUCT_BROWN, 0x10E8 | PALETTE_TO_STRUCT_BROWN, 0x10EB | PALETTE_TO_STRUCT_BROWN, 0x10ED | PALETTE_TO_STRUCT_BROWN, 0x10EA | PALETTE_TO_STRUCT_BROWN, 0x10EC | PALETTE_TO_STRUCT_BROWN,
0x110F | PALETTE_TO_STRUCT_BROWN, 0x1111 | PALETTE_TO_STRUCT_BROWN, 0x110E | PALETTE_TO_STRUCT_BROWN, 0x1110 | PALETTE_TO_STRUCT_BROWN, 0x1113 | PALETTE_TO_STRUCT_BROWN, 0x1115 | PALETTE_TO_STRUCT_BROWN, 0x1112 | PALETTE_TO_STRUCT_BROWN, 0x1114 | PALETTE_TO_STRUCT_BROWN,
};
static const PalSpriteID _bridge_sprite_table_7_poles[] = {
@ -382,31 +382,31 @@ static const PalSpriteID _bridge_sprite_table_7_poles[] = {
};
static const PalSpriteID _bridge_sprite_table_8_0[] = {
0x31E89CD, 0x31E89D9, 0x0, 0x0, 0x31E89CE, 0x31E89DA, 0x0, 0x0,
0x31E89D3, 0x31E89D9, 0x0, 0x0, 0x31E89D4, 0x31E89DA, 0x0, 0x0,
0x31E90FC, 0x31E89D9, 0x0, 0x0, 0x31E90FD, 0x31E89DA, 0x0, 0x0,
0x31E9124, 0x31E89D9, 0x0, 0x0, 0x31E9125, 0x31E89DA, 0x0, 0x0,
0x9CD | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x9CE | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0,
0x9D3 | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x9D4 | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0,
0x10FC | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x10FD | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0,
0x1124 | PALETTE_TO_STRUCT_RED, 0x9D9 | PALETTE_TO_STRUCT_RED, 0x0, 0x0, 0x1125 | PALETTE_TO_STRUCT_RED, 0x9DA | PALETTE_TO_STRUCT_RED, 0x0, 0x0,
};
static const PalSpriteID _bridge_sprite_table_8_1[] = {
0x31E89CB, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D0, 0x31E89DC, 0x31E89E0, 0x0,
0x31E89D1, 0x31E89D7, 0x31E89DD, 0x0, 0x31E89D6, 0x31E89DC, 0x31E89E0, 0x0,
0x31E90FA, 0x31E89D7, 0x31E89DD, 0x0, 0x31E90FF, 0x31E89DC, 0x31E89E0, 0x0,
0x31E9122, 0x31E89D7, 0x31E89DD, 0x0, 0x31E9127, 0x31E89DC, 0x31E89E0, 0x0,
0x9CB | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x9D0 | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0,
0x9D1 | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x9D6 | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0,
0x10FA | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x10FF | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0,
0x1122 | PALETTE_TO_STRUCT_RED, 0x9D7 | PALETTE_TO_STRUCT_RED, 0x9DD | PALETTE_TO_STRUCT_RED, 0x0, 0x1127 | PALETTE_TO_STRUCT_RED, 0x9DC | PALETTE_TO_STRUCT_RED, 0x9E0 | PALETTE_TO_STRUCT_RED, 0x0,
};
static const PalSpriteID _bridge_sprite_table_8_2[] = {
0x31E89CC, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89CF, 0x31E89DB, 0x31E89DF, 0x0,
0x31E89D2, 0x31E89D8, 0x31E89DE, 0x0, 0x31E89D5, 0x31E89DB, 0x31E89DF, 0x0,
0x31E90FB, 0x31E89D8, 0x31E89DE, 0x0, 0x31E90FE, 0x31E89DB, 0x31E89DF, 0x0,
0x31E9123, 0x31E89D8, 0x31E89DE, 0x0, 0x31E9126, 0x31E89DB, 0x31E89DF, 0x0,
0x9CC | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x9CF | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0,
0x9D2 | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x9D5 | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0,
0x10FB | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x10FE | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0,
0x1123 | PALETTE_TO_STRUCT_RED, 0x9D8 | PALETTE_TO_STRUCT_RED, 0x9DE | PALETTE_TO_STRUCT_RED, 0x0, 0x1126 | PALETTE_TO_STRUCT_RED, 0x9DB | PALETTE_TO_STRUCT_RED, 0x9DF | PALETTE_TO_STRUCT_RED, 0x0,
};
static const PalSpriteID _bridge_sprite_table_8_3[] = {
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
0x31E898E, 0x31E8990, 0x31E898D, 0x31E898F, 0x31E8992, 0x31E8994, 0x31E8991, 0x31E8993,
0x31E90E7, 0x31E90E9, 0x31E90E6, 0x31E90E8, 0x31E90EB, 0x31E90ED, 0x31E90EA, 0x31E90EC,
0x31E910F, 0x31E9111, 0x31E910E, 0x31E9110, 0x31E9113, 0x31E9115, 0x31E9112, 0x31E9114,
0x98E | PALETTE_TO_STRUCT_RED, 0x990 | PALETTE_TO_STRUCT_RED, 0x98D | PALETTE_TO_STRUCT_RED, 0x98F | PALETTE_TO_STRUCT_RED, 0x992 | PALETTE_TO_STRUCT_RED, 0x994 | PALETTE_TO_STRUCT_RED, 0x991 | PALETTE_TO_STRUCT_RED, 0x993 | PALETTE_TO_STRUCT_RED,
0x10E7 | PALETTE_TO_STRUCT_RED, 0x10E9 | PALETTE_TO_STRUCT_RED, 0x10E6 | PALETTE_TO_STRUCT_RED, 0x10E8 | PALETTE_TO_STRUCT_RED, 0x10EB | PALETTE_TO_STRUCT_RED, 0x10ED | PALETTE_TO_STRUCT_RED, 0x10EA | PALETTE_TO_STRUCT_RED, 0x10EC | PALETTE_TO_STRUCT_RED,
0x110F | PALETTE_TO_STRUCT_RED, 0x1111 | PALETTE_TO_STRUCT_RED, 0x110E | PALETTE_TO_STRUCT_RED, 0x1110 | PALETTE_TO_STRUCT_RED, 0x1113 | PALETTE_TO_STRUCT_RED, 0x1115 | PALETTE_TO_STRUCT_RED, 0x1112 | PALETTE_TO_STRUCT_RED, 0x1114 | PALETTE_TO_STRUCT_RED,
};
static const PalSpriteID _bridge_sprite_table_8_poles[] = {
@ -463,10 +463,10 @@ static const PalSpriteID _bridge_sprite_table_0_poles[] = {
static const PalSpriteID _bridge_sprite_table_1_0[] = {
0x31E89BD, 0x31E89C1, 0x9C9, 0x0, 0x31E89BE, 0x31E89C2, 0x9CA, 0x0,
0x31E89BF, 0x31E89C1, 0x9C9, 0x0, 0x31E89C0, 0x31E89C2, 0x9CA, 0x0,
0x31E90F8, 0x31E89C1, 0x9C9, 0x0, 0x31E90F9, 0x31E89C2, 0x9CA, 0x0,
0x31E9120, 0x31E89C1, 0x9C9, 0x0, 0x31E9121, 0x31E89C2, 0x9CA, 0x0,
0x9BD | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x9BE | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0,
0x9BF | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x9C0 | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0,
0x10F8 | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x10F9 | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0,
0x1120 | PALETTE_TO_STRUCT_RED, 0x9C1 | PALETTE_TO_STRUCT_RED, 0x9C9, 0x0, 0x1121 | PALETTE_TO_STRUCT_RED, 0x9C2 | PALETTE_TO_STRUCT_RED, 0x9CA, 0x0,
};
static const PalSpriteID _bridge_sprite_table_9_0[] = {
@ -517,39 +517,39 @@ static const PalSpriteID _bridge_sprite_table_10_poles[] = {
};
static const PalSpriteID _bridge_sprite_table_11_0[] = {
0x3218A0B, 0x3218A01, 0x0, 0x0, 0x3218A0C, 0x3218A02, 0x0, 0x0,
0x3218A11, 0x3218A01, 0x0, 0x0, 0x3218A12, 0x3218A02, 0x0, 0x0,
0x3218A17, 0x3218A01, 0x0, 0x0, 0x3218A18, 0x3218A02, 0x0, 0x0,
0x3218A1D, 0x3218A01, 0x0, 0x0, 0x3218A1E, 0x3218A02, 0x0, 0x0,
0xA0B | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA0C | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
0xA11 | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA12 | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
0xA17 | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA18 | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
0xA1D | PALETTE_TO_STRUCT_YELLOW, 0xA01 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0, 0xA1E | PALETTE_TO_STRUCT_YELLOW, 0xA02 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0x0,
};
static const PalSpriteID _bridge_sprite_table_11_1[] = {
0x3218A09, 0x32189FF, 0x3218A05, 0x0, 0x3218A0E, 0x3218A04, 0x3218A08, 0x0,
0x3218A0F, 0x32189FF, 0x3218A05, 0x0, 0x3218A14, 0x3218A04, 0x3218A08, 0x0,
0x3218A15, 0x32189FF, 0x3218A05, 0x0, 0x3218A1A, 0x3218A04, 0x3218A08, 0x0,
0x3218A1B, 0x32189FF, 0x3218A05, 0x0, 0x3218A20, 0x3218A04, 0x3218A08, 0x0,
0xA09 | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA0E | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0xA0F | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA14 | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0xA15 | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA1A | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0xA1B | PALETTE_TO_STRUCT_YELLOW, 0x9FF | PALETTE_TO_STRUCT_YELLOW, 0xA05 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA20 | PALETTE_TO_STRUCT_YELLOW, 0xA04 | PALETTE_TO_STRUCT_YELLOW, 0xA08 | PALETTE_TO_STRUCT_YELLOW, 0x0,
};
static const PalSpriteID _bridge_sprite_table_11_2[] = {
0x3218A0A, 0x3218A00, 0x3218A06, 0x0, 0x3218A0D, 0x3218A03, 0x3218A07, 0x0,
0x3218A10, 0x3218A00, 0x3218A06, 0x0, 0x3218A13, 0x3218A03, 0x3218A07, 0x0,
0x3218A16, 0x3218A00, 0x3218A06, 0x0, 0x3218A19, 0x3218A03, 0x3218A07, 0x0,
0x3218A1C, 0x3218A00, 0x3218A06, 0x0, 0x3218A1F, 0x3218A03, 0x3218A07, 0x0,
0xA0A | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA0D | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0xA10 | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA13 | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0xA16 | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA19 | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0,
0xA1C | PALETTE_TO_STRUCT_YELLOW, 0xA00 | PALETTE_TO_STRUCT_YELLOW, 0xA06 | PALETTE_TO_STRUCT_YELLOW, 0x0, 0xA1F | PALETTE_TO_STRUCT_YELLOW, 0xA03 | PALETTE_TO_STRUCT_YELLOW, 0xA07 | PALETTE_TO_STRUCT_YELLOW, 0x0,
};
static const PalSpriteID _bridge_sprite_table_11_poles[] = {
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 38 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 38 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 35 + 2*6 + 0x3218000,
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
SPR_OPENTTD_BASE + 35 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_YELLOW),
0x0,
0x0,
@ -557,39 +557,39 @@ static const PalSpriteID _bridge_sprite_table_11_poles[] = {
};
static const PalSpriteID _bridge_sprite_table_12_0[] = {
0x3238A0B, 0x3238A01, 0x0, 0x0, 0x3238A0C, 0x3238A02, 0x0, 0x0,
0x3238A11, 0x3238A01, 0x0, 0x0, 0x3238A12, 0x3238A02, 0x0, 0x0,
0x3238A17, 0x3238A01, 0x0, 0x0, 0x3238A18, 0x3238A02, 0x0, 0x0,
0x3238A1D, 0x3238A01, 0x0, 0x0, 0x3238A1E, 0x3238A02, 0x0, 0x0,
0xA0B | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA0C | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0,
0xA11 | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA12 | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0,
0xA17 | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA18 | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0,
0xA1D | PALETTE_TO_STRUCT_GREY, 0xA01 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0, 0xA1E | PALETTE_TO_STRUCT_GREY, 0xA02 | PALETTE_TO_STRUCT_GREY, 0x0, 0x0,
};
static const PalSpriteID _bridge_sprite_table_12_1[] = {
0x3238A09, 0x32389FF, 0x3238A05, 0x0, 0x3238A0E, 0x3238A04, 0x3238A08, 0x0,
0x3238A0F, 0x32389FF, 0x3238A05, 0x0, 0x3238A14, 0x3238A04, 0x3238A08, 0x0,
0x3238A15, 0x32389FF, 0x3238A05, 0x0, 0x3238A1A, 0x3238A04, 0x3238A08, 0x0,
0x3238A1B, 0x32389FF, 0x3238A05, 0x0, 0x3238A20, 0x3238A04, 0x3238A08, 0x0,
0xA09 | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA0E | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0,
0xA0F | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA14 | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0,
0xA15 | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA1A | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0,
0xA1B | PALETTE_TO_STRUCT_GREY, 0x9FF | PALETTE_TO_STRUCT_GREY, 0xA05 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA20 | PALETTE_TO_STRUCT_GREY, 0xA04 | PALETTE_TO_STRUCT_GREY, 0xA08 | PALETTE_TO_STRUCT_GREY, 0x0,
};
static const PalSpriteID _bridge_sprite_table_12_2[] = {
0x3238A0A, 0x3238A00, 0x3238A06, 0x0, 0x3238A0D, 0x3238A03, 0x3238A07, 0x0,
0x3238A10, 0x3238A00, 0x3238A06, 0x0, 0x3238A13, 0x3238A03, 0x3238A07, 0x0,
0x3238A16, 0x3238A00, 0x3238A06, 0x0, 0x3238A19, 0x3238A03, 0x3238A07, 0x0,
0x3238A1C, 0x3238A00, 0x3238A06, 0x0, 0x3238A1F, 0x3238A03, 0x3238A07, 0x0,
0xA0A | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA0D | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0,
0xA10 | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA13 | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0,
0xA16 | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA19 | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0,
0xA1C | PALETTE_TO_STRUCT_GREY, 0xA00 | PALETTE_TO_STRUCT_GREY, 0xA06 | PALETTE_TO_STRUCT_GREY, 0x0, 0xA1F | PALETTE_TO_STRUCT_GREY, 0xA03 | PALETTE_TO_STRUCT_GREY, 0xA07 | PALETTE_TO_STRUCT_GREY, 0x0,
};
static const PalSpriteID _bridge_sprite_table_12_poles[] = {
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 36 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 38 + 2*6 + 0x3238000,
0x0,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 33 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 35 + 2*6 + 0x3238000,
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 36 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 38 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
0x0,
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 33 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
SPR_OPENTTD_BASE + 35 + 2*6 + (PALETTE_MODIFIER_COLOR | PALETTE_TO_STRUCT_GREY),
0x0,
0x0,

@ -75,26 +75,26 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0),
M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0),
M( 0x81d, 0x81c, 0, 0, 16, 16, 7, 0),
M( 0xf54, 0x881e, 1, 1, 14, 14, 4, 0),
M( 0xf54, 0x881f, 1, 1, 14, 14, 24, 0),
M( 0xf54, 0x8820, 1, 1, 14, 14, 27, 0),
M( 0x58c, 0x8820, 1, 1, 14, 14, 27, 0),
M( 0xf54, 0x8821, 3, 3, 10, 9, 3, 0),
M( 0xf54, 0x8822, 3, 3, 10, 9, 63, 0),
M( 0xf54, 0x8823, 3, 3, 10, 9, 62, 0),
M( 0x58c, 0x8823, 3, 3, 10, 9, 62, 0),
M( 0xf54, 0x8824, 4, 4, 7, 7, 3, 0),
M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0),
M( 0xf54, 0x8825, 4, 4, 7, 7, 72, 0),
M( 0x58c, 0x8826, 4, 4, 7, 7, 80, 0),
M( 0xf54, 0x8827, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x8828, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x8829, 2, 0, 12, 16, 51, 0),
M( 0x58c, 0x8829, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x882a, 0, 0, 16, 16, 26, 0),
M( 0xf54, 0x882b, 0, 0, 16, 16, 44, 0),
M( 0xf54, 0x882c, 0, 0, 16, 16, 46, 0),
M( 0x58c, 0x882c, 0, 0, 16, 16, 46, 0),
M( 0xf54, 0x81e | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 4, 0),
M( 0xf54, 0x81f | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 24, 0),
M( 0xf54, 0x820 | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 27, 0),
M( 0x58c, 0x820 | PALETTE_MODIFIER_COLOR, 1, 1, 14, 14, 27, 0),
M( 0xf54, 0x821 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 3, 0),
M( 0xf54, 0x822 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 63, 0),
M( 0xf54, 0x823 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 62, 0),
M( 0x58c, 0x823 | PALETTE_MODIFIER_COLOR, 3, 3, 10, 9, 62, 0),
M( 0xf54, 0x824 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 3, 0),
M( 0xf54, 0x825 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 72, 0),
M( 0xf54, 0x825 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 72, 0),
M( 0x58c, 0x826 | PALETTE_MODIFIER_COLOR, 4, 4, 7, 7, 80, 0),
M( 0xf54, 0x827 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x828 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x829 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0x58c, 0x829 | PALETTE_MODIFIER_COLOR, 2, 0, 12, 16, 51, 0),
M( 0xf54, 0x82a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 26, 0),
M( 0xf54, 0x82b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 44, 0),
M( 0xf54, 0x82c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 46, 0),
M( 0x58c, 0x82c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 46, 0),
M( 0xf54, 0x82d, 3, 1, 10, 13, 2, 0),
M( 0xf54, 0x82e, 3, 1, 10, 13, 11, 0),
M( 0xf54, 0x82f, 3, 1, 10, 13, 11, 0),
@ -135,18 +135,18 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x87d, 0x880, 0, 0, 16, 16, 20, 0),
M( 0x87d, 0x87f, 0, 0, 16, 16, 20, 0),
M( 0x87d, 0x87e, 0, 0, 16, 16, 20, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x883c, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x883d, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83a, 0x83c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83b, 0x83d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0),
M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0),
M( 0x83e, 0x883f, 0, 0, 16, 16, 18, 0),
M( 0x83e, 0x83f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83e, 0x83f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x83e, 0x83f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 18, 0),
M( 0x7e6, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x840, 0x841, 0, 0, 16, 16, 18, 0),
M( 0x840, 0x841, 0, 0, 16, 16, 18, 0),
@ -162,35 +162,35 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x7e6, 0x869, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0),
M( 0x8862, 0x8866, 0, 0, 16, 16, 50, 0),
M( 0x862 | PALETTE_MODIFIER_COLOR, 0x866 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86a, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0),
M( 0x8863, 0x8867, 0, 0, 16, 16, 50, 0),
M( 0x863 | PALETTE_MODIFIER_COLOR, 0x867 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86b, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0),
M( 0x8864, 0x8868, 0, 0, 16, 16, 50, 0),
M( 0x864 | PALETTE_MODIFIER_COLOR, 0x868 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86c, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0),
M( 0x8865, 0x0, 0, 0, 1, 1, 0, 0),
M( 0xf54, 0x8871, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8875, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8879, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8872, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8876, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x887a, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8873, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8877, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x887b, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8874, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x8878, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x887c, 0, 0, 16, 16, 50, 0),
M( 0x865 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 1, 1, 0, 0),
M( 0xf54, 0x871 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x875 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x875 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x879 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x872 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x876 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x876 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x87a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x873 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x877 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x877 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x87b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x874 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x878 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x878 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x87c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf54, 0x7ea, 3, 2, 8, 8, 18, 0),
M( 0xf54, 0x7eb, 3, 2, 8, 8, 37, 0),
M( 0xf54, 0x7ec, 3, 2, 8, 8, 49, 0),
@ -214,27 +214,27 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x7e6, 0x85c, 0, 0, 1, 1, 1, 0),
M( 0x851, 0x852, 0, 0, 16, 16, 20, 0),
M( 0x851, 0x852, 0, 0, 16, 16, 20, 0),
M( 0x8846, 0x8847, 0, 0, 16, 16, 20, 0),
M( 0x846 | PALETTE_MODIFIER_COLOR, 0x847 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0),
M( 0x7e6, 0x85d, 0, 0, 1, 1, 1, 0),
M( 0x853, 0x854, 0, 0, 16, 16, 20, 0),
M( 0x853, 0x854, 0, 0, 16, 16, 20, 0),
M( 0x8848, 0x8849, 0, 0, 16, 16, 20, 0),
M( 0x848 | PALETTE_MODIFIER_COLOR, 0x849 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0),
M( 0x7e6, 0x85e, 0, 0, 1, 1, 1, 0),
M( 0x855, 0x856, 0, 0, 16, 16, 20, 0),
M( 0x855, 0x856, 0, 0, 16, 16, 20, 0),
M( 0x884a, 0x884b, 0, 0, 16, 16, 20, 0),
M( 0x84a | PALETTE_MODIFIER_COLOR, 0x84b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0),
M( 0x7e6, 0x85f, 0, 0, 1, 1, 1, 0),
M( 0x857, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x857, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x884c, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x84c | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x7e6, 0x860, 0, 0, 1, 1, 1, 0),
M( 0x858, 0x859, 0, 0, 16, 16, 20, 0),
M( 0x858, 0x859, 0, 0, 16, 16, 20, 0),
M( 0x884d, 0x884e, 0, 0, 16, 16, 20, 0),
M( 0x84d | PALETTE_MODIFIER_COLOR, 0x84e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0),
M( 0x7e6, 0x861, 0, 0, 1, 1, 1, 0),
M( 0x85a, 0x85b, 0, 0, 16, 16, 20, 0),
M( 0x85a, 0x85b, 0, 0, 16, 16, 20, 0),
M( 0x884f, 0x8850, 0, 0, 16, 16, 20, 0),
M( 0x84f | PALETTE_MODIFIER_COLOR, 0x850 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 20, 0),
M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x884, 0, 0, 16, 16, 25, 0),
@ -243,22 +243,22 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x7e6, 0x885, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x885, 0, 0, 16, 16, 25, 0),
M( 0x887, 0x885, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888c, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888d, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888e, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x888f, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8890, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8891, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8892, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8893, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8894, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8895, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8896, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x8897, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x88c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x88d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x88d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x88e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x88f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x890 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x890 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x891 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x892 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x893 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x893 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x894 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x895 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x896 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x896 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x897 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x898, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x899, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x899, 0, 0, 16, 16, 25, 0),
@ -475,34 +475,34 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x925, 0x0, 0, 0, 16, 16, 25, 0),
M( 0x925, 0x927, 0, 0, 16, 16, 30, 0),
M( 0x925, 0x927, 0, 0, 16, 16, 30, 0),
M( 0x11c6, 0x892b, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892c, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892d, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892e, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892f, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8930, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8928, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x8929, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x892a, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92e | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92f | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x930 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x928 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x929 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x929 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x11c6, 0x92a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 25, 0),
M( 0x7e6, 0x869, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86d, 0, 0, 16, 16, 50, 0),
M( 0x8862, 0x8866, 0, 0, 16, 16, 50, 0),
M( 0x862 | PALETTE_MODIFIER_COLOR, 0x866 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86a, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86e, 0, 0, 16, 16, 50, 0),
M( 0x8863, 0x8867, 0, 0, 16, 16, 50, 0),
M( 0x863 | PALETTE_MODIFIER_COLOR, 0x867 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86b, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86f, 0, 0, 16, 16, 50, 0),
M( 0x8864, 0x8868, 0, 0, 16, 16, 50, 0),
M( 0x864 | PALETTE_MODIFIER_COLOR, 0x868 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x86c, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x870, 0, 0, 16, 16, 50, 0),
M( 0x8865, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x865 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 1, 1, 0, 0),
M( 0x7e6, 0x931, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x935, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x935, 0, 0, 16, 16, 50, 0),
@ -531,18 +531,18 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9245, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9248, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924b, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9247, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924a, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924d, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9246, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x9249, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x924c, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x1245 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x1248 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x1248 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x124b | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x1247 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x124a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x124a | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x124d | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x1246 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x1249 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x1249 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x7e6, 0x124c | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x81d, 0x124e, 0, 0, 16, 16, 10, 0),
M( 0x81d, 0x124f, 0, 0, 16, 16, 10, 0),
M( 0x81d, 0x1250, 0, 0, 16, 16, 10, 0),
@ -634,27 +634,27 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9284, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1284 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9283, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9286, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9281, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9282, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x9285, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1283 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1283 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1286 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1281 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1282 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1282 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1285 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x30b9287, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x1287 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x1287 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x1287 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x30b9288, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1288 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1288 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x1288 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3),
M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3),
M( 0x1243, 0x30b9289, 0, 0, 16, 16, 50, 3),
M( 0x1243, 0x1289 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 3),
M( 0x1243, 0x1289 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 3),
M( 0x1243, 0x1289 | PALETTE_TO_RED, 0, 0, 16, 16, 50, 3),
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x1244, 0x0, 0, 0, 16, 16, 50, 0),
@ -671,38 +671,38 @@ static const DrawIndustryTileStruct _industry_draw_tile_data[700] = {
M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x129d, 0, 0, 16, 16, 50, 0),
M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a0, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a1, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a2, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x92a3, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a0 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a1 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a2 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0x12a3 | PALETTE_MODIFIER_COLOR, 0x0, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x0, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a4, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a6, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x92a5, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a4 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a6 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 0),
M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1),
M( 0xf8d, 0x12a5 | PALETTE_MODIFIER_COLOR, 0, 0, 16, 16, 50, 1),
};
static const DrawIndustrySpec1Struct _draw_industry_spec1[96] = {

@ -6,27 +6,27 @@
static const DrawRoadSeqStruct _road_display_datas_0[] = {
TILE_SEQ_BEGIN(0xA4A)
TILE_SEQ_LINE(0x8584, 0, 15, 16, 1)
TILE_SEQ_LINE(0x584 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1)
TILE_SEQ_END()
};
static const DrawRoadSeqStruct _road_display_datas_1[] = {
TILE_SEQ_BEGIN(0xA4A)
TILE_SEQ_LINE(0x580, 0, 0, 1, 16)
TILE_SEQ_LINE(0x8581, 15, 0, 1, 16)
TILE_SEQ_LINE(0x581 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16)
TILE_SEQ_END()
};
static const DrawRoadSeqStruct _road_display_datas_2[] = {
TILE_SEQ_BEGIN(0xA4A)
TILE_SEQ_LINE(0x582, 0, 0, 16, 1)
TILE_SEQ_LINE(0x8583, 0, 15, 16, 1)
TILE_SEQ_LINE(0x583 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1)
TILE_SEQ_END()
};
static const DrawRoadSeqStruct _road_display_datas_3[] = {
TILE_SEQ_BEGIN(0xA4A)
TILE_SEQ_LINE(0x8585, 15, 0, 1, 16)
TILE_SEQ_LINE(0x585 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16)
TILE_SEQ_END()
};

@ -3,23 +3,25 @@
#ifndef SPRITES_H
#define SPRITES_H
/* NOTE:
/** @file sprites.h
This file contails all sprite-related enums and defines. These consist mainly of
the sprite numbers and a bunch of masks and macros to handle sprites and to get
rid of all the magic numbers in the code.
@NOTE:
ALL SPRITE NUMBERS BELOW 5126 are in the main files
SPR_CANALS_BASE is in canalsw.grf
SPR_SLOPES_BASE is in trkfoundw.grf
SPR_OPENTTD_BASE is in openttd.grf
*/
/*
All elements which consist of two elements should
have the same name and then suffixes
_GROUND and _BUILD for building-type sprites
_REAR and _FRONT for transport-type sprites (tiles where vehicles are on)
These sprites are split because of the Z order of the elements
(like some parts of a bridge are behind the vehicle, while others are before)
*/
/*
All sprites which are described here are referenced only one to a handful of times
throughout the code. When introducing new sprite enums, use meaningful names.
Don't be lazy and typing, and only use abbrevations when their meaning is clear or
@ -29,6 +31,8 @@
30 characters in length. If your editor doen't help you simplifying your work,
get a proper editor. If your Operating Systems don't have any decent editors,
get a proper Operating System.
@todo Split the "Sprites" enum into smaller chunks and document them
*/
@ -869,7 +873,7 @@ enum Sprites {
SPR_IMG_REMOVE = 714
};
/* Cursor sprite numbers */
/** Cursor sprite numbers */
typedef enum CursorSprites {
/* Terraform */
/* Cursors */
@ -940,85 +944,127 @@ typedef enum CursorSprites {
SPR_CURSOR_ROAD_TUNNEL = 2433,
} CursorSprite;
// Animation macro in table/animcursors.h (_animcursors[])
/// Animation macro in table/animcursors.h (_animcursors[])
enum AnimCursors {
ANIMCURSOR_DEMOLISH = -1, // 704 - 707 - demolish dynamite
ANIMCURSOR_LOWERLAND = -2, // 699 - 701 - lower land tool
ANIMCURSOR_RAISELAND = -3, // 696 - 698 - raise land tool
ANIMCURSOR_PICKSTATION = -4, // 716 - 718 - goto-order icon
ANIMCURSOR_BUILDSIGNALS = -5, // 1292 - 1293 - build signal
ANIMCURSOR_DEMOLISH = -1, ///< 704 - 707 - demolish dynamite
ANIMCURSOR_LOWERLAND = -2, ///< 699 - 701 - lower land tool
ANIMCURSOR_RAISELAND = -3, ///< 696 - 698 - raise land tool
ANIMCURSOR_PICKSTATION = -4, ///< 716 - 718 - goto-order icon
ANIMCURSOR_BUILDSIGNALS = -5, ///< 1292 - 1293 - build signal
};
enum {
MAX_SPRITES = 0x3FFF, //the highest number a sprite can have
/**
* Bitmask setup. For the graphics system, 32 bits are used to define
* the sprite to be displayed. This variable contains various information:<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
both need to be fed a sprite which contains the "new" colors
/**
these masks change the colors of the palette for a sprite.
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 {
PALETTE_MODIFIER_TRANSPARENT = 0x4000,
PALETTE_MODIFIER_COLOR = 0x8000,
///when a sprite is to be displayed transparently, this bit needs to be set.
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 {
//note: these numbers are already the modified once the renderer needs.
//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
PALETTE_TILE_RED_PULSATING = 0x3038000,
//makes a square red. is used when removing rails or other stuff
PALETTE_SEL_TILE_RED = 0x3048000,
//This draws a blueish square (catchment areas for example)
PALETTE_SEL_TILE_BLUE = 0x3058000,
///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 = PALETTE_RECOLOR_SPRITE(0x303),
///makes a square red. is used when removing rails or other stuff
PALETTE_SEL_TILE_RED = PALETTE_RECOLOR_SPRITE(0x304),
///This draws a blueish square (catchment areas for example)
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
//here the color switches begin
//use this if you add stuff to the value, so that the resulting color
//is not a fixed value.
//NOTE THAT THE SWITCH 0x8000 is NOT present in _TO_COLORS yet!
PALETTE_TO_COLORS = 0x3070000,
PALETTE_TO_DARK_BLUE = 0x3078000,
PALETTE_TO_PALE_GREEN = 0x3088000,
PALETTE_TO_PINK = 0x3098000,
PALETTE_TO_YELLOW = 0x30A8000,
PALETTE_TO_RED = 0x30B8000,
PALETTE_TO_LIGHT_BLUE = 0x30C8000,
PALETTE_TO_GREEN = 0x30D8000,
PALETTE_TO_DARK_GREEN = 0x30E8000,
PALETTE_TO_BLUE = 0x30F8000,
PALETTE_TO_CREAM = 0x3108000,
PALETTE_TO_COLORS = 0x307 << PALETTE_SPRITE_START,
PALETTE_TO_DARK_BLUE = PALETTE_RECOLOR_SPRITE(0x307),
PALETTE_TO_PALE_GREEN = PALETTE_RECOLOR_SPRITE(0x308),
PALETTE_TO_PINK = PALETTE_RECOLOR_SPRITE(0x309),
PALETTE_TO_YELLOW = PALETTE_RECOLOR_SPRITE(0x30A),
PALETTE_TO_RED = PALETTE_RECOLOR_SPRITE(0x30B),
PALETTE_TO_LIGHT_BLUE = PALETTE_RECOLOR_SPRITE(0x30C),
PALETTE_TO_GREEN = PALETTE_RECOLOR_SPRITE(0x30D),
PALETTE_TO_DARK_GREEN = PALETTE_RECOLOR_SPRITE(0x30E),
PALETTE_TO_BLUE = PALETTE_RECOLOR_SPRITE(0x30F),
PALETTE_TO_CREAM = PALETTE_RECOLOR_SPRITE(0x310),
//maybe don't use as player color because it doesn't display in the graphs?
PALETTE_TO_MAUVE = 0x3118000,
PALETTE_TO_PURPLE = 0x3128000,
PALETTE_TO_ORANGE = 0x3138000,
PALETTE_TO_BROWN = 0x3148000,
PALETTE_TO_GREY = 0x3158000,
PALETTE_TO_WHITE = 0x3168000,
PALETTE_TO_MAUVE = PALETTE_RECOLOR_SPRITE(0x311),
PALETTE_TO_PURPLE = PALETTE_RECOLOR_SPRITE(0x312),
PALETTE_TO_ORANGE = PALETTE_RECOLOR_SPRITE(0x313),
PALETTE_TO_BROWN = PALETTE_RECOLOR_SPRITE(0x314),
PALETTE_TO_GREY = PALETTE_RECOLOR_SPRITE(0x315),
PALETTE_TO_WHITE = PALETTE_RECOLOR_SPRITE(0x316),
//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 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)
PALETTE_TO_STRUCT_BROWN = 0x31C8000,
PALETTE_31D = 0x31D8000, //XXX FIXME Don't know this either
PALETTE_TO_STRUCT_BROWN = PALETTE_RECOLOR_SPRITE(0x31C),
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
PALETTE_TO_STRUCT_RED = 0x31E8000,
PALETTE_TO_STRUCT_RED = PALETTE_RECOLOR_SPRITE(0x31E),
//XXX 31F
PALETTE_TO_STRUCT_CONCRETE = 0x3208000, //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_TRANSPARENT = 0x3224000, //This sets the sprite to transparent
PALETTE_TO_STRUCT_CONCRETE = PALETTE_RECOLOR_SPRITE(0x320), //Sets the suspension bridge to concrete, also other strucutures use it
PALETTE_TO_STRUCT_YELLOW = PALETTE_RECOLOR_SPRITE(0x321), //Sets the bridge color to yellow (suspension and tubular)
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
PALETTE_TO_STRUCT_GREY = 0x3238000,
PALETTE_CRASH = 0x3248000, //this changes stuff to the "crash color"
PALETTE_TO_STRUCT_GREY = PALETTE_RECOLOR_SPRITE(0x323),
PALETTE_CRASH = PALETTE_RECOLOR_SPRITE(0x324), //this changes stuff to the "crash color"
//XXX another place where structures are colored.
//I'm not sure which colors these are
PALETTE_59E = 0x59E8000,
PALETTE_59F = 0x59F8000,
PALETTE_59E = PALETTE_RECOLOR_SPRITE(0x59E),
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 */

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

File diff suppressed because it is too large Load Diff

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

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

@ -41,17 +41,17 @@ static const DrawTileSeqStruct _unmovable_display_datas_7[] = {
};
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()
};
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()
};
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()
};
@ -60,17 +60,17 @@ static const DrawTileSeqStruct _unmovable_display_datas_11[] = {
};
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()
};
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()
};
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()
};
@ -79,17 +79,17 @@ static const DrawTileSeqStruct _unmovable_display_datas_15[] = {
};
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()
};
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()
};
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()
};
@ -98,24 +98,24 @@ static const DrawTileSeqStruct _unmovable_display_datas_19[] = {
};
static const DrawTileSprites _unmovable_display_datas[] = {
{ 0x8A2B, _unmovable_display_datas_0 },
{ 0x8A2C, _unmovable_display_datas_1 },
{ 0x8A2D, _unmovable_display_datas_2 },
{ 0x8A2E, _unmovable_display_datas_3 },
{ 0x8A2F, _unmovable_display_datas_4 },
{ 0x8A30, _unmovable_display_datas_5 },
{ 0x8A31, _unmovable_display_datas_6 },
{ 0x8A32, _unmovable_display_datas_7 },
{ 0x8A33, _unmovable_display_datas_8 },
{ 0x8A35, _unmovable_display_datas_9 },
{ 0x8A37, _unmovable_display_datas_10 },
{ 0x8A39, _unmovable_display_datas_11 },
{ 0x8A3A, _unmovable_display_datas_12 },
{ 0x8A3C, _unmovable_display_datas_13 },
{ 0x8A3E, _unmovable_display_datas_14 },
{ 0x8A40, _unmovable_display_datas_15 },
{ 0x8A41, _unmovable_display_datas_16 },
{ 0x8A43, _unmovable_display_datas_17 },
{ 0x8A45, _unmovable_display_datas_18 },
{ 0x8A47, _unmovable_display_datas_19 },
{ 0xA2B | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_0 },
{ 0xA2C | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_1 },
{ 0xA2D | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_2 },
{ 0xA2E | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_3 },
{ 0xA2F | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_4 },
{ 0xA30 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_5 },
{ 0xA31 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_6 },
{ 0xA32 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_7 },
{ 0xA33 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_8 },
{ 0xA35 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_9 },
{ 0xA37 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_10 },
{ 0xA39 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_11 },
{ 0xA3A | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_12 },
{ 0xA3C | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_13 },
{ 0xA3E | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_14 },
{ 0xA40 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_15 },
{ 0xA41 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_16 },
{ 0xA43 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_17 },
{ 0xA45 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_18 },
{ 0xA47 | PALETTE_MODIFIER_COLOR, _unmovable_display_datas_19 },
};

@ -15,27 +15,27 @@ typedef struct WaterDrawTileStruct {
static const WaterDrawTileStruct _shipdepot_display_seq_1[] = {
BEGIN(0xFDD),
{ 0, 15, 0, 16, 1, 0x14, 0x8FE8 },
{ 0, 15, 0, 16, 1, 0x14, 0xFE8 | PALETTE_MODIFIER_COLOR },
END(0)
};
static const WaterDrawTileStruct _shipdepot_display_seq_2[] = {
BEGIN(0xFDD),
{ 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)
};
static const WaterDrawTileStruct _shipdepot_display_seq_3[] = {
BEGIN(0xFDD),
{ 15, 0, 0, 1, 0x10, 0x14, 0x8FE9 },
{ 15, 0, 0, 1, 0x10, 0x14, 0xFE9 | PALETTE_MODIFIER_COLOR },
END(0)
};
static const WaterDrawTileStruct _shipdepot_display_seq_4[] = {
BEGIN(0xFDD),
{ 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)
};

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

@ -138,7 +138,7 @@ static void TownAuthorityWndProc(Window *w, WindowEvent *e)
SetDParam(4, str);
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);
y+=10;

@ -40,10 +40,10 @@ const uint16 _bridge_speeds[MAX_BRIDGES] = {
};
const PalSpriteID _bridge_sprites[MAX_BRIDGES] = {
0x0A24, 0x31E8A26, 0x0A25, 0x3208A22,
0x0A22, 0x3218A22, 0x0A23, 0x31C8A23,
0x31E8A23, 0x0A27, 0x0A28, 0x3218A28,
0x3238A28,
0x0A24, 0xA26 | PALETTE_TO_STRUCT_RED, 0x0A25, 0xA22 | PALETTE_TO_STRUCT_CONCRETE,
0x0A22, 0xA22 | PALETTE_TO_STRUCT_YELLOW, 0x0A23, 0xA23 | PALETTE_TO_STRUCT_BROWN,
0xA23 | PALETTE_TO_STRUCT_RED, 0x0A27, 0x0A28, 0xA28 | PALETTE_TO_STRUCT_YELLOW,
0xA28 | PALETTE_TO_STRUCT_GREY,
};
const StringID _bridge_material[MAX_BRIDGES] = {
@ -1135,10 +1135,10 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
// draw roof
if (ti->map5&1) {
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 {
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 ) {

@ -361,7 +361,7 @@ void DrawGroundSpriteAt(uint32 image, int32 x, int32 y, byte z)
ViewportDrawer *vd = _cur_vd;
TileSpriteToDraw *ts;
assert((image & 0x3FFF) < NUM_SPRITES);
assert((image & SPRITE_MASK) < MAX_SPRITES);
if (vd->spritelist_mem >= vd->eof_spritelist_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;
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 ||
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;
Point pt;
assert((image & 0x3FFF) < NUM_SPRITES);
assert((image & SPRITE_MASK) < MAX_SPRITES);
if (vd->combine_sprites == 2) {
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);
sd = GetSpriteDimension(image & 0x3FFF);
sd = GetSpriteDimension(image & SPRITE_MASK);
if ((ps->left = (pt.x += sd->xoffs)) >= vd->dpi.left + vd->dpi.width ||
(ps->right = (pt.x + sd->xsize)) <= vd->dpi.left ||
(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;
ChildScreenSpriteToDraw *cs;
assert((image & 0x3FFF) < NUM_SPRITES);
assert((image & SPRITE_MASK) < MAX_SPRITES);
if (vd->spritelist_mem >= vd->eof_spritelist_mem) {
DEBUG(misc, 0) ("Out of sprite mem");

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

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

Loading…
Cancel
Save