(svn r7759) -Merge: makefile rewrite. This merge features:
- A proper ./configure, so everything needs to be configured only once, not for every make. - Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies. - A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC. - Proper support for OSX universal binaries. - Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files. - Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files. Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy.
This commit is contained in:
480
src/table/ai_rail.h
Normal file
480
src/table/ai_rail.h
Normal file
@@ -0,0 +1,480 @@
|
||||
/* $Id$ */
|
||||
|
||||
typedef struct {
|
||||
byte mode;
|
||||
byte attr;
|
||||
TileIndexDiffC tileoffs;
|
||||
} AiDefaultBlockData;
|
||||
|
||||
typedef struct {
|
||||
byte p0;
|
||||
byte p1;
|
||||
byte p2;
|
||||
byte p3;
|
||||
byte dir;
|
||||
AiDefaultBlockData data[VARARRAY_SIZE];
|
||||
} AiDefaultRailBlock;
|
||||
|
||||
typedef struct {
|
||||
byte dir;
|
||||
AiDefaultBlockData data[VARARRAY_SIZE];
|
||||
} AiDefaultRoadBlock;
|
||||
|
||||
|
||||
#define MKHDR(a,b,c,d,e) a,b,c,d,e,{
|
||||
#define MKDEPOT(a, b, c) {0, a, {b, c}}
|
||||
#define MKSTATION(a, b, c) {1, a, {b, c}}
|
||||
#define MKRAIL(a, b, c) {2, a, {b, c}}
|
||||
#define MKCLRRAIL(a, b, c) {3, a, {b, c}}
|
||||
#define MKEND {4, 0, {0, 0}}}
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_0 = {
|
||||
MKHDR(1, 2, 1, 0, 1)
|
||||
MKDEPOT(2, -1, 1),
|
||||
MKSTATION(0x15, 0, -1),
|
||||
MKRAIL(0x26, 0, 1),
|
||||
MKCLRRAIL(1, 0, 2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_1 = {
|
||||
MKHDR(1, 2, 1, 0, 3)
|
||||
MKDEPOT(2, -1, -1),
|
||||
MKRAIL(0x26, 0, -1),
|
||||
MKSTATION(0x15, 0, 0),
|
||||
MKCLRRAIL(3, 0, -2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_2 = {
|
||||
MKHDR(1, 2, 1, 0, 0)
|
||||
MKDEPOT(1, -1, -1),
|
||||
MKRAIL(0x15, -1, 0),
|
||||
MKSTATION(0x14, 0, 0),
|
||||
MKCLRRAIL(0, -2, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_3 = {
|
||||
MKHDR(1, 2, 1, 0, 2)
|
||||
MKDEPOT(1, 1, -1),
|
||||
MKRAIL(0x15, 1, 0),
|
||||
MKSTATION(0x14, -1, 0),
|
||||
MKCLRRAIL(2, 2, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_4 = {
|
||||
MKHDR(1, 2, 2, 0, 255)
|
||||
MKSTATION(0x15, 0, 0),
|
||||
MKCLRRAIL(3, 0, -1),
|
||||
MKCLRRAIL(1, 0, 2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_5 = {
|
||||
MKHDR(1, 2, 2, 0, 255)
|
||||
MKSTATION(0x14, 0, 0),
|
||||
MKCLRRAIL(0, -1, 0),
|
||||
MKCLRRAIL(2, 2, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_6 = {
|
||||
MKHDR(2, 3, 1, 0, 1)
|
||||
MKSTATION(0x27, 0, -2),
|
||||
MKRAIL(0xC2, 0, 1),
|
||||
MKRAIL(0xC2, 1, 1),
|
||||
MKRAIL(0x1A, 0, 2),
|
||||
MKRAIL(0x26, 1, 2),
|
||||
MKDEPOT(3, 1, 3),
|
||||
MKCLRRAIL(1, 0, 3),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_7 = {
|
||||
MKHDR(2, 3, 1, 0, 3)
|
||||
MKDEPOT(1, 0, -3),
|
||||
MKRAIL(0x1A, 0, -2),
|
||||
MKRAIL(0x26, 1, -2),
|
||||
MKRAIL(0xC2, 0, -1),
|
||||
MKRAIL(0xC2, 1, -1),
|
||||
MKSTATION(0x27, 0, 0),
|
||||
MKCLRRAIL(3, 1, -3),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_8 = {
|
||||
MKHDR(2, 3, 1, 0, 2)
|
||||
MKSTATION(0x26, -2, 0),
|
||||
MKRAIL(0xC1, 1, 0),
|
||||
MKRAIL(0xC1, 1, 1),
|
||||
MKRAIL(0x29, 2, 0),
|
||||
MKRAIL(0x15, 2, 1),
|
||||
MKDEPOT(0, 3, 0),
|
||||
MKCLRRAIL(2, 3, 1),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_9 = {
|
||||
MKHDR(2, 3, 1, 0, 0)
|
||||
MKDEPOT(2, -3, -1),
|
||||
MKRAIL(0x29, -2, -1),
|
||||
MKRAIL(0x15, -2, 0),
|
||||
MKRAIL(0xC1, -1, -1),
|
||||
MKRAIL(0xC1, -1, 0),
|
||||
MKSTATION(0x26, 0, -1),
|
||||
MKCLRRAIL(0, -3, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_10 = {
|
||||
MKHDR(2, 3, 2, 0, 255)
|
||||
MKRAIL(0x1A, 0, -3),
|
||||
MKRAIL(0x20, 1, -3),
|
||||
MKRAIL(0xC2, 0, -2),
|
||||
MKRAIL(0xC2, 1, -2),
|
||||
MKSTATION(0x27, 0, -1),
|
||||
MKRAIL(0xC2, 0, 2),
|
||||
MKRAIL(0xC2, 1, 2),
|
||||
MKRAIL(0x1A, 0, 3),
|
||||
MKRAIL(0x4, 1, 3),
|
||||
MKCLRRAIL(3, 0, -4),
|
||||
MKCLRRAIL(1, 0, 4),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_11 = {
|
||||
MKHDR(2, 3, 2, 0, 255)
|
||||
MKRAIL(0x29, -3, 0),
|
||||
MKRAIL(0x10, -3, 1),
|
||||
MKRAIL(0xC1, -2, 0),
|
||||
MKRAIL(0xC1, -2, 1),
|
||||
MKSTATION(0x26, -1, 0),
|
||||
MKRAIL(0xC1, 2, 0),
|
||||
MKRAIL(0xC1, 2, 1),
|
||||
MKRAIL(0x29, 3, 0),
|
||||
MKRAIL(0x4, 3, 1),
|
||||
MKCLRRAIL(0, -4, 0),
|
||||
MKCLRRAIL(2, 4, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_12 = {
|
||||
MKHDR(2, 3, 2, 1, 3)
|
||||
MKRAIL(0x88, -1, -3),
|
||||
MKRAIL(0x6, 0, -3),
|
||||
MKRAIL(0x2, -1, -2),
|
||||
MKRAIL(0x42, 0, -2),
|
||||
MKRAIL(0x2, -1, -1),
|
||||
MKRAIL(0x2, 0, -1),
|
||||
MKRAIL(0x2, -1, 0),
|
||||
MKRAIL(0x2, 0, 0),
|
||||
MKRAIL(0x82, -1, 1),
|
||||
MKRAIL(0x2, 0, 1),
|
||||
MKRAIL(0xA, -1, 2),
|
||||
MKRAIL(0x44, 0, 2),
|
||||
MKCLRRAIL(3, 0, -4),
|
||||
MKCLRRAIL(1, -1, 3),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_13 = {
|
||||
MKHDR(2, 3, 2, 1, 0)
|
||||
MKRAIL(0x21, -3, 0),
|
||||
MKRAIL(0x50, -3, 1),
|
||||
MKRAIL(0x81, -2, 0),
|
||||
MKRAIL(0x1, -2, 1),
|
||||
MKRAIL(0x1, -1, 0),
|
||||
MKRAIL(0x1, -1, 1),
|
||||
MKRAIL(0x1, 0, 0),
|
||||
MKRAIL(0x1, 0, 1),
|
||||
MKRAIL(0x1, 1, 0),
|
||||
MKRAIL(0x41, 1, 1),
|
||||
MKRAIL(0xA0, 2, 0),
|
||||
MKRAIL(0x11, 2, 1),
|
||||
MKCLRRAIL(0, -4, 0),
|
||||
MKCLRRAIL(2, 3, 1),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_14 = {
|
||||
MKHDR(2, 3, 2, 1, 1)
|
||||
MKRAIL(0x88, -1, -3),
|
||||
MKRAIL(0x6, 0, -3),
|
||||
MKRAIL(0x2, -1, -2),
|
||||
MKRAIL(0x42, 0, -2),
|
||||
MKRAIL(0x2, -1, -1),
|
||||
MKRAIL(0x2, 0, -1),
|
||||
MKRAIL(0x2, -1, 0),
|
||||
MKRAIL(0x2, 0, 0),
|
||||
MKRAIL(0x82, -1, 1),
|
||||
MKRAIL(0x2, 0, 1),
|
||||
MKRAIL(0xA, -1, 2),
|
||||
MKRAIL(0x44, 0, 2),
|
||||
MKCLRRAIL(1, -1, 3),
|
||||
MKCLRRAIL(3, 0, -4),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_15 = {
|
||||
MKHDR(2, 3, 2, 1, 2)
|
||||
MKRAIL(0x21, -3, 0),
|
||||
MKRAIL(0x50, -3, 1),
|
||||
MKRAIL(0x81, -2, 0),
|
||||
MKRAIL(0x1, -2, 1),
|
||||
MKRAIL(0x1, -1, 0),
|
||||
MKRAIL(0x1, -1, 1),
|
||||
MKRAIL(0x1, 0, 0),
|
||||
MKRAIL(0x1, 0, 1),
|
||||
MKRAIL(0x1, 1, 0),
|
||||
MKRAIL(0x41, 1, 1),
|
||||
MKRAIL(0xA0, 2, 0),
|
||||
MKRAIL(0x11, 2, 1),
|
||||
MKCLRRAIL(2, 3, 1),
|
||||
MKCLRRAIL(0, -4, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_16 = {
|
||||
MKHDR(1, 3, 1, 0, 1)
|
||||
MKSTATION(0x17, 0, -2),
|
||||
MKRAIL(0x1A, 0, 1),
|
||||
MKCLRRAIL(1, 0, 2),
|
||||
MKDEPOT(0, 1, 1),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_17 = {
|
||||
MKHDR(1, 3, 1, 0, 3)
|
||||
MKCLRRAIL(3, 0, -2),
|
||||
MKRAIL(0x26, 0, -1),
|
||||
MKDEPOT(2, -1, -1),
|
||||
MKSTATION(0x17, 0, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_18 = {
|
||||
MKHDR(1, 3, 1, 0, 0)
|
||||
MKCLRRAIL(0, -2, 0),
|
||||
MKRAIL(0x29, -1, 0),
|
||||
MKDEPOT(3, -1, 1),
|
||||
MKSTATION(0x16, 0, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_19 = {
|
||||
MKHDR(1, 3, 1, 0, 2)
|
||||
MKSTATION(0x16, -2, 0),
|
||||
MKDEPOT(2, 0, -1),
|
||||
MKRAIL(0x20, 1, -1),
|
||||
MKRAIL(0x15, 1, 0),
|
||||
MKCLRRAIL(2, 2, 0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_20 = {
|
||||
MKHDR(2, 3, 1, 0, 1)
|
||||
MKSTATION(0x26, -2, 0),
|
||||
MKRAIL(0xC1, 1, 0),
|
||||
MKRAIL(0xC1, 1, 1),
|
||||
MKRAIL(0x26, 2, 0),
|
||||
MKRAIL(0x26, 2, 1),
|
||||
MKDEPOT(1, 2, -1),
|
||||
MKCLRRAIL(1, 2, 2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_21 = {
|
||||
MKHDR(2, 3, 1, 0, 3)
|
||||
MKDEPOT(2, -3, -1),
|
||||
MKRAIL(0x3F, -2, -1),
|
||||
MKRAIL(0x10, -2, 0),
|
||||
MKRAIL(0xC1, -1, -1),
|
||||
MKRAIL(0xC1, -1, 0),
|
||||
MKSTATION(0x26, 0, -1),
|
||||
MKCLRRAIL(3, -2, -2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_22 = {
|
||||
MKHDR(2, 3, 1, 0, 0)
|
||||
MKSTATION(0x27, 0, -2),
|
||||
MKRAIL(0xC2, 0, 1),
|
||||
MKRAIL(0xC2, 1, 1),
|
||||
MKRAIL(0x15, 0, 2),
|
||||
MKRAIL(0x4, 1, 2),
|
||||
MKRAIL(0x15, -1, 2),
|
||||
MKDEPOT(1, -1, 1),
|
||||
MKCLRRAIL(0, -2, 2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRailBlock _raildata_ai_23 = {
|
||||
MKHDR(2, 3, 1, 0, 2)
|
||||
MKDEPOT(1, 0, -3),
|
||||
MKRAIL(0x1A, 0, -2),
|
||||
MKRAIL(0x29, 1, -2),
|
||||
MKRAIL(0xC2, 0, -1),
|
||||
MKRAIL(0xC2, 1, -1),
|
||||
MKSTATION(0x27, 0, 0),
|
||||
MKCLRRAIL(2, 2, -2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
|
||||
|
||||
static const AiDefaultRailBlock * const _default_rail_track_data[] = {
|
||||
&_raildata_ai_0,
|
||||
&_raildata_ai_1,
|
||||
&_raildata_ai_2,
|
||||
&_raildata_ai_3,
|
||||
&_raildata_ai_4,
|
||||
&_raildata_ai_5,
|
||||
&_raildata_ai_6,
|
||||
&_raildata_ai_7,
|
||||
&_raildata_ai_8,
|
||||
&_raildata_ai_9,
|
||||
&_raildata_ai_10,
|
||||
&_raildata_ai_11,
|
||||
&_raildata_ai_12,
|
||||
&_raildata_ai_13,
|
||||
&_raildata_ai_14,
|
||||
&_raildata_ai_15,
|
||||
&_raildata_ai_16,
|
||||
&_raildata_ai_17,
|
||||
&_raildata_ai_18,
|
||||
&_raildata_ai_19,
|
||||
&_raildata_ai_20,
|
||||
&_raildata_ai_21,
|
||||
&_raildata_ai_22,
|
||||
&_raildata_ai_23,
|
||||
NULL
|
||||
};
|
||||
|
||||
#undef MKHDR
|
||||
|
||||
#define MKHDR(a) a,{
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_0 = {
|
||||
MKHDR(0)
|
||||
MKDEPOT(2, -1,1),
|
||||
MKSTATION(0x2, -1,0),
|
||||
MKRAIL(0xC, 0,0),
|
||||
MKRAIL(0x9, 0,1),
|
||||
MKCLRRAIL(0, 0,-1),
|
||||
MKCLRRAIL(0, 1,0),
|
||||
MKCLRRAIL(0, 1,1),
|
||||
MKCLRRAIL(0, 0,2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_1 = {
|
||||
MKHDR(0)
|
||||
MKDEPOT(1, 0,-1),
|
||||
MKSTATION(0x1, 1,-1),
|
||||
MKRAIL(0x3, 0,0),
|
||||
MKRAIL(0x9, 1,0),
|
||||
MKCLRRAIL(0, -1,0),
|
||||
MKCLRRAIL(0, 0,1),
|
||||
MKCLRRAIL(0, 1,1),
|
||||
MKCLRRAIL(0, 2,0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_2 = {
|
||||
MKHDR(0)
|
||||
MKDEPOT(3, 1,1),
|
||||
MKSTATION(0x3, 0,1),
|
||||
MKRAIL(0x6, 0,0),
|
||||
MKRAIL(0xC, 1,0),
|
||||
MKCLRRAIL(0, -1,0),
|
||||
MKCLRRAIL(0, 0,-1),
|
||||
MKCLRRAIL(0, 1,-1),
|
||||
MKCLRRAIL(0, 2,0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_3 = {
|
||||
MKHDR(0)
|
||||
MKDEPOT(0, 1,0),
|
||||
MKSTATION(0x0, 1,1),
|
||||
MKRAIL(0x6, 0,0),
|
||||
MKRAIL(0x3, 0,1),
|
||||
MKCLRRAIL(0, 0,-1),
|
||||
MKCLRRAIL(0, -1,0),
|
||||
MKCLRRAIL(0, -1,1),
|
||||
MKCLRRAIL(0, 0,2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_4 = {
|
||||
MKHDR(1)
|
||||
MKSTATION(0x2, -1,0),
|
||||
MKRAIL(0x8, 0,0),
|
||||
MKCLRRAIL(0, 0,-1),
|
||||
MKCLRRAIL(0, 1,0),
|
||||
MKCLRRAIL(0, 0,1),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_5 = {
|
||||
MKHDR(1)
|
||||
MKSTATION(0x3, 0,1),
|
||||
MKRAIL(0x4, 0,0),
|
||||
MKCLRRAIL(0, -1,0),
|
||||
MKCLRRAIL(0, 0,-1),
|
||||
MKCLRRAIL(0, 1,0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_6 = {
|
||||
MKHDR(1)
|
||||
MKSTATION(0x0, 1,1),
|
||||
MKRAIL(0x2, 0,1),
|
||||
MKCLRRAIL(0, 0,0),
|
||||
MKCLRRAIL(0, -1,0),
|
||||
MKCLRRAIL(0, 0,2),
|
||||
MKEND
|
||||
};
|
||||
|
||||
static const AiDefaultRoadBlock _roaddata_ai_7 = {
|
||||
MKHDR(1)
|
||||
MKSTATION(0x1, 1,-1),
|
||||
MKRAIL(0x1, 1,0),
|
||||
MKCLRRAIL(0, 0,0),
|
||||
MKCLRRAIL(0, 1,1),
|
||||
MKCLRRAIL(0, 2,0),
|
||||
MKEND
|
||||
};
|
||||
|
||||
|
||||
static const AiDefaultRoadBlock * const _road_default_block_data[] = {
|
||||
&_roaddata_ai_0,
|
||||
&_roaddata_ai_1,
|
||||
&_roaddata_ai_2,
|
||||
&_roaddata_ai_3,
|
||||
&_roaddata_ai_4,
|
||||
&_roaddata_ai_5,
|
||||
&_roaddata_ai_6,
|
||||
&_roaddata_ai_7,
|
||||
NULL
|
||||
};
|
||||
|
||||
#define MKAIR(a, b, c) {0, a, {b, c}}
|
||||
|
||||
static const AiDefaultBlockData _airportdata_ai_0[] = {
|
||||
MKAIR(1, 0, 0),
|
||||
{1, 0, {0, 0}},
|
||||
};
|
||||
|
||||
static const AiDefaultBlockData _airportdata_ai_1[] = {
|
||||
MKAIR(0, 0, 0),
|
||||
{1, 0, {0, 0}}
|
||||
};
|
||||
|
||||
static const AiDefaultBlockData * const _airport_default_block_data[] = {
|
||||
_airportdata_ai_0, // city airport
|
||||
_airportdata_ai_1, // country airport
|
||||
NULL
|
||||
};
|
79
src/table/animcursors.h
Normal file
79
src/table/animcursors.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/* $Id$ */
|
||||
|
||||
/** @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, 8)
|
||||
ANIM_CURSOR_LINE(0x2C1, 8)
|
||||
ANIM_CURSOR_LINE(0x2C2, 8)
|
||||
ANIM_CURSOR_LINE(0x2C3, 8)
|
||||
ANIM_CURSOR_END()
|
||||
};
|
||||
|
||||
/** Animated cursor elements for lower land
|
||||
*/
|
||||
static const CursorID _lower_land_animcursor[] = {
|
||||
ANIM_CURSOR_LINE(0x2BB, 10)
|
||||
ANIM_CURSOR_LINE(0x2BC, 10)
|
||||
ANIM_CURSOR_LINE(0x2BD, 29)
|
||||
ANIM_CURSOR_END()
|
||||
};
|
||||
|
||||
/** Animated cursor elements for raise land
|
||||
*/
|
||||
static const CursorID _raise_land_animcursor[] = {
|
||||
ANIM_CURSOR_LINE(0x2B8, 10)
|
||||
ANIM_CURSOR_LINE(0x2B9, 10)
|
||||
ANIM_CURSOR_LINE(0x2BA, 29)
|
||||
ANIM_CURSOR_END()
|
||||
};
|
||||
|
||||
/** Animated cursor elements for the goto icon
|
||||
*/
|
||||
static const CursorID _order_goto_animcursor[] = {
|
||||
ANIM_CURSOR_LINE(0x2CC, 10)
|
||||
ANIM_CURSOR_LINE(0x2CD, 10)
|
||||
ANIM_CURSOR_LINE(0x2CE, 29)
|
||||
ANIM_CURSOR_END()
|
||||
};
|
||||
|
||||
/** Animated cursor elements for the build signal icon
|
||||
*/
|
||||
static const CursorID _build_signals_animcursor[] = {
|
||||
ANIM_CURSOR_LINE(0x50C, 20)
|
||||
ANIM_CURSOR_LINE(0x50D, 20)
|
||||
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,
|
||||
_raise_land_animcursor,
|
||||
_order_goto_animcursor,
|
||||
_build_signals_animcursor
|
||||
};
|
72
src/table/autorail.h
Normal file
72
src/table/autorail.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/* $Id$ */
|
||||
|
||||
/* Rail selection types (directions):
|
||||
* / \ / \ / \ / \ / \ / \
|
||||
* / /\ /\ \ /===\ / \ /| \ / |\
|
||||
* \/ / \ \/ \ / \===/ \| / \ |/
|
||||
* \ / \ / \ / \ / \ / \ /
|
||||
* 0 1 2 3 4 5
|
||||
*/
|
||||
|
||||
// mark invalid tiles red
|
||||
#define RED(c) c | PALETTE_SEL_TILE_RED
|
||||
|
||||
// table maps each of the six rail directions and tileh combinations to a sprite
|
||||
// invalid entries are required to make sure that this array can be quickly accessed
|
||||
static const int _AutorailTilehSprite[][6] = {
|
||||
// type 0 1 2 3 4 5
|
||||
{ 0, 8, 16, 25, 34, 42 }, // tileh = 0
|
||||
{ 5, 13, RED(22), RED(31), 35, 42 }, // tileh = 1
|
||||
{ 5, 10, 16, 26, RED(38), RED(46) }, // tileh = 2
|
||||
{ 5, 9, RED(23), 26, 35, RED(46) }, // tileh = 3
|
||||
{ 2, 10, RED(19), RED(28), 34, 43 }, // tileh = 4
|
||||
{ 1, 9, 17, 26, 35, 43 }, // tileh = 5
|
||||
{ 1, 10, RED(20), 26, RED(38), 43 }, // tileh = 6
|
||||
{ 1, 9, 17, 26, 35, 43 }, // tileh = 7
|
||||
{ 2, 13, 17, 25, RED(40), RED(48) }, // tileh = 8
|
||||
{ 1, 13, 17, RED(32), 35, RED(48) }, // tileh = 9
|
||||
{ 1, 9, 17, 26, 35, 43 }, // tileh = 10
|
||||
{ 1, 9, 17, 26, 35, 43 }, // tileh = 11
|
||||
{ 2, 9, 17, RED(29), RED(40), 43 }, // tileh = 12
|
||||
{ 1, 9, 17, 26, 35, 43 }, // tileh = 13
|
||||
{ 1, 9, 17, 26, 35, 43 }, // tileh = 14
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (15)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (16)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (17)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (18)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (19)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (20)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (21)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (22)
|
||||
{ 6, 11, 17, 27, RED(39), RED(47) }, // tileh = 23
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (24)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (25)
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (26)
|
||||
{ 7, 15, RED(24), RED(33), 36, 44 }, // tileh = 27
|
||||
{ 0, 1, 2, 3, 4, 5 }, // invalid (28)
|
||||
{ 3, 14, 18, 26, RED(41), RED(49) }, // tileh = 29
|
||||
{ 4, 12, RED(21), RED(30), 37, 45 } // tileh = 30
|
||||
};
|
||||
#undef RED
|
||||
|
||||
|
||||
// maps each pixel of a tile (16x16) to a selection type
|
||||
// (0,0) is the top corner, (16,16) the bottom corner
|
||||
static const byte _AutorailPiece[][16] = {
|
||||
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
|
||||
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
|
||||
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
|
||||
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
|
||||
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
|
||||
{ 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 5, 5, 5, 5, 5, 5 },
|
||||
{ 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 },
|
||||
{ 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
|
||||
{ 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
|
||||
{ 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1 },
|
||||
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
|
||||
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
|
||||
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
|
||||
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
|
||||
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 },
|
||||
{ 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3 }
|
||||
};
|
521
src/table/bridge_land.h
Normal file
521
src/table/bridge_land.h
Normal file
@@ -0,0 +1,521 @@
|
||||
/* $Id$ */
|
||||
|
||||
/** @file bridge_land.h This file contains all the sprites for bridges
|
||||
* It consists of a number of arrays.
|
||||
* <ul><li>_bridge_sprite_table_n_m. Defines all the sprites of a bridge besides the pylons.
|
||||
* n defines the number of the bridge type, m the number of the section. the highest m for
|
||||
* each bridge set defines the heads.<br>
|
||||
* Sprites for middle secionts are arranged in groups of four, the elements are:
|
||||
* <ol><li>Element containing the track. This element is logically behind the vehicle.</li>
|
||||
* <li>Element containing the structure that is logically between the vehicle and the camera</li>
|
||||
* <li>Element containing the pylons.</li></ol>
|
||||
* First group is for railway in X direction, second for railway in Y direction, two groups each follow for road, monorail and maglev<p>
|
||||
* <br>Elements for heads are arranged in groups of eight:
|
||||
* <ol><li>X direction, north end, flat</li>
|
||||
* <li>Y direction, north end, flat</li>
|
||||
* <li>X direction, south end, flat</li>
|
||||
* <li>Y direction, south end, flat</li>
|
||||
* <li>X direction, north end, sloped</li>
|
||||
* <li>Y direction, north end, sloped</li>
|
||||
* <li>X direction, south end, sloped</li>
|
||||
* <li>Y direction, south end, sloped</li></ol>
|
||||
* This is repeated 4 times, for rail, road, monorail, maglev</li>
|
||||
* </ul>
|
||||
*/
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_2_0[] = {
|
||||
0x9C3, 0x9C7, 0x9C9, 0x0, 0x9C4, 0x9C8, 0x9CA, 0x0,
|
||||
0x9C5, 0x9C7, 0x9C9, 0x0, 0x9C6, 0x9C8, 0x9CA, 0x0,
|
||||
0x10E4, 0x9C7, 0x9C9, 0x0, 0x10E5, 0x9C8, 0x9CA, 0x0,
|
||||
0x110C, 0x9C7, 0x9C9, 0x0, 0x110D, 0x9C8, 0x9CA, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_2_1[] = {
|
||||
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
|
||||
0x98E | PALETTE_TO_STRUCT_WHITE, 0x990 | PALETTE_TO_STRUCT_WHITE, 0x98D | PALETTE_TO_STRUCT_WHITE, 0x98F | PALETTE_TO_STRUCT_WHITE, 0x992 | PALETTE_TO_STRUCT_WHITE, 0x994 | PALETTE_TO_STRUCT_WHITE, 0x991 | PALETTE_TO_STRUCT_WHITE, 0x993 | PALETTE_TO_STRUCT_WHITE,
|
||||
0x10E7 | PALETTE_TO_STRUCT_WHITE, 0x10E9 | PALETTE_TO_STRUCT_WHITE, 0x10E6 | PALETTE_TO_STRUCT_WHITE, 0x10E8 | PALETTE_TO_STRUCT_WHITE, 0x10EB | PALETTE_TO_STRUCT_WHITE, 0x10ED | PALETTE_TO_STRUCT_WHITE, 0x10EA | PALETTE_TO_STRUCT_WHITE, 0x10EC | PALETTE_TO_STRUCT_WHITE,
|
||||
0x110F | PALETTE_TO_STRUCT_WHITE, 0x1111 | PALETTE_TO_STRUCT_WHITE, 0x110E | PALETTE_TO_STRUCT_WHITE, 0x1110 | PALETTE_TO_STRUCT_WHITE, 0x1113 | PALETTE_TO_STRUCT_WHITE, 0x1115 | PALETTE_TO_STRUCT_WHITE, 0x1112 | PALETTE_TO_STRUCT_WHITE, 0x1114 | PALETTE_TO_STRUCT_WHITE,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_4_0[] = {
|
||||
0x9A9, 0x99F, 0x9B1, 0x0, 0x9A5, 0x997, 0x9AD, 0x0,
|
||||
0x99D, 0x99F, 0x9B1, 0x0, 0x995, 0x997, 0x9AD, 0x0,
|
||||
0x10F2, 0x99F, 0x9B1, 0x0, 0x10EE, 0x997, 0x9AD, 0x0,
|
||||
0x111A, 0x99F, 0x9B1, 0x0, 0x1116, 0x997, 0x9AD, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_4_1[] = {
|
||||
0x9AA, 0x9A0, 0x9B2, 0x0, 0x9A6, 0x998, 0x9AE, 0x0,
|
||||
0x99E, 0x9A0, 0x9B2, 0x0, 0x996, 0x998, 0x9AE, 0x0,
|
||||
0x10F3, 0x9A0, 0x9B2, 0x0, 0x10EF, 0x998, 0x9AE, 0x0,
|
||||
0x111B, 0x9A0, 0x9B2, 0x0, 0x1117, 0x998, 0x9AE, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_4_2[] = {
|
||||
0x9AC, 0x9A4, 0x9B4, 0x0, 0x9A8, 0x99C, 0x9B0, 0x0,
|
||||
0x9A2, 0x9A4, 0x9B4, 0x0, 0x99A, 0x99C, 0x9B0, 0x0,
|
||||
0x10F5, 0x9A4, 0x9B4, 0x0, 0x10F1, 0x99C, 0x9B0, 0x0,
|
||||
0x111D, 0x9A4, 0x9B4, 0x0, 0x1119, 0x99C, 0x9B0, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_4_3[] = {
|
||||
0x9AB, 0x9A3, 0x9B3, 0x0, 0x9A7, 0x99B, 0x9AF, 0x0,
|
||||
0x9A1, 0x9A3, 0x9B3, 0x0, 0x999, 0x99B, 0x9AF, 0x0,
|
||||
0x10F4, 0x9A3, 0x9B3, 0x0, 0x10F0, 0x99B, 0x9AF, 0x0,
|
||||
0x111C, 0x9A3, 0x9B3, 0x0, 0x1118, 0x99B, 0x9AF, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_4_4[] = {
|
||||
0x9B6, 0x9BA, 0x9BC, 0x0, 0x9B5, 0x9B9, 0x9BB, 0x0,
|
||||
0x9B8, 0x9BA, 0x9BC, 0x0, 0x9B7, 0x9B9, 0x9BB, 0x0,
|
||||
0x10F7, 0x9BA, 0x9BC, 0x0, 0x10F6, 0x9B9, 0x9BB, 0x0,
|
||||
0x111F, 0x9BA, 0x9BC, 0x0, 0x111E, 0x9B9, 0x9BB, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_4_5[] = {
|
||||
0x9BD, 0x9C1, 0x0, 0x0, 0x9BE, 0x9C2, 0x0, 0x0,
|
||||
0x9BF, 0x9C1, 0x0, 0x0, 0x9C0, 0x9C2, 0x0, 0x0,
|
||||
0x10F8, 0x9C1, 0x0, 0x0, 0x10F9, 0x9C2, 0x0, 0x0,
|
||||
0x1120, 0x9C1, 0x0, 0x0, 0x1121, 0x9C2, 0x0, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_4_6[] = {
|
||||
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
|
||||
0x98E, 0x990, 0x98D, 0x98F, 0x992, 0x994, 0x991, 0x993,
|
||||
0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC,
|
||||
0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_5_0[] = {
|
||||
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_PILLARS_BASE + 2
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_5_1[] = {
|
||||
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_PILLARS_BASE + 3
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_5_2[] = {
|
||||
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_PILLARS_BASE + 3
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_5_3[] = {
|
||||
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_PILLARS_BASE + 2
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_5_4[] = {
|
||||
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_PILLARS_BASE + 5, 0x0, 0x0, 0x0, SPR_PILLARS_BASE + 4
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_5_5[] = {
|
||||
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_PILLARS_BASE + 2
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_5_6[] = {
|
||||
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
|
||||
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_PILLARS_BASE + 2,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_3_0[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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,
|
||||
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_PILLARS_BASE + 2,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_1_1[] = {
|
||||
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
|
||||
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_6_0[] = {
|
||||
0x9CD, 0x9D9, 0x0, 0x0, 0x9CE, 0x9DA, 0x0, 0x0,
|
||||
0x9D3, 0x9D9, 0x0, 0x0, 0x9D4, 0x9DA, 0x0, 0x0,
|
||||
0x10FC, 0x9D9, 0x0, 0x0, 0x10FD, 0x9DA, 0x0, 0x0,
|
||||
0x1124, 0x9D9, 0x0, 0x0, 0x1125, 0x9DA, 0x0, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_6_1[] = {
|
||||
0x9CB, 0x9D7, 0x9DD, 0x0, 0x9D0, 0x9DC, 0x9E0, 0x0,
|
||||
0x9D1, 0x9D7, 0x9DD, 0x0, 0x9D6, 0x9DC, 0x9E0, 0x0,
|
||||
0x10FA, 0x9D7, 0x9DD, 0x0, 0x10FF, 0x9DC, 0x9E0, 0x0,
|
||||
0x1122, 0x9D7, 0x9DD, 0x0, 0x1127, 0x9DC, 0x9E0, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_6_2[] = {
|
||||
0x9CC, 0x9D8, 0x9DE, 0x0, 0x9CF, 0x9DB, 0x9DF, 0x0,
|
||||
0x9D2, 0x9D8, 0x9DE, 0x0, 0x9D5, 0x9DB, 0x9DF, 0x0,
|
||||
0x10FB, 0x9D8, 0x9DE, 0x0, 0x10FE, 0x9DB, 0x9DF, 0x0,
|
||||
0x1123, 0x9D8, 0x9DE, 0x0, 0x1126, 0x9DB, 0x9DF, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_6_3[] = {
|
||||
0x986, 0x988, 0x985, 0x987, 0x98A, 0x98C, 0x989, 0x98B,
|
||||
0x98E, 0x990, 0x98D, 0x98F, 0x992, 0x994, 0x991, 0x993,
|
||||
0x10E7, 0x10E9, 0x10E6, 0x10E8, 0x10EB, 0x10ED, 0x10EA, 0x10EC,
|
||||
0x110F, 0x1111, 0x110E, 0x1110, 0x1113, 0x1115, 0x1112, 0x1114,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_7_0[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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,
|
||||
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_8_0[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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,
|
||||
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_0_0[] = {
|
||||
0x9F2, 0x9F6, 0x9F8, 0x0, 0x9F1, 0x9F5, 0x9F7, 0x0,
|
||||
0x9F4, 0x9F6, 0x9F8, 0x0, 0x9F3, 0x9F5, 0x9F7, 0x0,
|
||||
0x1109, 0x9F6, 0x9F8, 0x0, 0x1108, 0x9F5, 0x9F7, 0x0,
|
||||
0x1131, 0x9F6, 0x9F8, 0x0, 0x1130, 0x9F5, 0x9F7, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_0_1[] = {
|
||||
0x9EE, 0x9ED, 0x9F0, 0x9EF, 0x9EA, 0x9E9, 0x9EB, 0x9EC,
|
||||
0x9E6, 0x9E5, 0x9E8, 0x9E7, 0x9E2, 0x9E1, 0x9E3, 0x9E4,
|
||||
0x1105, 0x1104, 0x1107, 0x1106, 0x1101, 0x1100, 0x1102, 0x1103,
|
||||
0x112D, 0x112C, 0x112F, 0x112E, 0x1129, 0x1128, 0x112A, 0x112B,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_1_0[] = {
|
||||
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[] = {
|
||||
0x9F9, 0x9FD, 0x9C9, 0x0, 0x9FA, 0x9FE, 0x9CA, 0x0,
|
||||
0x9FB, 0x9FD, 0x9C9, 0x0, 0x9FC, 0x9FE, 0x9CA, 0x0,
|
||||
0x110A, 0x9FD, 0x9C9, 0x0, 0x110B, 0x9FE, 0x9CA, 0x0,
|
||||
0x1132, 0x9FD, 0x9C9, 0x0, 0x1133, 0x9FE, 0x9CA, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_10_0[] = {
|
||||
0xA0B, 0xA01, 0x0, 0x0, 0xA0C, 0xA02, 0x0, 0x0,
|
||||
0xA11, 0xA01, 0x0, 0x0, 0xA12, 0xA02, 0x0, 0x0,
|
||||
0xA17, 0xA01, 0x0, 0x0, 0xA18, 0xA02, 0x0, 0x0,
|
||||
0xA1D, 0xA01, 0x0, 0x0, 0xA1E, 0xA02, 0x0, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_10_1[] = {
|
||||
0xA09, 0x9FF, 0xA05, 0x0, 0xA0E, 0xA04, 0xA08, 0x0,
|
||||
0xA0F, 0x9FF, 0xA05, 0x0, 0xA14, 0xA04, 0xA08, 0x0,
|
||||
0xA15, 0x9FF, 0xA05, 0x0, 0xA1A, 0xA04, 0xA08, 0x0,
|
||||
0xA1B, 0x9FF, 0xA05, 0x0, 0xA20, 0xA04, 0xA08, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_10_2[] = {
|
||||
0xA0A, 0xA00, 0xA06, 0x0, 0xA0D, 0xA03, 0xA07, 0x0,
|
||||
0xA10, 0xA00, 0xA06, 0x0, 0xA13, 0xA03, 0xA07, 0x0,
|
||||
0xA16, 0xA00, 0xA06, 0x0, 0xA19, 0xA03, 0xA07, 0x0,
|
||||
0xA1C, 0xA00, 0xA06, 0x0, 0xA1F, 0xA03, 0xA07, 0x0,
|
||||
};
|
||||
|
||||
static const PalSpriteID _bridge_sprite_table_11_0[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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_12_0[] = {
|
||||
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[] = {
|
||||
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[] = {
|
||||
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 uint32 * const _bridge_sprite_table_2[] = {
|
||||
_bridge_sprite_table_2_0,
|
||||
_bridge_sprite_table_2_0,
|
||||
_bridge_sprite_table_2_0,
|
||||
_bridge_sprite_table_2_0,
|
||||
_bridge_sprite_table_2_0,
|
||||
_bridge_sprite_table_2_0,
|
||||
_bridge_sprite_table_2_1,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_4[] = {
|
||||
_bridge_sprite_table_4_0,
|
||||
_bridge_sprite_table_4_1,
|
||||
_bridge_sprite_table_4_2,
|
||||
_bridge_sprite_table_4_3,
|
||||
_bridge_sprite_table_4_4,
|
||||
_bridge_sprite_table_4_5,
|
||||
_bridge_sprite_table_4_6,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_5[] = {
|
||||
_bridge_sprite_table_5_0,
|
||||
_bridge_sprite_table_5_1,
|
||||
_bridge_sprite_table_5_2,
|
||||
_bridge_sprite_table_5_3,
|
||||
_bridge_sprite_table_5_4,
|
||||
_bridge_sprite_table_5_5,
|
||||
_bridge_sprite_table_5_6,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_3[] = {
|
||||
_bridge_sprite_table_3_0,
|
||||
_bridge_sprite_table_3_1,
|
||||
_bridge_sprite_table_3_2,
|
||||
_bridge_sprite_table_3_3,
|
||||
_bridge_sprite_table_3_4,
|
||||
_bridge_sprite_table_3_5,
|
||||
_bridge_sprite_table_3_6,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_6[] = {
|
||||
_bridge_sprite_table_6_0,
|
||||
_bridge_sprite_table_6_1,
|
||||
_bridge_sprite_table_6_2,
|
||||
_bridge_sprite_table_6_2,
|
||||
_bridge_sprite_table_6_2,
|
||||
_bridge_sprite_table_6_2,
|
||||
_bridge_sprite_table_6_3,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_7[] = {
|
||||
_bridge_sprite_table_7_0,
|
||||
_bridge_sprite_table_7_1,
|
||||
_bridge_sprite_table_7_2,
|
||||
_bridge_sprite_table_7_2,
|
||||
_bridge_sprite_table_7_2,
|
||||
_bridge_sprite_table_7_2,
|
||||
_bridge_sprite_table_7_3,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_8[] = {
|
||||
_bridge_sprite_table_8_0,
|
||||
_bridge_sprite_table_8_1,
|
||||
_bridge_sprite_table_8_2,
|
||||
_bridge_sprite_table_8_2,
|
||||
_bridge_sprite_table_8_2,
|
||||
_bridge_sprite_table_8_2,
|
||||
_bridge_sprite_table_8_3,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_0[] = {
|
||||
_bridge_sprite_table_0_0,
|
||||
_bridge_sprite_table_0_0,
|
||||
_bridge_sprite_table_0_0,
|
||||
_bridge_sprite_table_0_0,
|
||||
_bridge_sprite_table_0_0,
|
||||
_bridge_sprite_table_0_0,
|
||||
_bridge_sprite_table_0_1,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_1[] = {
|
||||
_bridge_sprite_table_1_0,
|
||||
_bridge_sprite_table_1_0,
|
||||
_bridge_sprite_table_1_0,
|
||||
_bridge_sprite_table_1_0,
|
||||
_bridge_sprite_table_1_0,
|
||||
_bridge_sprite_table_1_0,
|
||||
_bridge_sprite_table_1_1,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_9[] = {
|
||||
_bridge_sprite_table_9_0,
|
||||
_bridge_sprite_table_9_0,
|
||||
_bridge_sprite_table_9_0,
|
||||
_bridge_sprite_table_9_0,
|
||||
_bridge_sprite_table_9_0,
|
||||
_bridge_sprite_table_9_0,
|
||||
_bridge_sprite_table_4_6,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_10[] = {
|
||||
_bridge_sprite_table_10_0,
|
||||
_bridge_sprite_table_10_1,
|
||||
_bridge_sprite_table_10_2,
|
||||
_bridge_sprite_table_10_2,
|
||||
_bridge_sprite_table_10_2,
|
||||
_bridge_sprite_table_10_2,
|
||||
_bridge_sprite_table_4_6,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_11[] = {
|
||||
_bridge_sprite_table_11_0,
|
||||
_bridge_sprite_table_11_1,
|
||||
_bridge_sprite_table_11_2,
|
||||
_bridge_sprite_table_11_2,
|
||||
_bridge_sprite_table_11_2,
|
||||
_bridge_sprite_table_11_2,
|
||||
_bridge_sprite_table_5_6,
|
||||
};
|
||||
|
||||
static const uint32 * const _bridge_sprite_table_12[] = {
|
||||
_bridge_sprite_table_12_0,
|
||||
_bridge_sprite_table_12_1,
|
||||
_bridge_sprite_table_12_2,
|
||||
_bridge_sprite_table_12_2,
|
||||
_bridge_sprite_table_12_2,
|
||||
_bridge_sprite_table_12_2,
|
||||
_bridge_sprite_table_3_6,
|
||||
};
|
||||
|
||||
static const uint32 * const * const _bridge_sprite_table[MAX_BRIDGES] = {
|
||||
_bridge_sprite_table_0,
|
||||
_bridge_sprite_table_1,
|
||||
_bridge_sprite_table_2,
|
||||
_bridge_sprite_table_3,
|
||||
_bridge_sprite_table_4,
|
||||
_bridge_sprite_table_5,
|
||||
_bridge_sprite_table_6,
|
||||
_bridge_sprite_table_7,
|
||||
_bridge_sprite_table_8,
|
||||
_bridge_sprite_table_9,
|
||||
_bridge_sprite_table_10,
|
||||
_bridge_sprite_table_11,
|
||||
_bridge_sprite_table_12
|
||||
};
|
1600
src/table/build_industry.h
Normal file
1600
src/table/build_industry.h
Normal file
File diff suppressed because it is too large
Load Diff
62
src/table/clear_land.h
Normal file
62
src/table/clear_land.h
Normal file
@@ -0,0 +1,62 @@
|
||||
/* $Id$ */
|
||||
|
||||
static const SpriteID _landscape_clear_sprites[8] = {
|
||||
0xFA0,
|
||||
0xFB3,
|
||||
0xFB4,
|
||||
0xFB5,
|
||||
0xFB6,
|
||||
0xFA0,
|
||||
0xFB3,
|
||||
0xFB4,
|
||||
};
|
||||
|
||||
static const byte _fence_mod_by_tileh[32] = {
|
||||
0, 2, 4, 0, 0, 2, 4, 0,
|
||||
0, 2, 4, 0, 0, 2, 4, 0,
|
||||
0, 2, 4, 0, 0, 2, 4, 4,
|
||||
0, 2, 4, 2, 0, 2, 4, 0,
|
||||
};
|
||||
|
||||
static const byte _fence_mod_by_tileh_2[32] = {
|
||||
1, 1, 5, 5, 3, 3, 1, 1,
|
||||
1, 1, 5, 5, 3, 3, 1, 1,
|
||||
1, 1, 5, 5, 3, 3, 1, 5,
|
||||
1, 1, 5, 5, 3, 3, 3, 1,
|
||||
};
|
||||
|
||||
|
||||
static const SpriteID _clear_land_fence_sprites_1[7] = {
|
||||
0xFFA,
|
||||
0x1000,
|
||||
0x1006,
|
||||
0x100C,
|
||||
0x1012,
|
||||
0x1018,
|
||||
};
|
||||
|
||||
static const SpriteID _clear_land_sprites_1[16] = {
|
||||
0x101E,
|
||||
0x1031,
|
||||
0x1044,
|
||||
0x1057,
|
||||
0x106A,
|
||||
0x107D,
|
||||
0x1090,
|
||||
0x10A3,
|
||||
0x10B6,
|
||||
};
|
||||
|
||||
static const SpriteID _clear_land_sprites_2[8] = {
|
||||
0x118D,
|
||||
0x11A0,
|
||||
0x11B3,
|
||||
0x11C6,
|
||||
};
|
||||
|
||||
static const SpriteID _clear_land_sprites_3[8] = {
|
||||
0x118D,
|
||||
0x11A0,
|
||||
0x11B3,
|
||||
0x11C6,
|
||||
};
|
105
src/table/control_codes.h
Normal file
105
src/table/control_codes.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef CONTROL_CODES_H
|
||||
#define CONTROL_CODES_H
|
||||
|
||||
/* List of string control codes used for string formatting, displaying, and
|
||||
* by strgen to generate the language files. */
|
||||
|
||||
enum {
|
||||
SCC_CONTROL_START = 0xE000,
|
||||
SCC_CONTROL_END = 0xE1FF,
|
||||
|
||||
SCC_SPRITE_START = 0xE200,
|
||||
SCC_SPRITE_END = SCC_SPRITE_START + 0xFF,
|
||||
|
||||
/* Display control codes */
|
||||
SCC_SETX = SCC_CONTROL_START,
|
||||
SCC_SETXY,
|
||||
SCC_TINYFONT,
|
||||
SCC_BIGFONT,
|
||||
|
||||
/* Formatting control codes */
|
||||
SCC_REVISION,
|
||||
SCC_STATION_FEATURES,
|
||||
SCC_INDUSTRY_NAME,
|
||||
SCC_WAYPOINT_NAME,
|
||||
SCC_STATION_NAME,
|
||||
SCC_TOWN_NAME,
|
||||
|
||||
SCC_CURRENCY_COMPACT,
|
||||
SCC_CURRENCY_COMPACT_64,
|
||||
SCC_CURRENCY,
|
||||
SCC_CURRENCY_64,
|
||||
|
||||
SCC_CARGO,
|
||||
SCC_CARGO_SHORT,
|
||||
SCC_POWER,
|
||||
SCC_VOLUME,
|
||||
SCC_VOLUME_SHORT,
|
||||
SCC_WEIGHT,
|
||||
SCC_WEIGHT_SHORT,
|
||||
SCC_FORCE,
|
||||
SCC_VELOCITY,
|
||||
|
||||
SCC_DATE_TINY,
|
||||
SCC_DATE_SHORT,
|
||||
SCC_DATE_LONG,
|
||||
|
||||
SCC_STRING1,
|
||||
SCC_STRING2,
|
||||
SCC_STRING3,
|
||||
SCC_STRING4,
|
||||
SCC_STRING5,
|
||||
|
||||
SCC_SKIP,
|
||||
SCC_STRING,
|
||||
SCC_COMMA,
|
||||
SCC_NUM,
|
||||
|
||||
SCC_STRING_ID,
|
||||
SCC_PLURAL_LIST,
|
||||
SCC_GENDER_LIST,
|
||||
SCC_GENDER_INDEX,
|
||||
SCC_ARG_INDEX,
|
||||
SCC_SETCASE,
|
||||
SCC_SWITCH_CASE,
|
||||
|
||||
/* Colour codes */
|
||||
SCC_BLUE,
|
||||
SCC_SILVER,
|
||||
SCC_GOLD,
|
||||
SCC_RED,
|
||||
SCC_PURPLE,
|
||||
SCC_LTBROWN,
|
||||
SCC_ORANGE,
|
||||
SCC_GREEN,
|
||||
SCC_YELLOW,
|
||||
SCC_DKGREEN,
|
||||
SCC_CREAM,
|
||||
SCC_BROWN,
|
||||
SCC_WHITE,
|
||||
SCC_LTBLUE,
|
||||
SCC_GRAY,
|
||||
SCC_DKBLUE,
|
||||
SCC_BLACK,
|
||||
|
||||
/* Special printable symbols.
|
||||
* These are mapped to the original glyphs */
|
||||
SCC_LESSTHAN = SCC_SPRITE_START + 0x3C,
|
||||
SCC_GREATERTHAN = SCC_SPRITE_START + 0x3E,
|
||||
SCC_UPARROW = SCC_SPRITE_START + 0x80,
|
||||
SCC_SMALLUPARROW = SCC_SPRITE_START + 0x90,
|
||||
SCC_SMALLDOWNARROW = SCC_SPRITE_START + 0x91,
|
||||
SCC_TRAIN = SCC_SPRITE_START + 0x94,
|
||||
SCC_LORRY = SCC_SPRITE_START + 0x95,
|
||||
SCC_BUS = SCC_SPRITE_START + 0x96,
|
||||
SCC_PLANE = SCC_SPRITE_START + 0x97,
|
||||
SCC_SHIP = SCC_SPRITE_START + 0x98,
|
||||
SCC_DOWNARROW = SCC_SPRITE_START + 0xAA,
|
||||
SCC_CHECKMARK = SCC_SPRITE_START + 0xAC,
|
||||
SCC_CROSS = SCC_SPRITE_START + 0xAD,
|
||||
SCC_RIGHTARROW = SCC_SPRITE_START + 0xAF,
|
||||
};
|
||||
|
||||
#endif /* CONTROL_CODES_H */
|
445
src/table/elrail_data.h
Normal file
445
src/table/elrail_data.h
Normal file
@@ -0,0 +1,445 @@
|
||||
/* $Id$ */
|
||||
/** @file elrail_data.h Stores all the data for overhead wire and pylon drawing.
|
||||
* @see elrail.c */
|
||||
|
||||
#ifndef ELRAIL_DATA_H
|
||||
#define ELRAIL_DATA_H
|
||||
|
||||
/** Tile Location group.
|
||||
* This defines whether the X and or Y coordinate of a tile is even */
|
||||
typedef enum TLG {
|
||||
XEVEN_YEVEN = 0,
|
||||
XEVEN_YODD = 1,
|
||||
XODD_YEVEN = 2,
|
||||
XODD_YODD = 3,
|
||||
TLG_END
|
||||
} TLG;
|
||||
|
||||
/** When determining the pylon configuration on the edge, two tiles are taken
|
||||
* into account: the tile being drawn itself (the home tile, the one in
|
||||
* ti->tile), and the neighbouring tile */
|
||||
typedef enum {
|
||||
TS_HOME = 0,
|
||||
TS_NEIGHBOUR = 1,
|
||||
|
||||
TS_END
|
||||
} TileSource;
|
||||
|
||||
enum {
|
||||
NUM_TRACKS_AT_PCP = 6
|
||||
};
|
||||
|
||||
/** Which PPPs are possible at all on a given PCP */
|
||||
static byte AllowedPPPonPCP[DIAGDIR_END] = {
|
||||
1 << DIR_N | 1 << DIR_E | 1 << DIR_SE | 1 << DIR_S | 1 << DIR_W | 1 << DIR_NW,
|
||||
1 << DIR_N | 1 << DIR_NE | 1 << DIR_E | 1 << DIR_S | 1 << DIR_SW | 1 << DIR_W,
|
||||
1 << DIR_N | 1 << DIR_E | 1 << DIR_SE | 1 << DIR_S | 1 << DIR_W | 1 << DIR_NW,
|
||||
1 << DIR_N | 1 << DIR_NE | 1 << DIR_E | 1 << DIR_S | 1 << DIR_SW | 1 << DIR_W,
|
||||
};
|
||||
|
||||
/** Which of the PPPs are inside the tile. For the two PPPs on the tile border
|
||||
* the following system is used: if you rotate the PCP so that it is in the
|
||||
* north, the eastern PPP belongs to the tile. */
|
||||
static byte OwnedPPPonPCP[DIAGDIR_END] = {
|
||||
1 << DIR_SE | 1 << DIR_S | 1 << DIR_SW | 1 << DIR_W,
|
||||
1 << DIR_N | 1 << DIR_SW | 1 << DIR_W | 1 << DIR_NW,
|
||||
1 << DIR_N | 1 << DIR_NE | 1 << DIR_E | 1 << DIR_NW,
|
||||
1 << DIR_NE | 1 << DIR_E | 1 << DIR_SE | 1 << DIR_S
|
||||
};
|
||||
|
||||
/** Maps a track bit onto two PCP positions */
|
||||
static const DiagDirection PCPpositions[TRACK_END][2] = {
|
||||
{DIAGDIR_NE, DIAGDIR_SW}, /* X */
|
||||
{DIAGDIR_SE, DIAGDIR_NW}, /* Y */
|
||||
{DIAGDIR_NW, DIAGDIR_NE}, /* UPPER */
|
||||
{DIAGDIR_SE, DIAGDIR_SW}, /* LOWER */
|
||||
{DIAGDIR_SW, DIAGDIR_NW}, /* LEFT */
|
||||
{DIAGDIR_NE, DIAGDIR_SE}, /* RIGHT */
|
||||
};
|
||||
|
||||
#define PCP_NOT_ON_TRACK 0xFF
|
||||
/** Preferred points of each trackbit. Those are the ones perpendicular to the
|
||||
* track, plus the point in extension of the track (to mark end-of-track). PCPs
|
||||
* which are not on either end of the track are fully preferred.
|
||||
* @see PCPpositions */
|
||||
static byte PreferredPPPofTrackAtPCP[TRACK_END][DIAGDIR_END] = {
|
||||
{ /* X */
|
||||
1 << DIR_NE | 1 << DIR_SE | 1 << DIR_NW, /* NE */
|
||||
PCP_NOT_ON_TRACK, /* SE */
|
||||
1 << DIR_SE | 1 << DIR_SW | 1 << DIR_NW, /* SW */
|
||||
PCP_NOT_ON_TRACK /* NE */
|
||||
}, { /* Y */
|
||||
PCP_NOT_ON_TRACK,
|
||||
1 << DIR_NE | 1 << DIR_SE | 1 << DIR_SW,
|
||||
PCP_NOT_ON_TRACK,
|
||||
1 << DIR_SW | 1 << DIR_NW | 1 << DIR_NE
|
||||
}, { /* UPPER */
|
||||
1 << DIR_E | 1 << DIR_N | 1 << DIR_S,
|
||||
PCP_NOT_ON_TRACK,
|
||||
PCP_NOT_ON_TRACK,
|
||||
1 << DIR_W | 1 << DIR_N | 1 << DIR_S
|
||||
}, { /* LOWER */
|
||||
PCP_NOT_ON_TRACK,
|
||||
1 << DIR_E | 1 << DIR_N | 1 << DIR_S,
|
||||
1 << DIR_W | 1 << DIR_N | 1 << DIR_S,
|
||||
PCP_NOT_ON_TRACK
|
||||
}, { /* LEFT */
|
||||
PCP_NOT_ON_TRACK,
|
||||
PCP_NOT_ON_TRACK,
|
||||
1 << DIR_S | 1 << DIR_E | 1 << DIR_W,
|
||||
1 << DIR_N | 1 << DIR_E | 1 << DIR_W
|
||||
}, { /* RIGHT */
|
||||
1 << DIR_N | 1 << DIR_E | 1 << DIR_W,
|
||||
1 << DIR_S | 1 << DIR_E | 1 << DIR_W,
|
||||
PCP_NOT_ON_TRACK,
|
||||
PCP_NOT_ON_TRACK
|
||||
}
|
||||
};
|
||||
#undef PCP_NOT_ON_TRACK
|
||||
|
||||
|
||||
#define NUM_IGNORE_GROUPS 3
|
||||
#define IGNORE_NONE 0xFF
|
||||
/** In case we have a staight line, we place pylon only every two tiles,
|
||||
* so there are certain tiles which we ignore. A straight line is found if
|
||||
* we have exactly two PPPs. */
|
||||
static byte IgnoredPCP[NUM_IGNORE_GROUPS][TLG_END][DIAGDIR_END] = {
|
||||
{ /* Ignore group 1, X and Y tracks */
|
||||
{ /* X even, Y even */
|
||||
IGNORE_NONE,
|
||||
1 << DIR_NE | 1 << DIR_SW,
|
||||
1 << DIR_NW | 1 << DIR_SE,
|
||||
IGNORE_NONE
|
||||
}, { /* X even, Y odd */
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE,
|
||||
1 << DIR_NW | 1 << DIR_SE,
|
||||
1 << DIR_NE | 1 << DIR_SW
|
||||
}, { /* X odd, Y even */
|
||||
1 << DIR_NW | 1 << DIR_SE,
|
||||
1 << DIR_NE | 1 << DIR_SW,
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE
|
||||
}, { /* X odd, Y odd */
|
||||
1 << DIR_NW | 1 << DIR_SE,
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE,
|
||||
1 << DIR_NE | 1 << DIR_SW
|
||||
}
|
||||
},
|
||||
{ /* Ignore group 2, LEFT and RIGHT tracks */
|
||||
{
|
||||
1 << DIR_E | 1 << DIR_W,
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE,
|
||||
1 << DIR_E | 1 << DIR_W
|
||||
}, {
|
||||
IGNORE_NONE,
|
||||
1 << DIR_E | 1 << DIR_W,
|
||||
1 << DIR_E | 1 << DIR_W,
|
||||
IGNORE_NONE
|
||||
}, {
|
||||
IGNORE_NONE,
|
||||
1 << DIR_E | 1 << DIR_W,
|
||||
1 << DIR_E | 1 << DIR_W,
|
||||
IGNORE_NONE
|
||||
}, {
|
||||
1 << DIR_E | 1 << DIR_W,
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE,
|
||||
1 << DIR_E | 1 << DIR_W
|
||||
}
|
||||
},
|
||||
{ /* Ignore group 3, UPPER and LOWER tracks */
|
||||
{
|
||||
1 << DIR_N | 1 << DIR_S,
|
||||
1 << DIR_N | 1 << DIR_S,
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE
|
||||
}, {
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE,
|
||||
1 << DIR_N | 1 << DIR_S,
|
||||
1 << DIR_N | 1 << DIR_S
|
||||
}, {
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE,
|
||||
1 << DIR_N | 1 << DIR_S ,
|
||||
1 << DIR_N | 1 << DIR_S
|
||||
}, {
|
||||
1 << DIR_N | 1 << DIR_S,
|
||||
1 << DIR_N | 1 << DIR_S,
|
||||
IGNORE_NONE,
|
||||
IGNORE_NONE
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
#undef NO_IGNORE
|
||||
|
||||
/** Which pylons can definately NOT be built */
|
||||
static byte DisallowedPPPofTrackAtPCP[TRACK_END][DIAGDIR_END] = {
|
||||
{1 << DIR_SW | 1 << DIR_NE, 0, 1 << DIR_SW | 1 << DIR_NE, 0 }, /* X */
|
||||
{0, 1 << DIR_NW | 1 << DIR_SE, 0, 1 << DIR_NW | 1 << DIR_SE}, /* Y */
|
||||
{1 << DIR_W | 1 << DIR_E, 0, 0, 1 << DIR_W | 1 << DIR_E }, /* UPPER */
|
||||
{0, 1 << DIR_W | 1 << DIR_E, 1 << DIR_W | 1 << DIR_E, 0 }, /* LOWER */
|
||||
{0, 0, 1 << DIR_S | 1 << DIR_N, 1 << DIR_N | 1 << DIR_S }, /* LEFT */
|
||||
{1 << DIR_S | 1 << DIR_N, 1 << DIR_S | 1 << DIR_N, 0, 0, }, /* RIGHT */
|
||||
};
|
||||
|
||||
/* This array stores which track bits can meet at a tile edge */
|
||||
static const Track TracksAtPCP[DIAGDIR_END][NUM_TRACKS_AT_PCP] = {
|
||||
{TRACK_X, TRACK_X, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
|
||||
{TRACK_Y, TRACK_Y, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
|
||||
{TRACK_X, TRACK_X, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
|
||||
{TRACK_Y, TRACK_Y, TRACK_UPPER, TRACK_LOWER, TRACK_LEFT, TRACK_RIGHT},
|
||||
};
|
||||
|
||||
/* takes each of the 6 track bits from the array above and
|
||||
* assigns it to the home tile or neighbour tile */
|
||||
static const TileSource TrackSourceTile[DIAGDIR_END][NUM_TRACKS_AT_PCP] = {
|
||||
{TS_HOME, TS_NEIGHBOUR, TS_HOME , TS_NEIGHBOUR, TS_NEIGHBOUR, TS_HOME },
|
||||
{TS_HOME, TS_NEIGHBOUR, TS_NEIGHBOUR, TS_HOME , TS_NEIGHBOUR, TS_HOME },
|
||||
{TS_HOME, TS_NEIGHBOUR, TS_NEIGHBOUR, TS_HOME , TS_HOME , TS_NEIGHBOUR},
|
||||
{TS_HOME, TS_NEIGHBOUR, TS_HOME , TS_NEIGHBOUR, TS_HOME , TS_NEIGHBOUR},
|
||||
};
|
||||
|
||||
/* Several PPPs maybe exist, here they are sorted in order of preference. */
|
||||
static const Direction PPPorder[DIAGDIR_END][TLG_END][DIR_END] = { /* X - Y */
|
||||
{ /* PCP 0 */
|
||||
{DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_N, DIR_E, DIR_S, DIR_W}, /* evn - evn */
|
||||
{DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_S, DIR_W, DIR_N, DIR_E}, /* evn - odd */
|
||||
{DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_S, DIR_W, DIR_N, DIR_E}, /* odd - evn */
|
||||
{DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_N, DIR_E, DIR_S, DIR_W}, /* odd - odd */
|
||||
}, {/* PCP 1 */
|
||||
{DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_S, DIR_E, DIR_N, DIR_W}, /* evn - evn */
|
||||
{DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_N, DIR_W, DIR_S, DIR_E}, /* evn - odd */
|
||||
{DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_N, DIR_W, DIR_S, DIR_E}, /* odd - evn */
|
||||
{DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_S, DIR_E, DIR_N, DIR_W}, /* odd - odd */
|
||||
}, {/* PCP 2 */
|
||||
{DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_S, DIR_W, DIR_N, DIR_E}, /* evn - evn */
|
||||
{DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_N, DIR_E, DIR_S, DIR_W}, /* evn - odd */
|
||||
{DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_N, DIR_E, DIR_S, DIR_W}, /* odd - evn */
|
||||
{DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_S, DIR_W, DIR_N, DIR_E}, /* odd - odd */
|
||||
}, {/* PCP 3 */
|
||||
{DIR_NE, DIR_NW, DIR_SE, DIR_SW, DIR_N, DIR_W, DIR_S, DIR_E}, /* evn - evn */
|
||||
{DIR_NE, DIR_SE, DIR_SW, DIR_NW, DIR_S, DIR_E, DIR_N, DIR_W}, /* evn - odd */
|
||||
{DIR_SW, DIR_NW, DIR_NE, DIR_SE, DIR_S, DIR_E, DIR_N, DIR_W}, /* odd - evn */
|
||||
{DIR_SW, DIR_SE, DIR_NE, DIR_NW, DIR_N, DIR_W, DIR_S, DIR_E}, /* odd - odd */
|
||||
}
|
||||
};
|
||||
/* Geometric placement of the PCP relative to the tile origin */
|
||||
static const int8 x_pcp_offsets[DIAGDIR_END] = {0, 8, 15, 8};
|
||||
static const int8 y_pcp_offsets[DIAGDIR_END] = {8, 15, 8, 0};
|
||||
/* Geometric placement of the PPP relative to the PCP*/
|
||||
static const int8 x_ppp_offsets[DIR_END] = {-3, -4, -3, 0, 3, 4, 3, 0};
|
||||
static const int8 y_ppp_offsets[DIR_END] = {-3, 0, 3, 4, 3, 0, -3, -4};
|
||||
/* The type of pylon to draw at each PPP */
|
||||
static const SpriteID pylons_normal[] = {
|
||||
SPR_PYLON_EW_N,
|
||||
SPR_PYLON_Y_NE,
|
||||
SPR_PYLON_NS_E,
|
||||
SPR_PYLON_X_SE,
|
||||
SPR_PYLON_EW_S,
|
||||
SPR_PYLON_Y_SW,
|
||||
SPR_PYLON_NS_W,
|
||||
SPR_PYLON_X_NW
|
||||
};
|
||||
|
||||
static const SpriteID pylons_bridge[] = {
|
||||
SPR_PYLON_X_NW,
|
||||
SPR_PYLON_X_SE,
|
||||
SPR_PYLON_Y_NE,
|
||||
SPR_PYLON_Y_SW
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
SpriteID image;
|
||||
int8 x_offset;
|
||||
int8 y_offset;
|
||||
int8 x_size;
|
||||
int8 y_size;
|
||||
int8 z_size;
|
||||
int8 z_offset;
|
||||
} SortableSpriteStruct;
|
||||
|
||||
enum {
|
||||
/** Distance between wire and rail */
|
||||
ELRAIL_ELEVATION = 8,
|
||||
/** Corrects an off-by-one error in some places (tileh 12 and 9) (TODO -- find source of error) */
|
||||
ELRAIL_ELEV_CORR = ELRAIL_ELEVATION + 1,
|
||||
/** Wires that a draw one level higher than the north corner. */
|
||||
ELRAIL_ELEVRAISE = ELRAIL_ELEVATION + TILE_HEIGHT
|
||||
};
|
||||
|
||||
static const SortableSpriteStruct CatenarySpriteData[] = {
|
||||
/* X direction */
|
||||
/* Flat tiles: */
|
||||
/* Wires */
|
||||
{ SPR_WIRE_X_SW, 0, 8, 16, 1, 1, ELRAIL_ELEVATION }, //! 0: Wire in X direction, pylon on the SW end only
|
||||
{ SPR_WIRE_X_NE, 0, 8, 16, 1, 1, ELRAIL_ELEVATION }, //! 1: Wire in X direction, pylon on the NE end
|
||||
{ SPR_WIRE_X_SHORT, 0, 8, 16, 1, 1, ELRAIL_ELEVATION }, //! 2: Wire in X direction, pylon on both ends
|
||||
|
||||
/* "up" tiles */
|
||||
/* Wires */
|
||||
{ SPR_WIRE_X_SW_UP, 0, 8, 16, 8, 1, ELRAIL_ELEVRAISE }, //! 3: Wire in X pitch up, pylon on the SW end only
|
||||
{ SPR_WIRE_X_NE_UP, 0, 8, 16, 8, 1, ELRAIL_ELEVRAISE }, //! 4: Wire in X pitch up, pylon on the NE end
|
||||
{ SPR_WIRE_X_SHORT_UP, 0, 8, 16, 8, 1, ELRAIL_ELEVRAISE }, //! 5: Wire in X pitch up, pylon on both ends
|
||||
|
||||
/* "down" tiles */
|
||||
/* Wires */
|
||||
{ SPR_WIRE_X_SW_DOWN, 0, 8, 16, 8, 1, ELRAIL_ELEV_CORR }, //! 6: Wire in X pitch down, pylon on the SW end
|
||||
{ SPR_WIRE_X_NE_DOWN, 0, 8, 16, 8, 1, ELRAIL_ELEV_CORR }, //! 7: Wire in X pitch down, pylon on the NE end
|
||||
{ SPR_WIRE_X_SHORT_DOWN, 0, 8, 16, 8, 1, ELRAIL_ELEV_CORR }, //! 8: Wire in X pitch down, pylon on both ends
|
||||
|
||||
|
||||
/* Y direction */
|
||||
/* Flat tiles: */
|
||||
/* Wires */
|
||||
{ SPR_WIRE_Y_SE, 8, 0, 1, 16, 1, ELRAIL_ELEVATION }, //! 9: Wire in Y direction, pylon on the SE end only
|
||||
{ SPR_WIRE_Y_NW, 8, 0, 1, 16, 1, ELRAIL_ELEVATION }, //!10: Wire in Y direction, pylon on the NW end
|
||||
{ SPR_WIRE_Y_SHORT, 8, 0, 1, 16, 1, ELRAIL_ELEVATION }, //!11: Wire in Y direction, pylon on both ends
|
||||
|
||||
/* "up" tiles */
|
||||
/* Wires */
|
||||
{ SPR_WIRE_Y_SE_UP, 8, 0, 8, 16, 1, ELRAIL_ELEVRAISE }, //!12: Wire in Y pitch up, pylon on the SE end only
|
||||
{ SPR_WIRE_Y_NW_UP, 8, 0, 8, 16, 1, ELRAIL_ELEVRAISE }, //!13: Wire in Y pitch up, pylon on the NW end
|
||||
{ SPR_WIRE_Y_SHORT_UP, 8, 0, 8, 16, 1, ELRAIL_ELEVRAISE }, //!14: Wire in Y pitch up, pylon on both ends
|
||||
|
||||
/* "down" tiles */
|
||||
/* Wires */
|
||||
{ SPR_WIRE_Y_SE_DOWN, 8, 0, 8, 16, 1, ELRAIL_ELEV_CORR }, //!15: Wire in Y pitch down, pylon on the SE end
|
||||
{ SPR_WIRE_Y_NW_DOWN, 8, 0, 8, 16, 1, ELRAIL_ELEV_CORR }, //!16: Wire in Y pitch down, pylon on the NW end
|
||||
{ SPR_WIRE_Y_SHORT_DOWN, 8, 0, 8, 16, 1, ELRAIL_ELEV_CORR }, //!17: Wire in Y pitch down, pylon on both ends
|
||||
|
||||
/* NS Direction */
|
||||
{ SPR_WIRE_NS_SHORT, 8, 0, 8, 8, 1, ELRAIL_ELEVATION }, //!18: LEFT trackbit wire, pylon on both ends
|
||||
{ SPR_WIRE_NS_SHORT, 0, 8, 8, 8, 1, ELRAIL_ELEVATION }, //!19: RIGHT trackbit wire, pylon on both ends
|
||||
|
||||
{ SPR_WIRE_NS_N, 8, 0, 8, 8, 1, ELRAIL_ELEVATION }, //!20: LEFT trackbit wire, pylon on N end
|
||||
{ SPR_WIRE_NS_N, 0, 8, 8, 8, 1, ELRAIL_ELEVATION }, //!21: RIGHT trackbit wire, pylon on N end
|
||||
|
||||
{ SPR_WIRE_NS_S, 8, 0, 8, 8, 1, ELRAIL_ELEVATION }, //!22: LEFT trackbit wire, pylon on S end
|
||||
{ SPR_WIRE_NS_S, 0, 8, 8, 8, 1, ELRAIL_ELEVATION }, //!23: RIGHT trackbit wire, pylon on S end
|
||||
|
||||
/* EW Direction */
|
||||
{ SPR_WIRE_EW_SHORT, 8, 0, 8, 8, 1, ELRAIL_ELEVATION }, //!24: UPPER trackbit wire, pylon on both ends
|
||||
{ SPR_WIRE_EW_SHORT, 16, 8, 8, 8, 1, ELRAIL_ELEVATION }, //!25: LOWER trackbit wire, pylon on both ends
|
||||
|
||||
{ SPR_WIRE_EW_W, 8, 0, 8, 8, 1, ELRAIL_ELEVATION }, //!28: UPPER trackbit wire, pylon on both ends
|
||||
{ SPR_WIRE_EW_W, 16, 8, 8, 8, 1, ELRAIL_ELEVATION }, //!29: LOWER trackbit wire, pylon on both ends
|
||||
|
||||
{ SPR_WIRE_EW_E, 8, 0, 8, 8, 1, ELRAIL_ELEVATION }, //!32: UPPER trackbit wire, pylon on both ends
|
||||
{ SPR_WIRE_EW_E, 16, 8, 8, 8, 1, ELRAIL_ELEVATION } //!33: LOWER trackbit wire, pylon on both ends
|
||||
};
|
||||
|
||||
static const SortableSpriteStruct CatenarySpriteData_Depot[] = {
|
||||
{ SPR_WIRE_DEPOT_NE, 0, 8, 8, 1, 1, ELRAIL_ELEVATION }, //! Wire for NE depot exit
|
||||
{ SPR_WIRE_DEPOT_SE, 8, 0, 1, 8, 1, ELRAIL_ELEVATION }, //! Wire for SE depot exit
|
||||
{ SPR_WIRE_DEPOT_SW, 0, 8, 8, 1, 1, ELRAIL_ELEVATION }, //! Wire for SW depot exit
|
||||
{ SPR_WIRE_DEPOT_NW, 8, 0, 1, 8, 1, ELRAIL_ELEVATION } //! Wire for NW depot exit
|
||||
};
|
||||
|
||||
/** Refers to a certain element of the catenary.
|
||||
* Identifiers for Wires:
|
||||
* <ol><li>Direction of the wire</li>
|
||||
* <li>Slope of the tile for diagonals, placement inside the track for horiz/vertical pieces</li>
|
||||
* <li>Place where a pylon shoule be</li></ol>
|
||||
* Identifiers for Pylons:
|
||||
* <ol><li>Direction of the wire</li>
|
||||
* <li>Slope of the tile</li>
|
||||
* <li>Position of the Pylon relative to the track</li>
|
||||
* <li>Position of the Pylon inside the tile</li></ol>
|
||||
*/
|
||||
typedef enum {
|
||||
WIRE_X_FLAT_SW,
|
||||
WIRE_X_FLAT_NE,
|
||||
WIRE_X_FLAT_BOTH,
|
||||
|
||||
WIRE_X_UP_SW,
|
||||
WIRE_X_UP_NE,
|
||||
WIRE_X_UP_BOTH,
|
||||
|
||||
WIRE_X_DOWN_SW,
|
||||
WIRE_X_DOWN_NE,
|
||||
WIRE_X_DOWN_BOTH,
|
||||
|
||||
WIRE_Y_FLAT_SE,
|
||||
WIRE_Y_FLAT_NW,
|
||||
WIRE_Y_FLAT_BOTH,
|
||||
|
||||
WIRE_Y_UP_SE,
|
||||
WIRE_Y_UP_NW,
|
||||
WIRE_Y_UP_BOTH,
|
||||
|
||||
WIRE_Y_DOWN_SE,
|
||||
WIRE_Y_DOWN_NW,
|
||||
WIRE_Y_DOWN_BOTH,
|
||||
|
||||
WIRE_NS_W_BOTH,
|
||||
WIRE_NS_E_BOTH,
|
||||
|
||||
WIRE_NS_W_N,
|
||||
WIRE_NS_E_N,
|
||||
|
||||
WIRE_NS_W_S,
|
||||
WIRE_NS_E_S,
|
||||
|
||||
WIRE_EW_N_BOTH,
|
||||
WIRE_EW_S_BOTH,
|
||||
|
||||
WIRE_EW_N_W,
|
||||
WIRE_EW_S_W,
|
||||
|
||||
WIRE_EW_N_E,
|
||||
WIRE_EW_S_E,
|
||||
|
||||
INVALID_CATENARY = 0xFF
|
||||
} CatenarySprite;
|
||||
|
||||
/* Selects a Wire (with white and grey ends) depending on whether:
|
||||
* a) none (should never happen)
|
||||
* b) the first
|
||||
* c) the second
|
||||
* d) both
|
||||
* PCP exists.*/
|
||||
static const CatenarySprite Wires[5][TRACK_END][4] = {
|
||||
{ /* Tileh == 0 */
|
||||
{INVALID_CATENARY, WIRE_X_FLAT_NE, WIRE_X_FLAT_SW, WIRE_X_FLAT_BOTH},
|
||||
{INVALID_CATENARY, WIRE_Y_FLAT_SE, WIRE_Y_FLAT_NW, WIRE_Y_FLAT_BOTH},
|
||||
{INVALID_CATENARY, WIRE_EW_N_W, WIRE_EW_N_E, WIRE_EW_N_BOTH},
|
||||
{INVALID_CATENARY, WIRE_EW_S_E, WIRE_EW_S_W, WIRE_EW_S_BOTH},
|
||||
{INVALID_CATENARY, WIRE_NS_W_S, WIRE_NS_W_N, WIRE_NS_W_BOTH},
|
||||
{INVALID_CATENARY, WIRE_NS_E_N, WIRE_NS_E_S, WIRE_NS_E_BOTH},
|
||||
}, { /* Tileh == 3 */
|
||||
{INVALID_CATENARY, WIRE_X_UP_NE, WIRE_X_UP_SW, WIRE_X_UP_BOTH},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
}, { /* Tileh == 6 */
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, WIRE_Y_UP_SE, WIRE_Y_UP_NW, WIRE_Y_UP_BOTH},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
}, { /* Tileh == 9 */
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, WIRE_Y_DOWN_SE, WIRE_Y_DOWN_NW, WIRE_Y_DOWN_BOTH},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
}, { /* Tileh == 12 */
|
||||
{INVALID_CATENARY, WIRE_X_DOWN_NE, WIRE_X_DOWN_SW, WIRE_X_DOWN_BOTH},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
{INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY, INVALID_CATENARY},
|
||||
}
|
||||
};
|
||||
|
||||
#endif /* ELRAIL_DATA_H */
|
689
src/table/engines.h
Normal file
689
src/table/engines.h
Normal file
@@ -0,0 +1,689 @@
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef ENGINES_H
|
||||
#define ENGINES_H
|
||||
|
||||
/** @file table/engines.h
|
||||
* This file contains all the data for vehicles
|
||||
*/
|
||||
|
||||
#include "../sound.h"
|
||||
|
||||
/** Writes the properties of a train or road vehicle into the EngineInfo struct.
|
||||
* @see EngineInfo
|
||||
* @param a Introduction date
|
||||
* @param e Rail Type of the vehicle
|
||||
* @param f Bitmask of the climates
|
||||
* @note the 5 between d and e is the load amount
|
||||
*/
|
||||
#define MK(a, b, c, d, e, f) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, b, c, d, 5, e, f, 0, 8, 0, 0 }
|
||||
/** Writes the properties of a train carriage into the EngineInfo struct.
|
||||
* @see EngineInfo
|
||||
* @param a Introduction date
|
||||
* @param e Rail Type of the vehicle
|
||||
* @param f Bitmask of the climates
|
||||
* @note the 0x80 in parameter b sets the "is carriage bit"
|
||||
* @note the 5 between d and e is the load amount
|
||||
*/
|
||||
#define MW(a, b, c, d, e, f) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, b | 0x80, c, d, 5, e, f, 0, 8, 0, 0 }
|
||||
|
||||
/** Writes the properties of a ship into the EngineInfo struct.
|
||||
* @see MK
|
||||
* @note the 10 between d and e is the load amount
|
||||
*/
|
||||
#define MS(a, b, c, d, e, f) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, b, c, d, 10, e, f, 0, 8, 0, 0 }
|
||||
|
||||
/** Writes the properties of an aeroplane into the EngineInfo struct.
|
||||
* @see MK
|
||||
* @note the 20 between d and e is the load amount
|
||||
*/
|
||||
#define MA(a, b, c, d, e, f) { DAYS_TILL_ORIGINAL_BASE_YEAR + a, b, c, d, 20, e, f, 0, 8, 0, 0 }
|
||||
|
||||
// Rail types
|
||||
// R = Conventional railway
|
||||
// E = Electrified railway
|
||||
// M = Monorail
|
||||
// L = MagLev
|
||||
#define R 0
|
||||
#define E 1
|
||||
#define M 2
|
||||
#define L 3
|
||||
// Climates
|
||||
// T = Temperate
|
||||
// A = Arctic
|
||||
// S = Sub-Tropic
|
||||
// Y = Toyland
|
||||
#define T 1
|
||||
#define A 2
|
||||
#define S 4
|
||||
#define Y 8
|
||||
const EngineInfo orig_engine_info[] = {
|
||||
MK( 1827, 20, 15, 30, R, T ), /* 0 Kirby Paul Tank (Steam) */
|
||||
MK( 12784, 20, 22, 30, R, A|S ), /* 1 MJS 250 (Diesel) */
|
||||
MK( 9497, 20, 20, 50, R, Y), /* 2 Ploddyphut Choo-Choo */
|
||||
MK( 11688, 20, 20, 30, R, Y), /* 3 Powernaut Choo-Choo */
|
||||
MK( 16802, 20, 20, 30, R, Y), /* 4 Mightymover Choo-Choo */
|
||||
MK( 18993, 20, 20, 30, R, Y), /* 5 Ploddyphut Diesel */
|
||||
MK( 20820, 20, 20, 30, R, Y), /* 6 Powernaut Diesel */
|
||||
MK( 8766, 20, 20, 30, R, A|S ), /* 7 Wills 2-8-0 (Steam) */
|
||||
MK( 5114, 20, 21, 30, R, T ), /* 8 Chaney 'Jubilee' (Steam) */
|
||||
MK( 5479, 20, 20, 30, R, T ), /* 9 Ginzu 'A4' (Steam) */
|
||||
MK( 12419, 20, 23, 25, R, T ), /* 10 SH '8P' (Steam) */
|
||||
MK( 13149, 20, 12, 30, R, T ), /* 11 Manley-Morel DMU (Diesel) */
|
||||
MK( 23376, 20, 15, 35, R, T ), /* 12 'Dash' (Diesel) */
|
||||
MK( 14976, 20, 18, 28, R, T ), /* 13 SH/Hendry '25' (Diesel) */
|
||||
MK( 14245, 20, 20, 30, R, T ), /* 14 UU '37' (Diesel) */
|
||||
MK( 15341, 20, 22, 33, R, T ), /* 15 Floss '47' (Diesel) */
|
||||
MK( 14976, 20, 20, 25, R, A|S ), /* 16 CS 4000 (Diesel) */
|
||||
MK( 16437, 20, 20, 30, R, A|S ), /* 17 CS 2400 (Diesel) */
|
||||
MK( 18993, 20, 22, 30, R, A|S ), /* 18 Centennial (Diesel) */
|
||||
MK( 13880, 20, 22, 30, R, A|S ), /* 19 Kelling 3100 (Diesel) */
|
||||
MK( 20454, 20, 22, 30, R, A|S ), /* 20 Turner Turbo (Diesel) */
|
||||
MK( 16071, 20, 22, 30, R, A|S ), /* 21 MJS 1000 (Diesel) */
|
||||
MK( 20820, 20, 20, 25, R, T ), /* 22 SH '125' (Diesel) */
|
||||
MK( 16437, 20, 23, 30, E, T ), /* 23 SH '30' (Electric) */
|
||||
MK( 19359, 20, 23, 80, E, T ), /* 24 SH '40' (Electric) */
|
||||
MK( 23376, 20, 25, 30, E, T ), /* 25 'T.I.M.' (Electric) */
|
||||
MK( 26298, 20, 25, 50, E, T ), /* 26 'AsiaStar' (Electric) */
|
||||
MW( 1827, 20, 20, 50, R, T|A|S|Y), /* 27 Passenger Carriage */
|
||||
MW( 1827, 20, 20, 50, R, T|A|S|Y), /* 28 Mail Van */
|
||||
MW( 1827, 20, 20, 50, R, T|A ), /* 29 Coal Truck */
|
||||
MW( 1827, 20, 20, 50, R, T|A|S ), /* 30 Oil Tanker */
|
||||
MW( 1827, 20, 20, 50, R, T|A ), /* 31 Livestock Van */
|
||||
MW( 1827, 20, 20, 50, R, T|A|S ), /* 32 Goods Van */
|
||||
MW( 1827, 20, 20, 50, R, T|A|S ), /* 33 Grain Hopper */
|
||||
MW( 1827, 20, 20, 50, R, T|A|S ), /* 34 Wood Truck */
|
||||
MW( 1827, 20, 20, 50, R, T ), /* 35 Iron Ore Hopper */
|
||||
MW( 1827, 20, 20, 50, R, T ), /* 36 Steel Truck */
|
||||
MW( 1827, 20, 20, 50, R, T|A|S ), /* 37 Armoured Van */
|
||||
MW( 1827, 20, 20, 50, R, A|S ), /* 38 Food Van */
|
||||
MW( 1827, 20, 20, 50, R, A ), /* 39 Paper Truck */
|
||||
MW( 1827, 20, 20, 50, R, S ), /* 40 Copper Ore Hopper */
|
||||
MW( 1827, 20, 20, 50, R, S ), /* 41 Water Tanker */
|
||||
MW( 1827, 20, 20, 50, R, S ), /* 42 Fruit Truck */
|
||||
MW( 1827, 20, 20, 50, R, S ), /* 43 Rubber Truck */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 44 Sugar Truck */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 45 Candyfloss Hopper */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 46 Toffee Hopper */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 47 Bubble Van */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 48 Cola Tanker */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 49 Sweet Van */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 50 Toy Van */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 51 Battery Truck */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 52 Fizzy Drink Truck */
|
||||
MW( 1827, 20, 20, 50, R, Y), /* 53 Plastic Truck */
|
||||
MK( 28490, 20, 20, 50, M, T|A|S ), /* 54 'X2001' (Electric) */
|
||||
MK( 31047, 20, 20, 50, M, T|A|S ), /* 55 'Millennium Z1' (Electric) */
|
||||
MK( 28855, 20, 20, 50, M, Y), /* 56 Wizzowow Z99 */
|
||||
MW( 1827, 20, 20, 50, M, T|A|S|Y), /* 57 Passenger Carriage */
|
||||
MW( 1827, 20, 20, 50, M, T|A|S|Y), /* 58 Mail Van */
|
||||
MW( 1827, 20, 20, 50, M, T|A ), /* 59 Coal Truck */
|
||||
MW( 1827, 20, 20, 50, M, T|A|S ), /* 60 Oil Tanker */
|
||||
MW( 1827, 20, 20, 50, M, T|A ), /* 61 Livestock Van */
|
||||
MW( 1827, 20, 20, 50, M, T|A|S ), /* 62 Goods Van */
|
||||
MW( 1827, 20, 20, 50, M, T|A|S ), /* 63 Grain Hopper */
|
||||
MW( 1827, 20, 20, 50, M, T|A|S ), /* 64 Wood Truck */
|
||||
MW( 1827, 20, 20, 50, M, T ), /* 65 Iron Ore Hopper */
|
||||
MW( 1827, 20, 20, 50, M, T ), /* 66 Steel Truck */
|
||||
MW( 1827, 20, 20, 50, M, T|A|S ), /* 67 Armoured Van */
|
||||
MW( 1827, 20, 20, 50, M, A|S ), /* 68 Food Van */
|
||||
MW( 1827, 20, 20, 50, M, A ), /* 69 Paper Truck */
|
||||
MW( 1827, 20, 20, 50, M, S ), /* 70 Copper Ore Hopper */
|
||||
MW( 1827, 20, 20, 50, M, S ), /* 71 Water Tanker */
|
||||
MW( 1827, 20, 20, 50, M, S ), /* 72 Fruit Truck */
|
||||
MW( 1827, 20, 20, 50, M, S ), /* 73 Rubber Truck */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 74 Sugar Truck */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 75 Candyfloss Hopper */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 76 Toffee Hopper */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 77 Bubble Van */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 78 Cola Tanker */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 79 Sweet Van */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 80 Toy Van */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 81 Battery Truck */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 82 Fizzy Drink Truck */
|
||||
MW( 1827, 20, 20, 50, M, Y), /* 83 Plastic Truck */
|
||||
MK( 36525, 20, 20, 50, L, T|A|S ), /* 84 Lev1 'Leviathan' (Electric) */
|
||||
MK( 39447, 20, 20, 50, L, T|A|S ), /* 85 Lev2 'Cyclops' (Electric) */
|
||||
MK( 42004, 20, 20, 50, L, T|A|S ), /* 86 Lev3 'Pegasus' (Electric) */
|
||||
MK( 42735, 20, 20, 50, L, T|A|S ), /* 87 Lev4 'Chimaera' (Electric) */
|
||||
MK( 36891, 20, 20, 60, L, Y), /* 88 Wizzowow Rocketeer */
|
||||
MW( 1827, 20, 20, 50, L, T|A|S|Y), /* 89 Passenger Carriage */
|
||||
MW( 1827, 20, 20, 50, L, T|A|S|Y), /* 90 Mail Van */
|
||||
MW( 1827, 20, 20, 50, L, T|A ), /* 91 Coal Truck */
|
||||
MW( 1827, 20, 20, 50, L, T|A|S ), /* 92 Oil Tanker */
|
||||
MW( 1827, 20, 20, 50, L, T|A ), /* 93 Livestock Van */
|
||||
MW( 1827, 20, 20, 50, L, T|A|S ), /* 94 Goods Van */
|
||||
MW( 1827, 20, 20, 50, L, T|A|S ), /* 95 Grain Hopper */
|
||||
MW( 1827, 20, 20, 50, L, T|A|S ), /* 96 Wood Truck */
|
||||
MW( 1827, 20, 20, 50, L, T ), /* 97 Iron Ore Hopper */
|
||||
MW( 1827, 20, 20, 50, L, T ), /* 98 Steel Truck */
|
||||
MW( 1827, 20, 20, 50, L, T|A|S ), /* 99 Armoured Van */
|
||||
MW( 1827, 20, 20, 50, L, A|S ), /* 100 Food Van */
|
||||
MW( 1827, 20, 20, 50, L, A ), /* 101 Paper Truck */
|
||||
MW( 1827, 20, 20, 50, L, S ), /* 102 Copper Ore Hopper */
|
||||
MW( 1827, 20, 20, 50, L, S ), /* 103 Water Tanker */
|
||||
MW( 1827, 20, 20, 50, L, S ), /* 104 Fruit Truck */
|
||||
MW( 1827, 20, 20, 50, L, S ), /* 105 Rubber Truck */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 106 Sugar Truck */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 107 Candyfloss Hopper */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 108 Toffee Hopper */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 109 Bubble Van */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 110 Cola Tanker */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 111 Sweet Van */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 112 Toy Van */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 113 Battery Truck */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 114 Fizzy Drink Truck */
|
||||
MW( 1827, 20, 20, 50, L, Y), /* 115 Plastic Truck */
|
||||
MK( 3378, 20, 12, 40, 0, T|A|S ), /* 116 MPS Regal Bus */
|
||||
MK( 16071, 20, 15, 30, 0, T|A|S ), /* 117 Hereford Leopard Bus */
|
||||
MK( 24107, 20, 15, 40, 0, T|A|S ), /* 118 Foster Bus */
|
||||
MK( 32142, 20, 15, 80, 0, T|A|S ), /* 119 Foster MkII Superbus */
|
||||
MK( 9132, 20, 15, 40, 0, Y), /* 120 Ploddyphut MkI Bus */
|
||||
MK( 18993, 20, 15, 40, 0, Y), /* 121 Ploddyphut MkII Bus */
|
||||
MK( 32873, 20, 15, 80, 0, Y), /* 122 Ploddyphut MkIII Bus */
|
||||
MK( 5479, 20, 15, 55, 0, T|A ), /* 123 Balogh Coal Truck */
|
||||
MK( 20089, 20, 15, 55, 0, T|A ), /* 124 Uhl Coal Truck */
|
||||
MK( 33969, 20, 15, 85, 0, T|A ), /* 125 DW Coal Truck */
|
||||
MK( 5479, 20, 15, 55, 0, T|A|S ), /* 126 MPS Mail Truck */
|
||||
MK( 21550, 20, 15, 55, 0, T|A|S ), /* 127 Reynard Mail Truck */
|
||||
MK( 35795, 20, 15, 85, 0, T|A|S ), /* 128 Perry Mail Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 129 MightyMover Mail Truck */
|
||||
MK( 21550, 20, 15, 55, 0, Y), /* 130 Powernaught Mail Truck */
|
||||
MK( 35795, 20, 15, 85, 0, Y), /* 131 Wizzowow Mail Truck */
|
||||
MK( 5479, 20, 15, 55, 0, T|A|S ), /* 132 Witcombe Oil Tanker */
|
||||
MK( 19359, 20, 15, 55, 0, T|A|S ), /* 133 Foster Oil Tanker */
|
||||
MK( 31047, 20, 15, 85, 0, T|A|S ), /* 134 Perry Oil Tanker */
|
||||
MK( 5479, 20, 15, 55, 0, T|A ), /* 135 Talbott Livestock Van */
|
||||
MK( 21915, 20, 15, 55, 0, T|A ), /* 136 Uhl Livestock Van */
|
||||
MK( 37256, 20, 15, 85, 0, T|A ), /* 137 Foster Livestock Van */
|
||||
MK( 5479, 20, 15, 55, 0, T|A|S ), /* 138 Balogh Goods Truck */
|
||||
MK( 19724, 20, 15, 55, 0, T|A|S ), /* 139 Craighead Goods Truck */
|
||||
MK( 31047, 20, 15, 85, 0, T|A|S ), /* 140 Goss Goods Truck */
|
||||
MK( 5479, 20, 15, 55, 0, T|A|S ), /* 141 Hereford Grain Truck */
|
||||
MK( 21185, 20, 15, 55, 0, T|A|S ), /* 142 Thomas Grain Truck */
|
||||
MK( 32873, 20, 15, 85, 0, T|A|S ), /* 143 Goss Grain Truck */
|
||||
MK( 5479, 20, 15, 55, 0, T|A|S ), /* 144 Witcombe Wood Truck */
|
||||
MK( 19724, 20, 15, 55, 0, T|A|S ), /* 145 Foster Wood Truck */
|
||||
MK( 35430, 20, 15, 85, 0, T|A|S ), /* 146 Moreland Wood Truck */
|
||||
MK( 5479, 20, 15, 55, 0, T ), /* 147 MPS Iron Ore Truck */
|
||||
MK( 20820, 20, 15, 55, 0, T ), /* 148 Uhl Iron Ore Truck */
|
||||
MK( 33238, 20, 15, 85, 0, T ), /* 149 Chippy Iron Ore Truck */
|
||||
MK( 5479, 20, 15, 55, 0, T ), /* 150 Balogh Steel Truck */
|
||||
MK( 21185, 20, 15, 55, 0, T ), /* 151 Uhl Steel Truck */
|
||||
MK( 31777, 20, 15, 85, 0, T ), /* 152 Kelling Steel Truck */
|
||||
MK( 5479, 20, 15, 55, 0, T|A|S ), /* 153 Balogh Armoured Truck */
|
||||
MK( 22281, 20, 15, 55, 0, T|A|S ), /* 154 Uhl Armoured Truck */
|
||||
MK( 33603, 20, 15, 85, 0, T|A|S ), /* 155 Foster Armoured Truck */
|
||||
MK( 5479, 20, 15, 55, 0, A|S ), /* 156 Foster Food Van */
|
||||
MK( 18628, 20, 15, 55, 0, A|S ), /* 157 Perry Food Van */
|
||||
MK( 30681, 20, 15, 85, 0, A|S ), /* 158 Chippy Food Van */
|
||||
MK( 5479, 20, 15, 55, 0, A ), /* 159 Uhl Paper Truck */
|
||||
MK( 21185, 20, 15, 55, 0, A ), /* 160 Balogh Paper Truck */
|
||||
MK( 31777, 20, 15, 85, 0, A ), /* 161 MPS Paper Truck */
|
||||
MK( 5479, 20, 15, 55, 0, S ), /* 162 MPS Copper Ore Truck */
|
||||
MK( 20820, 20, 15, 55, 0, S ), /* 163 Uhl Copper Ore Truck */
|
||||
MK( 33238, 20, 15, 85, 0, S ), /* 164 Goss Copper Ore Truck */
|
||||
MK( 5479, 20, 15, 55, 0, S ), /* 165 Uhl Water Tanker */
|
||||
MK( 20970, 20, 15, 55, 0, S ), /* 166 Balogh Water Tanker */
|
||||
MK( 33388, 20, 15, 85, 0, S ), /* 167 MPS Water Tanker */
|
||||
MK( 5479, 20, 15, 55, 0, S ), /* 168 Balogh Fruit Truck */
|
||||
MK( 21335, 20, 15, 55, 0, S ), /* 169 Uhl Fruit Truck */
|
||||
MK( 33753, 20, 15, 85, 0, S ), /* 170 Kelling Fruit Truck */
|
||||
MK( 5479, 20, 15, 55, 0, S ), /* 171 Balogh Rubber Truck */
|
||||
MK( 20604, 20, 15, 55, 0, S ), /* 172 Uhl Rubber Truck */
|
||||
MK( 33023, 20, 15, 85, 0, S ), /* 173 RMT Rubber Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 174 MightyMover Sugar Truck */
|
||||
MK( 19724, 20, 15, 55, 0, Y), /* 175 Powernaught Sugar Truck */
|
||||
MK( 33238, 20, 15, 85, 0, Y), /* 176 Wizzowow Sugar Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 177 MightyMover Cola Truck */
|
||||
MK( 20089, 20, 15, 55, 0, Y), /* 178 Powernaught Cola Truck */
|
||||
MK( 33603, 20, 15, 85, 0, Y), /* 179 Wizzowow Cola Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 180 MightyMover Candyfloss Truck */
|
||||
MK( 20454, 20, 15, 55, 0, Y), /* 181 Powernaught Candyfloss Truck */
|
||||
MK( 33969, 20, 15, 85, 0, Y), /* 182 Wizzowow Candyfloss Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 183 MightyMover Toffee Truck */
|
||||
MK( 20820, 20, 15, 55, 0, Y), /* 184 Powernaught Toffee Truck */
|
||||
MK( 34334, 20, 15, 85, 0, Y), /* 185 Wizzowow Toffee Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 186 MightyMover Toy Van */
|
||||
MK( 21185, 20, 15, 55, 0, Y), /* 187 Powernaught Toy Van */
|
||||
MK( 34699, 20, 15, 85, 0, Y), /* 188 Wizzowow Toy Van */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 189 MightyMover Sweet Truck */
|
||||
MK( 21550, 20, 15, 55, 0, Y), /* 190 Powernaught Sweet Truck */
|
||||
MK( 35064, 20, 15, 85, 0, Y), /* 191 Wizzowow Sweet Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 192 MightyMover Battery Truck */
|
||||
MK( 19874, 20, 15, 55, 0, Y), /* 193 Powernaught Battery Truck */
|
||||
MK( 35430, 20, 15, 85, 0, Y), /* 194 Wizzowow Battery Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 195 MightyMover Fizzy Drink Truck */
|
||||
MK( 20239, 20, 15, 55, 0, Y), /* 196 Powernaught Fizzy Drink Truck */
|
||||
MK( 35795, 20, 15, 85, 0, Y), /* 197 Wizzowow Fizzy Drink Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 198 MightyMover Plastic Truck */
|
||||
MK( 20604, 20, 15, 55, 0, Y), /* 199 Powernaught Plastic Truck */
|
||||
MK( 32873, 20, 15, 85, 0, Y), /* 200 Wizzowow Plastic Truck */
|
||||
MK( 5479, 20, 15, 55, 0, Y), /* 201 MightyMover Bubble Truck */
|
||||
MK( 20970, 20, 15, 55, 0, Y), /* 202 Powernaught Bubble Truck */
|
||||
MK( 33023, 20, 15, 85, 0, Y), /* 203 Wizzowow Bubble Truck */
|
||||
MS( 2922, 5, 30, 50, 0, T|A|S ), /* 204 MPS Oil Tanker */
|
||||
MS( 17167, 5, 30, 90, 0, T|A|S ), /* 205 CS-Inc. Oil Tanker */
|
||||
MS( 2192, 5, 30, 55, 0, T|A|S ), /* 206 MPS Passenger Ferry */
|
||||
MS( 18628, 5, 30, 90, 0, T|A|S ), /* 207 FFP Passenger Ferry */
|
||||
MS( 17257, 10, 25, 90, 0, T|A|S ), /* 208 Bakewell 300 Hovercraft */
|
||||
MS( 9587, 5, 30, 40, 0, Y), /* 209 Chugger-Chug Passenger Ferry */
|
||||
MS( 20544, 5, 30, 90, 0, Y), /* 210 Shivershake Passenger Ferry */
|
||||
MS( 2557, 5, 30, 55, 0, T|A|S ), /* 211 Yate Cargo ship */
|
||||
MS( 19724, 5, 30, 98, 0, T|A|S ), /* 212 Bakewell Cargo ship */
|
||||
MS( 9587, 5, 30, 45, 0, Y), /* 213 Mightymover Cargo ship */
|
||||
MS( 22371, 5, 30, 90, 0, Y), /* 214 Powernaut Cargo ship */
|
||||
MA( 2922, 20, 20, 20, 0, T|A|S ), /* 215 Sampson U52 */
|
||||
MA( 9922, 20, 24, 20, 0, T|A|S ), /* 216 Coleman Count */
|
||||
MA( 12659, 20, 18, 20, 0, T|A|S ), /* 217 FFP Dart */
|
||||
MA( 17652, 20, 25, 35, 0, T|A|S ), /* 218 Yate Haugan */
|
||||
MA( 4929, 20, 30, 30, 0, T|A|S ), /* 219 Bakewell Cotswald LB-3 */
|
||||
MA( 13695, 20, 23, 25, 0, T|A|S ), /* 220 Bakewell Luckett LB-8 */
|
||||
MA( 16341, 20, 26, 30, 0, T|A|S ), /* 221 Bakewell Luckett LB-9 */
|
||||
MA( 21395, 20, 25, 30, 0, T|A|S ), /* 222 Bakewell Luckett LB80 */
|
||||
MA( 18263, 20, 20, 30, 0, T|A|S ), /* 223 Bakewell Luckett LB-10 */
|
||||
MA( 25233, 20, 25, 30, 0, T|A|S ), /* 224 Bakewell Luckett LB-11 */
|
||||
MA( 15371, 20, 22, 25, 0, T|A|S ), /* 225 Yate Aerospace YAC 1-11 */
|
||||
MA( 15461, 20, 25, 25, 0, T|A|S ), /* 226 Darwin 100 */
|
||||
MA( 16952, 20, 22, 25, 0, T|A|S ), /* 227 Darwin 200 */
|
||||
MA( 17227, 20, 25, 30, 0, T|A|S ), /* 228 Darwin 300 */
|
||||
MA( 22371, 20, 25, 35, 0, T|A|S ), /* 229 Darwin 400 */
|
||||
MA( 22341, 20, 25, 30, 0, T|A|S ), /* 230 Darwin 500 */
|
||||
MA( 27209, 20, 25, 30, 0, T|A|S ), /* 231 Darwin 600 */
|
||||
MA( 17988, 20, 20, 30, 0, T|A|S ), /* 232 Guru Galaxy */
|
||||
MA( 18993, 20, 24, 35, 0, T|A|S ), /* 233 Airtaxi A21 */
|
||||
MA( 22401, 20, 24, 30, 0, T|A|S ), /* 234 Airtaxi A31 */
|
||||
MA( 24472, 20, 24, 30, 0, T|A|S ), /* 235 Airtaxi A32 */
|
||||
MA( 26724, 20, 24, 30, 0, T|A|S ), /* 236 Airtaxi A33 */
|
||||
MA( 22005, 20, 25, 30, 0, T|A|S ), /* 237 Yate Aerospace YAe46 */
|
||||
MA( 24107, 20, 20, 35, 0, T|A|S ), /* 238 Dinger 100 */
|
||||
MA( 29310, 20, 25, 60, 0, T|A|S ), /* 239 AirTaxi A34-1000 */
|
||||
MA( 35520, 20, 22, 30, 0, T|A|S ), /* 240 Yate Z-Shuttle */
|
||||
MA( 36981, 20, 22, 30, 0, T|A|S ), /* 241 Kelling K1 */
|
||||
MA( 38807, 20, 22, 50, 0, T|A|S ), /* 242 Kelling K6 */
|
||||
MA( 42094, 20, 25, 30, 0, T|A|S ), /* 243 Kelling K7 */
|
||||
MA( 44651, 20, 23, 30, 0, T|A|S ), /* 244 Darwin 700 */
|
||||
MA( 40268, 20, 25, 30, 0, T|A|S ), /* 245 FFP Hyperdart 2 */
|
||||
MA( 33693, 20, 25, 50, 0, T|A|S ), /* 246 Dinger 200 */
|
||||
MA( 32963, 20, 20, 60, 0, T|A|S ), /* 247 Dinger 1000 */
|
||||
MA( 9222, 20, 20, 35, 0, Y), /* 248 Ploddyphut 100 */
|
||||
MA( 12874, 20, 20, 35, 0, Y), /* 249 Ploddyphut 500 */
|
||||
MA( 16892, 20, 20, 35, 0, Y), /* 250 Flashbang X1 */
|
||||
MA( 21275, 20, 20, 99, 0, Y), /* 251 Juggerplane M1 */
|
||||
MA( 23832, 20, 20, 99, 0, Y), /* 252 Flashbang Wizzer */
|
||||
MA( 13575, 20, 20, 40, 0, T|A|S ), /* 253 Tricario Helicopter */
|
||||
MA( 28215, 20, 20, 30, 0, T|A|S ), /* 254 Guru X2 Helicopter */
|
||||
MK( 13575, 20, 20, 99, 0, Y), /* 255 */
|
||||
};
|
||||
#undef Y
|
||||
#undef S
|
||||
#undef A
|
||||
#undef T
|
||||
#undef L
|
||||
#undef M
|
||||
#undef R
|
||||
#undef E
|
||||
#undef MK
|
||||
#undef MW
|
||||
#undef MS
|
||||
#undef MA
|
||||
|
||||
/** Writes the properties of a rail vehicle into the RailVehicleInfo struct.
|
||||
* @see RailVehicleInfo
|
||||
* @param a image_index
|
||||
* @param b flags
|
||||
* @param c base_cost
|
||||
* @param d max_speed (kph)
|
||||
* @param e power (hp)
|
||||
* @param f weight
|
||||
* @param g running_cost_base
|
||||
* @param h running_cost_class / engclass
|
||||
* @param i capacity
|
||||
* @param j cargo_type
|
||||
* @param k ai_rank
|
||||
* Tractive effort coefficient by default is the same as TTDPatch, 0.30*256=76
|
||||
*/
|
||||
#define RVI(a, b, c, d, e, f, g, h, i, j, k) { a, b, c, d, e, f, g, h, h, i, j, k, 0, 0, 0, 0, 76, 0 }
|
||||
#define M RVI_MULTIHEAD
|
||||
#define W RVI_WAGON
|
||||
#define S 0
|
||||
#define D 1
|
||||
#define E 2
|
||||
const RailVehicleInfo orig_rail_vehicle_info[NUM_TRAIN_ENGINES] = {
|
||||
// image_index max_speed (kph) running_cost_base
|
||||
// | flags | power (hp) | running_cost_class & engclass
|
||||
// | | base_cost | weight | | capacity
|
||||
// | | | | | | | | | cargo_type
|
||||
// | | | | | | | | | |
|
||||
RVI( 2, 0, 7, 64, 300, 47, 50, S, 0, 0 , 1 ), /* 0 */
|
||||
RVI( 19, 0, 8, 80, 600, 65, 65, D, 0, 0 , 4 ), /* 1 */
|
||||
RVI( 2, 0, 10, 72, 400, 85, 90, S, 0, 0 , 7 ), /* 2 */
|
||||
RVI( 0, 0, 15, 96, 900, 130, 130, S, 0, 0 , 19 ), /* 3 */
|
||||
RVI( 1, 0, 19, 112, 1000, 140, 145, S, 0, 0 , 20 ), /* 4 */
|
||||
RVI( 12, 0, 16, 120, 1400, 95, 125, D, 0, 0 , 30 ), /* 5 */
|
||||
RVI( 14, 0, 20, 152, 2000, 120, 135, D, 0, 0 , 31 ), /* 6 */
|
||||
RVI( 3, 0, 14, 88, 1100, 145, 130, S, 0, 0 , 19 ), /* 7 */
|
||||
RVI( 0, 0, 13, 112, 1000, 131, 120, S, 0, 0 , 20 ), /* 8 */
|
||||
RVI( 1, 0, 19, 128, 1200, 162, 140, S, 0, 0 , 21 ), /* 9 */
|
||||
RVI( 0, 0, 22, 144, 1600, 170, 130, S, 0, 0 , 22 ), /* 10 */
|
||||
RVI( 8, M, 11, 112, 600/2,32/2, 85/2, D, 38, CT_PASSENGERS , 10 ), /* 11 */
|
||||
RVI( 10, M, 14, 120, 700/2,38/2, 70/2, D, 40, CT_PASSENGERS , 11 ), /* 12 */
|
||||
RVI( 4, 0, 15, 128, 1250, 72, 95, D, 0, 0 , 30 ), /* 13 */
|
||||
RVI( 5, 0, 17, 144, 1750, 101, 120, D, 0, 0 , 31 ), /* 14 */
|
||||
RVI( 4, 0, 18, 160, 2580, 112, 140, D, 0, 0 , 32 ), /* 15 */
|
||||
RVI( 14, 0, 23, 96, 4000, 150, 135, D, 0, 0 , 33 ), /* 16 */
|
||||
RVI( 12, 0, 16, 112, 2400, 120, 105, D, 0, 0 , 34 ), /* 17 */
|
||||
RVI( 13, 0, 30, 112, 6600, 207, 155, D, 0, 0 , 35 ), /* 18 */
|
||||
RVI( 15, 0, 18, 104, 1500, 110, 105, D, 0, 0 , 29 ), /* 19 */
|
||||
RVI( 16, M, 35, 160, 3500/2,95/2, 205/2, D, 0, 0 , 45 ), /* 20 */
|
||||
RVI( 18, 0, 21, 104, 2200, 120, 145, D, 0, 0 , 32 ), /* 21 */
|
||||
RVI( 6, M, 20, 200, 4500/2,70/2, 190/2, D, 4, CT_MAIL , 50 ), /* 22 */
|
||||
RVI( 20, 0, 26, 160, 3600, 84, 180, E, 0, 0 , 40 ), /* 23 */
|
||||
RVI( 20, 0, 30, 176, 5000, 82, 205, E, 0, 0 , 41 ), /* 24 */
|
||||
RVI( 21, M, 40, 240, 7000/2,90/2, 240/2, E, 0, 0 , 51 ), /* 25 */
|
||||
RVI( 23, M, 43, 264, 8000/2,95/2, 250/2, E, 0, 0 , 52 ), /* 26 */
|
||||
RVI( 33, W, 247, 0, 0, 25, 0, 0, 40, CT_PASSENGERS , 0 ), /* 27 */
|
||||
RVI( 35, W, 228, 0, 0, 21, 0, 0, 30, CT_MAIL , 0 ), /* 28 */
|
||||
RVI( 34, W, 176, 0, 0, 18, 0, 0, 30, CT_COAL , 0 ), /* 29 */
|
||||
RVI( 36, W, 200, 0, 0, 24, 0, 0, 30, CT_OIL , 0 ), /* 30 */
|
||||
RVI( 37, W, 192, 0, 0, 20, 0, 0, 25, CT_LIVESTOCK , 0 ), /* 31 */
|
||||
RVI( 38, W, 190, 0, 0, 21, 0, 0, 25, CT_GOODS , 0 ), /* 32 */
|
||||
RVI( 39, W, 182, 0, 0, 19, 0, 0, 30, CT_GRAIN , 0 ), /* 33 */
|
||||
RVI( 40, W, 181, 0, 0, 16, 0, 0, 30, CT_WOOD , 0 ), /* 34 */
|
||||
RVI( 41, W, 179, 0, 0, 19, 0, 0, 30, CT_IRON_ORE , 0 ), /* 35 */
|
||||
RVI( 42, W, 196, 0, 0, 18, 0, 0, 20, CT_STEEL , 0 ), /* 36 */
|
||||
RVI( 43, W, 255, 0, 0, 30, 0, 0, 20, CT_VALUABLES , 0 ), /* 37 */
|
||||
RVI( 44, W, 191, 0, 0, 22, 0, 0, 25, CT_FOOD , 0 ), /* 38 */
|
||||
RVI( 45, W, 196, 0, 0, 18, 0, 0, 20, CT_PAPER , 0 ), /* 39 */
|
||||
RVI( 46, W, 179, 0, 0, 19, 0, 0, 30, CT_COPPER_ORE , 0 ), /* 40 */
|
||||
RVI( 47, W, 199, 0, 0, 25, 0, 0, 25, CT_WATER , 0 ), /* 41 */
|
||||
RVI( 48, W, 182, 0, 0, 18, 0, 0, 25, CT_FRUIT , 0 ), /* 42 */
|
||||
RVI( 49, W, 185, 0, 0, 19, 0, 0, 21, CT_RUBBER , 0 ), /* 43 */
|
||||
RVI( 50, W, 176, 0, 0, 19, 0, 0, 30, CT_SUGAR , 0 ), /* 44 */
|
||||
RVI( 51, W, 178, 0, 0, 20, 0, 0, 30, CT_COTTON_CANDY, 0 ), /* 45 */
|
||||
RVI( 52, W, 192, 0, 0, 20, 0, 0, 30, CT_TOFFEE , 0 ), /* 46 */
|
||||
RVI( 53, W, 190, 0, 0, 21, 0, 0, 20, CT_BUBBLES , 0 ), /* 47 */
|
||||
RVI( 54, W, 182, 0, 0, 24, 0, 0, 25, CT_COLA , 0 ), /* 48 */
|
||||
RVI( 55, W, 181, 0, 0, 21, 0, 0, 25, CT_CANDY , 0 ), /* 49 */
|
||||
RVI( 56, W, 183, 0, 0, 21, 0, 0, 20, CT_TOYS , 0 ), /* 50 */
|
||||
RVI( 57, W, 196, 0, 0, 18, 0, 0, 22, CT_BATTERIES , 0 ), /* 51 */
|
||||
RVI( 58, W, 193, 0, 0, 18, 0, 0, 25, CT_FIZZY_DRINKS, 0 ), /* 52 */
|
||||
RVI( 59, W, 191, 0, 0, 18, 0, 0, 30, CT_PLASTIC , 0 ), /* 53 */
|
||||
RVI( 25, 0, 52, 304, 9000, 95, 230, E, 0, 0 , 60 ), /* 54 */
|
||||
RVI( 26, M, 60, 336, 10000/2,85/2, 240/2, E, 25, CT_PASSENGERS , 62 ), /* 55 */
|
||||
RVI( 26, 0, 53, 320, 5000, 95, 230, E, 0, 0 , 63 ), /* 56 */
|
||||
RVI( 60, W, 247, 0, 0, 25, 0, 0, 45, CT_PASSENGERS , 0 ), /* 57 */
|
||||
RVI( 62, W, 228, 0, 0, 21, 0, 0, 35, CT_MAIL , 0 ), /* 58 */
|
||||
RVI( 61, W, 176, 0, 0, 18, 0, 0, 35, CT_COAL , 0 ), /* 59 */
|
||||
RVI( 63, W, 200, 0, 0, 24, 0, 0, 35, CT_OIL , 0 ), /* 60 */
|
||||
RVI( 64, W, 192, 0, 0, 20, 0, 0, 30, CT_LIVESTOCK , 0 ), /* 61 */
|
||||
RVI( 65, W, 190, 0, 0, 21, 0, 0, 30, CT_GOODS , 0 ), /* 62 */
|
||||
RVI( 66, W, 182, 0, 0, 19, 0, 0, 35, CT_GRAIN , 0 ), /* 63 */
|
||||
RVI( 67, W, 181, 0, 0, 16, 0, 0, 35, CT_WOOD , 0 ), /* 64 */
|
||||
RVI( 68, W, 179, 0, 0, 19, 0, 0, 35, CT_IRON_ORE , 0 ), /* 65 */
|
||||
RVI( 69, W, 196, 0, 0, 18, 0, 0, 25, CT_STEEL , 0 ), /* 66 */
|
||||
RVI( 70, W, 255, 0, 0, 30, 0, 0, 25, CT_VALUABLES , 0 ), /* 67 */
|
||||
RVI( 71, W, 191, 0, 0, 22, 0, 0, 30, CT_FOOD , 0 ), /* 68 */
|
||||
RVI( 72, W, 196, 0, 0, 18, 0, 0, 25, CT_PAPER , 0 ), /* 69 */
|
||||
RVI( 73, W, 179, 0, 0, 19, 0, 0, 35, CT_COPPER_ORE , 0 ), /* 70 */
|
||||
RVI( 47, W, 199, 0, 0, 25, 0, 0, 30, CT_WATER , 0 ), /* 71 */
|
||||
RVI( 48, W, 182, 0, 0, 18, 0, 0, 30, CT_FRUIT , 0 ), /* 72 */
|
||||
RVI( 49, W, 185, 0, 0, 19, 0, 0, 26, CT_RUBBER , 0 ), /* 73 */
|
||||
RVI( 50, W, 176, 0, 0, 19, 0, 0, 35, CT_SUGAR , 0 ), /* 74 */
|
||||
RVI( 51, W, 178, 0, 0, 20, 0, 0, 35, CT_COTTON_CANDY, 0 ), /* 75 */
|
||||
RVI( 52, W, 192, 0, 0, 20, 0, 0, 35, CT_TOFFEE , 0 ), /* 76 */
|
||||
RVI( 53, W, 190, 0, 0, 21, 0, 0, 25, CT_BUBBLES , 0 ), /* 77 */
|
||||
RVI( 54, W, 182, 0, 0, 24, 0, 0, 30, CT_COLA , 0 ), /* 78 */
|
||||
RVI( 55, W, 181, 0, 0, 21, 0, 0, 30, CT_CANDY , 0 ), /* 79 */
|
||||
RVI( 56, W, 183, 0, 0, 21, 0, 0, 25, CT_TOYS , 0 ), /* 80 */
|
||||
RVI( 57, W, 196, 0, 0, 18, 0, 0, 27, CT_BATTERIES , 0 ), /* 81 */
|
||||
RVI( 58, W, 193, 0, 0, 18, 0, 0, 30, CT_FIZZY_DRINKS, 0 ), /* 82 */
|
||||
RVI( 59, W, 191, 0, 0, 18, 0, 0, 35, CT_PLASTIC , 0 ), /* 83 */
|
||||
RVI( 28, 0, 70, 400, 10000, 105, 250, E, 0, 0 , 70 ), /* 84 */
|
||||
RVI( 29, 0, 74, 448, 12000, 120, 253, E, 0, 0 , 71 ), /* 85 */
|
||||
RVI( 30, 0, 82, 480, 15000, 130, 254, E, 0, 0 , 72 ), /* 86 */
|
||||
RVI( 31, M, 95, 640, 20000/2,150/2,255/2, E, 0, 0 , 73 ), /* 87 */
|
||||
RVI( 28, 0, 70, 480, 10000, 120, 250, E, 0, 0 , 74 ), /* 88 */
|
||||
RVI( 60, W, 247, 0, 0, 25, 0, 0, 47, CT_PASSENGERS , 0 ), /* 89 */
|
||||
RVI( 62, W, 228, 0, 0, 21, 0, 0, 37, CT_MAIL , 0 ), /* 90 */
|
||||
RVI( 61, W, 176, 0, 0, 18, 0, 0, 37, CT_COAL , 0 ), /* 91 */
|
||||
RVI( 63, W, 200, 0, 0, 24, 0, 0, 37, CT_OIL , 0 ), /* 92 */
|
||||
RVI( 64, W, 192, 0, 0, 20, 0, 0, 32, CT_LIVESTOCK , 0 ), /* 93 */
|
||||
RVI( 65, W, 190, 0, 0, 21, 0, 0, 32, CT_GOODS , 0 ), /* 94 */
|
||||
RVI( 66, W, 182, 0, 0, 19, 0, 0, 37, CT_GRAIN , 0 ), /* 95 */
|
||||
RVI( 67, W, 181, 0, 0, 16, 0, 0, 37, CT_WOOD , 0 ), /* 96 */
|
||||
RVI( 68, W, 179, 0, 0, 19, 0, 0, 37, CT_IRON_ORE , 0 ), /* 97 */
|
||||
RVI( 69, W, 196, 0, 0, 18, 0, 0, 27, CT_STEEL , 0 ), /* 98 */
|
||||
RVI( 70, W, 255, 0, 0, 30, 0, 0, 27, CT_VALUABLES , 0 ), /* 99 */
|
||||
RVI( 71, W, 191, 0, 0, 22, 0, 0, 32, CT_FOOD , 0 ), /* 100 */
|
||||
RVI( 72, W, 196, 0, 0, 18, 0, 0, 27, CT_PAPER , 0 ), /* 101 */
|
||||
RVI( 73, W, 179, 0, 0, 19, 0, 0, 37, CT_COPPER_ORE , 0 ), /* 102 */
|
||||
RVI( 47, W, 199, 0, 0, 25, 0, 0, 32, CT_WATER , 0 ), /* 103 */
|
||||
RVI( 48, W, 182, 0, 0, 18, 0, 0, 32, CT_FRUIT , 0 ), /* 104 */
|
||||
RVI( 49, W, 185, 0, 0, 19, 0, 0, 28, CT_RUBBER , 0 ), /* 105 */
|
||||
RVI( 50, W, 176, 0, 0, 19, 0, 0, 37, CT_SUGAR , 0 ), /* 106 */
|
||||
RVI( 51, W, 178, 0, 0, 20, 0, 0, 37, CT_COTTON_CANDY, 0 ), /* 107 */
|
||||
RVI( 52, W, 192, 0, 0, 20, 0, 0, 37, CT_TOFFEE , 0 ), /* 108 */
|
||||
RVI( 53, W, 190, 0, 0, 21, 0, 0, 27, CT_BUBBLES , 0 ), /* 109 */
|
||||
RVI( 54, W, 182, 0, 0, 24, 0, 0, 32, CT_COLA , 0 ), /* 110 */
|
||||
RVI( 55, W, 181, 0, 0, 21, 0, 0, 32, CT_CANDY , 0 ), /* 111 */
|
||||
RVI( 56, W, 183, 0, 0, 21, 0, 0, 27, CT_TOYS , 0 ), /* 112 */
|
||||
RVI( 57, W, 196, 0, 0, 18, 0, 0, 29, CT_BATTERIES , 0 ), /* 113 */
|
||||
RVI( 58, W, 193, 0, 0, 18, 0, 0, 32, CT_FIZZY_DRINKS, 0 ), /* 114 */
|
||||
RVI( 59, W, 191, 0, 0, 18, 0, 0, 37, CT_PLASTIC , 0 ), /* 115 */
|
||||
};
|
||||
#undef E
|
||||
#undef D
|
||||
#undef S
|
||||
#undef W
|
||||
#undef M
|
||||
#undef RVI
|
||||
|
||||
/** Writes the properties of a ship into the ShipVehicleInfo struct.
|
||||
* @see ShipVehicleInfo
|
||||
* @param a image_index
|
||||
* @param b base_cost
|
||||
* @param c max_speed
|
||||
* @param d cargo_type
|
||||
* @param e cargo_amount
|
||||
* @param f running_cost
|
||||
* @param g sound effect
|
||||
* @param h refittable
|
||||
*/
|
||||
#define SVI(a, b, c, d, e, f, g, h) { a, b, c, d, e, f, g, h }
|
||||
const ShipVehicleInfo orig_ship_vehicle_info[NUM_SHIP_ENGINES] = {
|
||||
// image_index cargo_type cargo_amount refittable
|
||||
// | base_cost | | running_cost |
|
||||
// | | max_speed | | sfx |
|
||||
// | | | | | | | |
|
||||
SVI( 1, 160, 48, CT_OIL, 220, 140, SND_06_SHIP_HORN, 0 ), /* 0 */
|
||||
SVI( 1, 176, 80, CT_OIL, 350, 125, SND_06_SHIP_HORN, 0 ), /* 1 */
|
||||
SVI( 2, 96, 64, CT_PASSENGERS, 100, 90, SND_07_FERRY_HORN, 0 ), /* 2 */
|
||||
SVI( 2, 112, 128, CT_PASSENGERS, 130, 80, SND_07_FERRY_HORN, 0 ), /* 3 */
|
||||
SVI( 3, 148, 224, CT_PASSENGERS, 100, 190, SND_07_FERRY_HORN, 0 ), /* 4 */
|
||||
SVI( 2, 96, 64, CT_PASSENGERS, 100, 90, SND_07_FERRY_HORN, 0 ), /* 5 */
|
||||
SVI( 2, 112, 128, CT_PASSENGERS, 130, 80, SND_07_FERRY_HORN, 0 ), /* 6 */
|
||||
SVI( 0, 128, 48, CT_GOODS, 160, 150, SND_06_SHIP_HORN, 1 ), /* 7 */
|
||||
SVI( 0, 144, 80, CT_GOODS, 190, 113, SND_06_SHIP_HORN, 1 ), /* 8 */
|
||||
SVI( 0, 128, 48, CT_GOODS, 160, 150, SND_06_SHIP_HORN, 1 ), /* 9 */
|
||||
SVI( 0, 144, 80, CT_GOODS, 190, 113, SND_06_SHIP_HORN, 1 ), /* 10 */
|
||||
};
|
||||
#undef SVI
|
||||
|
||||
/** Writes the properties of an aircraft into the AircraftVehicleInfo struct.
|
||||
* @see AircraftVehicleInfo
|
||||
* @param a image_index
|
||||
* @param b base_cost
|
||||
* @param c running_Cost
|
||||
* @param d subtype (bit 0 - plane, bit 1 - large plane)
|
||||
* @param e sound effect
|
||||
* @param f acceleration
|
||||
* @param g max_speed
|
||||
* @param h mail_capacity
|
||||
* @param i passenger_capacity
|
||||
*/
|
||||
#define AVI(a, b, c, d, e, f, g, h, i) { a, b, c, d, e, f, g, h, i }
|
||||
#define H 0
|
||||
#define P AIR_CTOL
|
||||
#define J AIR_CTOL | AIR_FAST
|
||||
const AircraftVehicleInfo orig_aircraft_vehicle_info[NUM_AIRCRAFT_ENGINES] = {
|
||||
// image_index sfx acceleration
|
||||
// | base_cost | | max_speed
|
||||
// | | running_cost | | mail_capacity
|
||||
// | | | subtype | | | | passenger_capacity
|
||||
// | | | | | | | | |
|
||||
AVI( 1, 14, 85, P, SND_08_PLANE_TAKE_OFF, 18, 37, 4, 25 ), /* 0 */
|
||||
AVI( 0, 15, 100, P, SND_08_PLANE_TAKE_OFF, 20, 37, 8, 65 ), /* 1 */
|
||||
AVI( 2, 16, 130, J, SND_09_JET, 35, 74, 10, 90 ), /* 2 */
|
||||
AVI( 8, 75, 250, J, SND_3B_JET_OVERHEAD, 50, 181, 20, 100 ), /* 3 */
|
||||
AVI( 5, 15, 98, P, SND_08_PLANE_TAKE_OFF, 20, 37, 6, 30 ), /* 4 */
|
||||
AVI( 6, 18, 240, J, SND_09_JET, 40, 74, 30, 200 ), /* 5 */
|
||||
AVI( 2, 17, 150, P, SND_09_JET, 35, 74, 15, 100 ), /* 6 */
|
||||
AVI( 2, 18, 245, J, SND_09_JET, 40, 74, 30, 150 ), /* 7 */
|
||||
AVI( 3, 19, 192, J, SND_09_JET, 40, 74, 40, 220 ), /* 8 */
|
||||
AVI( 3, 20, 190, J, SND_09_JET, 40, 74, 25, 230 ), /* 9 */
|
||||
AVI( 2, 16, 135, J, SND_09_JET, 35, 74, 10, 95 ), /* 10 */
|
||||
AVI( 2, 18, 240, J, SND_09_JET, 40, 74, 35, 170 ), /* 11 */
|
||||
AVI( 4, 17, 155, J, SND_09_JET, 40, 74, 15, 110 ), /* 12 */
|
||||
AVI( 7, 30, 253, J, SND_3D_ANOTHER_JET_OVERHEAD, 40, 74, 50, 300 ), /* 13 */
|
||||
AVI( 4, 18, 210, J, SND_09_JET, 40, 74, 25, 200 ), /* 14 */
|
||||
AVI( 4, 19, 220, J, SND_09_JET, 40, 74, 25, 240 ), /* 15 */
|
||||
AVI( 4, 27, 230, J, SND_09_JET, 40, 74, 40, 260 ), /* 16 */
|
||||
AVI( 3, 25, 225, J, SND_09_JET, 40, 74, 35, 240 ), /* 17 */
|
||||
AVI( 4, 20, 235, J, SND_09_JET, 40, 74, 30, 260 ), /* 18 */
|
||||
AVI( 4, 19, 220, J, SND_09_JET, 40, 74, 25, 210 ), /* 19 */
|
||||
AVI( 4, 18, 170, J, SND_09_JET, 40, 74, 20, 160 ), /* 20 */
|
||||
AVI( 4, 26, 210, J, SND_09_JET, 40, 74, 20, 220 ), /* 21 */
|
||||
AVI( 6, 16, 125, P, SND_09_JET, 50, 74, 10, 80 ), /* 22 */
|
||||
AVI( 2, 17, 145, P, SND_09_JET, 40, 74, 10, 85 ), /* 23 */
|
||||
AVI( 11, 16, 130, J, SND_09_JET, 40, 74, 10, 75 ), /* 24 */
|
||||
AVI( 10, 16, 149, J, SND_09_JET, 40, 74, 10, 85 ), /* 25 */
|
||||
AVI( 15, 17, 170, J, SND_09_JET, 40, 74, 18, 65 ), /* 26 */
|
||||
AVI( 12, 18, 210, J, SND_09_JET, 40, 74, 25, 110 ), /* 27 */
|
||||
AVI( 13, 20, 230, J, SND_09_JET, 40, 74, 60, 180 ), /* 28 */
|
||||
AVI( 14, 21, 220, J, SND_09_JET, 40, 74, 65, 150 ), /* 29 */
|
||||
AVI( 16, 19, 160, J, SND_09_JET, 40, 181, 45, 85 ), /* 30 */
|
||||
AVI( 17, 24, 248, J, SND_3D_ANOTHER_JET_OVERHEAD, 40, 74, 80, 400 ), /* 31 */
|
||||
AVI( 18, 80, 251, J, SND_3B_JET_OVERHEAD, 50, 181, 45, 130 ), /* 32 */
|
||||
AVI( 20, 13, 85, P, SND_45_PLANE_CRASHING, 18, 37, 5, 25 ), /* 33 */
|
||||
AVI( 21, 18, 100, P, SND_46_PLANE_ENGINE_SPUTTERING, 20, 37, 9, 60 ), /* 34 */
|
||||
AVI( 22, 25, 140, P, SND_09_JET, 40, 74, 12, 90 ), /* 35 */
|
||||
AVI( 23, 32, 220, J, SND_3D_ANOTHER_JET_OVERHEAD, 40, 74, 40, 200 ), /* 36 */
|
||||
AVI( 24, 80, 255, J, SND_3B_JET_OVERHEAD, 50, 181, 30, 100 ), /* 37 */
|
||||
AVI( 9, 15, 81, H, SND_09_JET, 20, 25, 15, 40 ), /* 38 */
|
||||
AVI( 19, 17, 77, H, SND_09_JET, 20, 40, 20, 55 ), /* 39 */
|
||||
AVI( 25, 15, 80, H, SND_09_JET, 20, 25, 10, 40 ), /* 40 */
|
||||
};
|
||||
#undef J
|
||||
#undef P
|
||||
#undef H
|
||||
#undef AVI
|
||||
|
||||
/** Writes the properties of a road vehicle into the RoadVehicleInfo struct.
|
||||
* @see RoadVehicleInfo
|
||||
* @param a image_index
|
||||
* @param b base_cost
|
||||
* @param c running_cost
|
||||
* @param d sound effect
|
||||
* @param e max_speed
|
||||
* @param f capacity
|
||||
* @param g cargo_type
|
||||
*/
|
||||
#define RVI(a, b, c, d, e, f, g) { a, b, c, d, e, f, g }
|
||||
const RoadVehicleInfo orig_road_vehicle_info[NUM_ROAD_ENGINES] = {
|
||||
// image_index sfx max_speed
|
||||
// | base_cost | | capacity
|
||||
// | | running_cost | | cargo_type
|
||||
// | | | | | | |
|
||||
RVI( 0, 120, 91, SND_19_BUS_START_PULL_AWAY, 112, 31, CT_PASSENGERS ), /* 0 */
|
||||
RVI( 17, 140, 128, SND_1C_TRUCK_START_2, 176, 35, CT_PASSENGERS ), /* 1 */
|
||||
RVI( 17, 150, 178, SND_1B_TRUCK_START, 224, 37, CT_PASSENGERS ), /* 2 */
|
||||
RVI( 34, 160, 240, SND_1B_TRUCK_START, 255, 40, CT_PASSENGERS ), /* 3 */
|
||||
RVI( 51, 120, 91, SND_3C_COMEDY_CAR, 112, 30, CT_PASSENGERS ), /* 4 */
|
||||
RVI( 51, 140, 171, SND_3E_COMEDY_CAR_2, 192, 35, CT_PASSENGERS ), /* 5 */
|
||||
RVI( 51, 160, 240, SND_3C_COMEDY_CAR, 240, 38, CT_PASSENGERS ), /* 6 */
|
||||
RVI( 1, 108, 90, SND_19_BUS_START_PULL_AWAY, 96, 20, CT_COAL ), /* 7 */
|
||||
RVI( 18, 128, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_COAL ), /* 8 */
|
||||
RVI( 35, 138, 240, SND_19_BUS_START_PULL_AWAY, 224, 28, CT_COAL ), /* 9 */
|
||||
RVI( 2, 115, 90, SND_19_BUS_START_PULL_AWAY, 96, 22, CT_MAIL ), /* 10 */
|
||||
RVI( 19, 135, 168, SND_19_BUS_START_PULL_AWAY, 176, 28, CT_MAIL ), /* 11 */
|
||||
RVI( 36, 145, 240, SND_19_BUS_START_PULL_AWAY, 224, 30, CT_MAIL ), /* 12 */
|
||||
RVI( 57, 115, 90, SND_3E_COMEDY_CAR_2, 96, 22, CT_MAIL ), /* 13 */
|
||||
RVI( 57, 135, 168, SND_3C_COMEDY_CAR, 176, 28, CT_MAIL ), /* 14 */
|
||||
RVI( 57, 145, 240, SND_3E_COMEDY_CAR_2, 224, 30, CT_MAIL ), /* 15 */
|
||||
RVI( 3, 110, 90, SND_19_BUS_START_PULL_AWAY, 96, 21, CT_OIL ), /* 16 */
|
||||
RVI( 20, 140, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_OIL ), /* 17 */
|
||||
RVI( 37, 150, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_OIL ), /* 18 */
|
||||
RVI( 4, 105, 90, SND_19_BUS_START_PULL_AWAY, 96, 14, CT_LIVESTOCK ), /* 19 */
|
||||
RVI( 21, 130, 168, SND_19_BUS_START_PULL_AWAY, 176, 16, CT_LIVESTOCK ), /* 20 */
|
||||
RVI( 38, 140, 240, SND_19_BUS_START_PULL_AWAY, 224, 18, CT_LIVESTOCK ), /* 21 */
|
||||
RVI( 5, 107, 90, SND_19_BUS_START_PULL_AWAY, 96, 14, CT_GOODS ), /* 22 */
|
||||
RVI( 22, 130, 168, SND_19_BUS_START_PULL_AWAY, 176, 16, CT_GOODS ), /* 23 */
|
||||
RVI( 39, 140, 240, SND_19_BUS_START_PULL_AWAY, 224, 18, CT_GOODS ), /* 24 */
|
||||
RVI( 6, 114, 90, SND_19_BUS_START_PULL_AWAY, 96, 20, CT_GRAIN ), /* 25 */
|
||||
RVI( 23, 133, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_GRAIN ), /* 26 */
|
||||
RVI( 40, 143, 240, SND_19_BUS_START_PULL_AWAY, 224, 30, CT_GRAIN ), /* 27 */
|
||||
RVI( 7, 118, 90, SND_19_BUS_START_PULL_AWAY, 96, 20, CT_WOOD ), /* 28 */
|
||||
RVI( 24, 137, 168, SND_19_BUS_START_PULL_AWAY, 176, 22, CT_WOOD ), /* 29 */
|
||||
RVI( 41, 147, 240, SND_19_BUS_START_PULL_AWAY, 224, 24, CT_WOOD ), /* 30 */
|
||||
RVI( 8, 121, 90, SND_19_BUS_START_PULL_AWAY, 96, 22, CT_IRON_ORE ), /* 31 */
|
||||
RVI( 25, 140, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_IRON_ORE ), /* 32 */
|
||||
RVI( 42, 150, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_IRON_ORE ), /* 33 */
|
||||
RVI( 9, 112, 90, SND_19_BUS_START_PULL_AWAY, 96, 15, CT_STEEL ), /* 34 */
|
||||
RVI( 26, 135, 168, SND_19_BUS_START_PULL_AWAY, 176, 18, CT_STEEL ), /* 35 */
|
||||
RVI( 43, 145, 240, SND_19_BUS_START_PULL_AWAY, 224, 20, CT_STEEL ), /* 36 */
|
||||
RVI( 10, 145, 90, SND_19_BUS_START_PULL_AWAY, 96, 12, CT_VALUABLES ), /* 37 */
|
||||
RVI( 27, 170, 168, SND_19_BUS_START_PULL_AWAY, 176, 15, CT_VALUABLES ), /* 38 */
|
||||
RVI( 44, 180, 240, SND_19_BUS_START_PULL_AWAY, 224, 16, CT_VALUABLES ), /* 39 */
|
||||
RVI( 11, 112, 90, SND_19_BUS_START_PULL_AWAY, 96, 17, CT_FOOD ), /* 40 */
|
||||
RVI( 28, 134, 168, SND_19_BUS_START_PULL_AWAY, 176, 20, CT_FOOD ), /* 41 */
|
||||
RVI( 45, 144, 240, SND_19_BUS_START_PULL_AWAY, 224, 22, CT_FOOD ), /* 42 */
|
||||
RVI( 12, 112, 90, SND_19_BUS_START_PULL_AWAY, 96, 15, CT_PAPER ), /* 43 */
|
||||
RVI( 29, 135, 168, SND_19_BUS_START_PULL_AWAY, 176, 18, CT_PAPER ), /* 44 */
|
||||
RVI( 46, 145, 240, SND_19_BUS_START_PULL_AWAY, 224, 20, CT_PAPER ), /* 45 */
|
||||
RVI( 13, 121, 90, SND_19_BUS_START_PULL_AWAY, 96, 22, CT_COPPER_ORE ), /* 46 */
|
||||
RVI( 30, 140, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_COPPER_ORE ), /* 47 */
|
||||
RVI( 47, 150, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_COPPER_ORE ), /* 48 */
|
||||
RVI( 14, 111, 90, SND_19_BUS_START_PULL_AWAY, 96, 21, CT_WATER ), /* 49 */
|
||||
RVI( 31, 141, 168, SND_19_BUS_START_PULL_AWAY, 176, 25, CT_WATER ), /* 50 */
|
||||
RVI( 48, 151, 240, SND_19_BUS_START_PULL_AWAY, 224, 27, CT_WATER ), /* 51 */
|
||||
RVI( 15, 118, 90, SND_19_BUS_START_PULL_AWAY, 96, 18, CT_FRUIT ), /* 52 */
|
||||
RVI( 32, 148, 168, SND_19_BUS_START_PULL_AWAY, 176, 20, CT_FRUIT ), /* 53 */
|
||||
RVI( 49, 158, 240, SND_19_BUS_START_PULL_AWAY, 224, 23, CT_FRUIT ), /* 54 */
|
||||
RVI( 16, 117, 90, SND_19_BUS_START_PULL_AWAY, 96, 17, CT_RUBBER ), /* 55 */
|
||||
RVI( 33, 147, 168, SND_19_BUS_START_PULL_AWAY, 176, 19, CT_RUBBER ), /* 56 */
|
||||
RVI( 50, 157, 240, SND_19_BUS_START_PULL_AWAY, 224, 22, CT_RUBBER ), /* 57 */
|
||||
RVI( 52, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_SUGAR ), /* 58 */
|
||||
RVI( 52, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_SUGAR ), /* 59 */
|
||||
RVI( 52, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_SUGAR ), /* 60 */
|
||||
RVI( 53, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_COLA ), /* 61 */
|
||||
RVI( 53, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_COLA ), /* 62 */
|
||||
RVI( 53, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_COLA ), /* 63 */
|
||||
RVI( 54, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_COTTON_CANDY ), /* 64 */
|
||||
RVI( 54, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_COTTON_CANDY ), /* 65 */
|
||||
RVI( 54, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_COTTON_CANDY ), /* 66 */
|
||||
RVI( 55, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_TOFFEE ), /* 67 */
|
||||
RVI( 55, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_TOFFEE ), /* 68 */
|
||||
RVI( 55, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_TOFFEE ), /* 69 */
|
||||
RVI( 56, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_TOYS ), /* 70 */
|
||||
RVI( 56, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_TOYS ), /* 71 */
|
||||
RVI( 56, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_TOYS ), /* 72 */
|
||||
RVI( 58, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_CANDY ), /* 73 */
|
||||
RVI( 58, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_CANDY ), /* 74 */
|
||||
RVI( 58, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_CANDY ), /* 75 */
|
||||
RVI( 59, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_BATTERIES ), /* 76 */
|
||||
RVI( 59, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_BATTERIES ), /* 77 */
|
||||
RVI( 59, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_BATTERIES ), /* 78 */
|
||||
RVI( 60, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_FIZZY_DRINKS ), /* 79 */
|
||||
RVI( 60, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_FIZZY_DRINKS ), /* 80 */
|
||||
RVI( 60, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_FIZZY_DRINKS ), /* 81 */
|
||||
RVI( 61, 117, 90, SND_3F_COMEDY_CAR_3, 96, 17, CT_PLASTIC ), /* 82 */
|
||||
RVI( 61, 147, 168, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 176, 19, CT_PLASTIC ), /* 83 */
|
||||
RVI( 61, 157, 240, SND_3F_COMEDY_CAR_3, 224, 22, CT_PLASTIC ), /* 84 */
|
||||
RVI( 62, 117, 90, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 96, 17, CT_BUBBLES ), /* 85 */
|
||||
RVI( 62, 147, 168, SND_3F_COMEDY_CAR_3, 176, 19, CT_BUBBLES ), /* 86 */
|
||||
RVI( 62, 157, 240, SND_40_COMEDY_CAR_START_AND_PULL_AWAY, 224, 22, CT_BUBBLES ), /* 87 */
|
||||
};
|
||||
#undef RVI
|
||||
|
||||
#endif /* ENGINES_H */
|
64
src/table/files.h
Normal file
64
src/table/files.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/* $Id$ */
|
||||
|
||||
/*
|
||||
MD5 sums of graphics files
|
||||
|
||||
DOS -
|
||||
|
||||
TRG1.GRF 9311676280e5b14077a8ee41c1b42192
|
||||
TRGC.GRF ed446637e034104c5559b32c18afe78d
|
||||
TRGH.GRF ee6616fb0e6ef6b24892c58c93d86fc9
|
||||
TRGI.GRF da6a6c9dcc451eec88d79211437b76a8
|
||||
TRGT.GRF fcde1d7e8a74197d72a62695884b909e
|
||||
SAMPLE.CAT 422ea3dd074d2859bb51639a6e0e85da
|
||||
|
||||
WINDOWS -
|
||||
|
||||
TRG1R.GRF b04ce593d8c5016e07473a743d7d3358
|
||||
TRGCR.GRF 3668f410c761a050b5e7095a2b14879b
|
||||
TRGHR.GRF 06bf2b7a31766f048baac2ebe43457b1
|
||||
TRGIR.GRF 0c2484ff6be49fc63a83be6ab5c38f32
|
||||
TRGTR.GRF de53650517fe661ceaa3138c6edb0eb8
|
||||
SAMPLE.CAT 9212e81e72badd4bbe1eaeae66458e10
|
||||
*/
|
||||
|
||||
|
||||
static FileList files_dos = {
|
||||
{
|
||||
{ "TRG1.GRF", {0x93, 0x11, 0x67, 0x62, 0x80, 0xe5, 0xb1, 0x40, 0x77, 0xa8, 0xee, 0x41, 0xc1, 0xb4, 0x21, 0x92} }, // 0 - 4792 inclusive
|
||||
{ "TRGI.GRF", {0xda, 0x6a, 0x6c, 0x9d, 0xcc, 0x45, 0x1e, 0xec, 0x88, 0xd7, 0x92, 0x11, 0x43, 0x7b, 0x76, 0xa8} }, // 4793 - 4889 inclusive
|
||||
{ "dosdummy.grf", {0x07, 0x01, 0xe6, 0xc4, 0x07, 0x6a, 0x5b, 0xc3, 0xf4, 0x9f, 0x01, 0xad, 0x21, 0x6c, 0xa0, 0xc2} }, // 4890 - 4895 inclusive
|
||||
{ NULL, { 0 } }
|
||||
}, {
|
||||
{ "TRGC.GRF", {0xed, 0x44, 0x66, 0x37, 0xe0, 0x34, 0x10, 0x4c, 0x55, 0x59, 0xb3, 0x2c, 0x18, 0xaf, 0xe7, 0x8d} },
|
||||
{ "TRGH.GRF", {0xee, 0x66, 0x16, 0xfb, 0x0e, 0x6e, 0xf6, 0xb2, 0x48, 0x92, 0xc5, 0x8c, 0x93, 0xd8, 0x6f, 0xc9} },
|
||||
{ "TRGT.GRF", {0xfc, 0xde, 0x1d, 0x7e, 0x8a, 0x74, 0x19, 0x7d, 0x72, 0xa6, 0x26, 0x95, 0x88, 0x4b, 0x90, 0x9e} }
|
||||
}
|
||||
};
|
||||
|
||||
static FileList files_win = {
|
||||
{
|
||||
{ "TRG1R.GRF", {0xb0, 0x4c, 0xe5, 0x93, 0xd8, 0xc5, 0x01, 0x6e, 0x07, 0x47, 0x3a, 0x74, 0x3d, 0x7d, 0x33, 0x58} }, // 0 - 4792 inclusive
|
||||
{ "TRGIR.GRF", {0x0c, 0x24, 0x84, 0xff, 0x6b, 0xe4, 0x9f, 0xc6, 0x3a, 0x83, 0xbe, 0x6a, 0xb5, 0xc3, 0x8f, 0x32} }, // 4793 - 4895 inclusive
|
||||
{ NULL, { 0 } },
|
||||
{ NULL, { 0 } }
|
||||
}, {
|
||||
{ "TRGCR.GRF", {0x36, 0x68, 0xf4, 0x10, 0xc7, 0x61, 0xa0, 0x50, 0xb5, 0xe7, 0x09, 0x5a, 0x2b, 0x14, 0x87, 0x9b} },
|
||||
{ "TRGHR.GRF", {0x06, 0xbf, 0x2b, 0x7a, 0x31, 0x76, 0x6f, 0x04, 0x8b, 0xaa, 0xc2, 0xeb, 0xe4, 0x34, 0x57, 0xb1} },
|
||||
{ "TRGTR.GRF", {0xde, 0x53, 0x65, 0x05, 0x17, 0xfe, 0x66, 0x1c, 0xea, 0xa3, 0x13, 0x8c, 0x6e, 0xdb, 0x0e, 0xb8} }
|
||||
}
|
||||
};
|
||||
|
||||
static MD5File sample_cat_win = { "SAMPLE.CAT", {0x92, 0x12, 0xe8, 0x1e, 0x72, 0xba, 0xdd, 0x4b, 0xbe, 0x1e, 0xae, 0xae, 0x66, 0x45, 0x8e, 0x10} };
|
||||
static MD5File sample_cat_dos = { "SAMPLE.CAT", {0x42, 0x2e, 0xa3, 0xdd, 0x07, 0x4d, 0x28, 0x59, 0xbb, 0x51, 0x63, 0x9a, 0x6e, 0x0e, 0x85, 0xda} };
|
||||
|
||||
static MD5File files_openttd[] = {
|
||||
{ "nsignalsw.grf", { 0x65, 0xb9, 0xd7, 0x30, 0x56, 0x06, 0xcc, 0x9e, 0x27, 0x57, 0xc8, 0xe4, 0x9b, 0xb3, 0x66, 0x81 } },
|
||||
{ "2ccmap.grf", { 0x20, 0x03, 0x32, 0x1a, 0x43, 0x6c, 0xc1, 0x05, 0x80, 0xbd, 0x43, 0xeb, 0xe1, 0xfd, 0x0c, 0x62 } },
|
||||
{ "airports.grf", { 0xfd, 0xa4, 0x38, 0xd6, 0x9c, 0x81, 0x74, 0xfe, 0xa0, 0x98, 0xa2, 0x14, 0x4b, 0x15, 0xb8, 0x4b } },
|
||||
{ "autorail.grf", { 0xed, 0x44, 0x7f, 0xbb, 0x19, 0x44, 0x48, 0x4c, 0x07, 0x8a, 0xb1, 0xc1, 0x5c, 0x12, 0x3a, 0x60 } },
|
||||
{ "canalsw.grf", { 0x13, 0x9c, 0x98, 0xcf, 0xb8, 0x7c, 0xd7, 0x1f, 0xca, 0x34, 0xa5, 0x6b, 0x65, 0x31, 0xec, 0x0f } },
|
||||
{ "elrailsw.grf", { 0x4f, 0xf9, 0xac, 0x79, 0x50, 0x28, 0x9b, 0xe2, 0x15, 0x30, 0xa8, 0x1e, 0xd5, 0xfd, 0xe1, 0xda } },
|
||||
{ "openttd.grf", { 0x59, 0x22, 0x19, 0xe0, 0x6e, 0xe7, 0xb6, 0xa3, 0x55, 0x53, 0xcc, 0x9e, 0xbc, 0xaf, 0xcc, 0x83 } },
|
||||
{ "trkfoundw.grf", { 0x12, 0x33, 0x3f, 0xa3, 0xd1, 0x86, 0x8b, 0x04, 0x53, 0x18, 0x9c, 0xee, 0xf9, 0x2d, 0xf5, 0x95 } },
|
||||
};
|
159
src/table/genland.h
Normal file
159
src/table/genland.h
Normal file
@@ -0,0 +1,159 @@
|
||||
/* $Id$ */
|
||||
|
||||
#define M(x, y) {x, y}
|
||||
|
||||
static const TileIndexDiffC _make_desert_or_rainforest_data[] = {
|
||||
M(-5, -6),
|
||||
M(-4, -6),
|
||||
M(-3, -6),
|
||||
M(-2, -6),
|
||||
M(-1, -6),
|
||||
M( 0, -5),
|
||||
M( 1, -5),
|
||||
M( 2, -5),
|
||||
M( 3, -5),
|
||||
M( 4, -5),
|
||||
M( 5, -5),
|
||||
M(-5, -5),
|
||||
M(-4, -5),
|
||||
M(-3, -5),
|
||||
M(-2, -5),
|
||||
M(-1, -5),
|
||||
M( 0, -4),
|
||||
M( 1, -4),
|
||||
M( 2, -4),
|
||||
M( 3, -4),
|
||||
M( 4, -4),
|
||||
M( 5, -4),
|
||||
M(-5, -4),
|
||||
M(-4, -4),
|
||||
M(-3, -4),
|
||||
M(-2, -4),
|
||||
M(-1, -4),
|
||||
M( 0, -3),
|
||||
M( 1, -3),
|
||||
M( 2, -3),
|
||||
M( 3, -3),
|
||||
M( 4, -3),
|
||||
M( 5, -3),
|
||||
M(-5, -3),
|
||||
M(-4, -3),
|
||||
M(-3, -3),
|
||||
M(-2, -3),
|
||||
M(-1, -3),
|
||||
M( 0, -2),
|
||||
M( 1, -2),
|
||||
M( 2, -2),
|
||||
M( 3, -2),
|
||||
M( 4, -2),
|
||||
M( 5, -2),
|
||||
M(-5, -2),
|
||||
M(-4, -2),
|
||||
M(-3, -2),
|
||||
M(-2, -2),
|
||||
M(-1, -2),
|
||||
M( 0, -1),
|
||||
M( 1, -1),
|
||||
M( 2, -1),
|
||||
M( 3, -1),
|
||||
M( 4, -1),
|
||||
M( 5, -1),
|
||||
M(-5, -1),
|
||||
M(-4, -1),
|
||||
M(-3, -1),
|
||||
M(-2, -1),
|
||||
M(-1, -1),
|
||||
M( 0, 0),
|
||||
M( 1, 0),
|
||||
M( 2, 0),
|
||||
M( 3, 0),
|
||||
M( 4, 0),
|
||||
M( 5, 0),
|
||||
M(-5, 0),
|
||||
M(-4, 0),
|
||||
M(-3, 0),
|
||||
M(-2, 0),
|
||||
M(-1, 0),
|
||||
M( 0, 1),
|
||||
M( 1, 1),
|
||||
M( 2, 1),
|
||||
M( 3, 1),
|
||||
M( 4, 1),
|
||||
M( 5, 1),
|
||||
M(-5, 1),
|
||||
M(-4, 1),
|
||||
M(-3, 1),
|
||||
M(-2, 1),
|
||||
M(-1, 1),
|
||||
M( 0, 2),
|
||||
M( 1, 2),
|
||||
M( 2, 2),
|
||||
M( 3, 2),
|
||||
M( 4, 2),
|
||||
M( 5, 2),
|
||||
M(-5, 2),
|
||||
M(-4, 2),
|
||||
M(-3, 2),
|
||||
M(-2, 2),
|
||||
M(-1, 2),
|
||||
M( 0, 3),
|
||||
M( 1, 3),
|
||||
M( 2, 3),
|
||||
M( 3, 3),
|
||||
M( 4, 3),
|
||||
M( 5, 3),
|
||||
M(-5, 3),
|
||||
M(-4, 3),
|
||||
M(-3, 3),
|
||||
M(-2, 3),
|
||||
M(-1, 3),
|
||||
M( 0, 4),
|
||||
M( 1, 4),
|
||||
M( 2, 4),
|
||||
M( 3, 4),
|
||||
M( 4, 4),
|
||||
M( 5, 4),
|
||||
M(-5, 4),
|
||||
M(-4, 4),
|
||||
M(-3, 4),
|
||||
M(-2, 4),
|
||||
M(-1, 4),
|
||||
M( 0, 5),
|
||||
M( 1, 5),
|
||||
M( 2, 5),
|
||||
M( 3, 5),
|
||||
M( 4, 5),
|
||||
M( 5, 5),
|
||||
M( 6, -3),
|
||||
M(-6, -4),
|
||||
M(-3, 5),
|
||||
M(-3, -7),
|
||||
M( 6, -2),
|
||||
M(-6, -3),
|
||||
M(-2, 5),
|
||||
M(-2, -7),
|
||||
M( 6, -1),
|
||||
M(-6, -2),
|
||||
M(-1, 5),
|
||||
M(-1, -7),
|
||||
M( 6, 0),
|
||||
M(-6, -1),
|
||||
M( 0, 6),
|
||||
M( 0, -6),
|
||||
M( 6, 1),
|
||||
M(-6, 0),
|
||||
M( 1, 6),
|
||||
M( 1, -6),
|
||||
M( 6, 2),
|
||||
M(-6, 1),
|
||||
M( 2, 6),
|
||||
M( 2, -6),
|
||||
M( 6, 3),
|
||||
M(-6, 2),
|
||||
M( 3, 6),
|
||||
M( 3, -6)
|
||||
};
|
||||
|
||||
|
||||
|
||||
#undef M
|
1022
src/table/industry_land.h
Normal file
1022
src/table/industry_land.h
Normal file
File diff suppressed because it is too large
Load Diff
257
src/table/landscape_const.h
Normal file
257
src/table/landscape_const.h
Normal file
@@ -0,0 +1,257 @@
|
||||
/* $Id$ */
|
||||
|
||||
#include "sprites.h"
|
||||
|
||||
typedef struct CargoTypesValues {
|
||||
StringID names[NUM_CARGO];
|
||||
StringID units_volume[NUM_CARGO];
|
||||
byte weights[NUM_CARGO];
|
||||
SpriteID sprites[NUM_CARGO];
|
||||
|
||||
uint16 initial_cargo_payment[NUM_CARGO];
|
||||
byte transit_days_table_1[NUM_CARGO];
|
||||
byte transit_days_table_2[NUM_CARGO];
|
||||
} CargoTypesValues;
|
||||
|
||||
|
||||
static const CargoTypesValues _cargo_types_base_values[4] = {
|
||||
{
|
||||
/* normal names */
|
||||
{
|
||||
STR_000F_PASSENGERS,
|
||||
STR_0010_COAL,
|
||||
STR_0011_MAIL,
|
||||
STR_0012_OIL,
|
||||
STR_0013_LIVESTOCK,
|
||||
STR_0014_GOODS,
|
||||
STR_0015_GRAIN,
|
||||
STR_0016_WOOD,
|
||||
STR_0017_IRON_ORE,
|
||||
STR_0018_STEEL,
|
||||
STR_0019_VALUABLES,
|
||||
STR_000E,
|
||||
},
|
||||
|
||||
{ /* normal units of volume */
|
||||
STR_PASSENGERS,
|
||||
STR_TONS,
|
||||
STR_BAGS,
|
||||
STR_LITERS,
|
||||
STR_ITEMS,
|
||||
STR_CRATES,
|
||||
STR_TONS,
|
||||
STR_TONS,
|
||||
STR_TONS,
|
||||
STR_TONS,
|
||||
STR_BAGS,
|
||||
STR_RES_OTHER
|
||||
},
|
||||
|
||||
/* normal weights */
|
||||
{
|
||||
1, 16, 4, 16, 3, 8, 16, 16, 16, 16, 2, 0,
|
||||
},
|
||||
|
||||
/* normal sprites */
|
||||
{
|
||||
SPR_CARGO_PASSENGER, SPR_CARGO_COAL, SPR_CARGO_MAIL, SPR_CARGO_OIL, SPR_CARGO_LIVESTOCK,
|
||||
SPR_CARGO_GOODS, SPR_CARGO_GRAIN, SPR_CARGO_WOOD, SPR_CARGO_IRON_ORE, SPR_CARGO_STEEL,
|
||||
SPR_CARGO_VALUES_GOLD, SPR_ASCII_SPACE
|
||||
},
|
||||
|
||||
/* normal initial cargo payment */
|
||||
{
|
||||
3185, 5916, 4550, 4437, 4322, 6144, 4778, 5005, 5120, 5688, 7509, 5688
|
||||
},
|
||||
|
||||
/* normal transit days table 1 */
|
||||
{
|
||||
0, 7, 20, 25, 4, 5, 4, 15, 9, 7, 1, 0,
|
||||
},
|
||||
|
||||
/* normal transit days table 2 */
|
||||
{
|
||||
24, 255, 90, 255, 18, 28, 40, 255, 255, 255, 32, 30,
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
/* hilly names */
|
||||
{
|
||||
STR_000F_PASSENGERS,
|
||||
STR_0010_COAL,
|
||||
STR_0011_MAIL,
|
||||
STR_0012_OIL,
|
||||
STR_0013_LIVESTOCK,
|
||||
STR_0014_GOODS,
|
||||
STR_0022_WHEAT,
|
||||
STR_0016_WOOD,
|
||||
STR_000E,
|
||||
STR_001F_PAPER,
|
||||
STR_0020_GOLD,
|
||||
STR_001E_FOOD,
|
||||
},
|
||||
|
||||
{ /* hilly units of volume */
|
||||
STR_PASSENGERS,
|
||||
STR_TONS,
|
||||
STR_BAGS,
|
||||
STR_LITERS,
|
||||
STR_ITEMS,
|
||||
STR_CRATES,
|
||||
STR_TONS,
|
||||
STR_TONS,
|
||||
STR_RES_OTHER,
|
||||
STR_TONS,
|
||||
STR_BAGS,
|
||||
STR_TONS
|
||||
},
|
||||
|
||||
/* hilly weights */
|
||||
{
|
||||
1, 16, 4, 16, 3, 8, 16, 16, 0, 16, 8, 16
|
||||
},
|
||||
|
||||
/* hilly sprites */
|
||||
{
|
||||
SPR_CARGO_PASSENGER, SPR_CARGO_COAL, SPR_CARGO_MAIL, SPR_CARGO_OIL, SPR_CARGO_LIVESTOCK,
|
||||
SPR_CARGO_GOODS, SPR_CARGO_GRAIN, SPR_CARGO_WOOD, SPR_ASCII_SPACE, SPR_CARGO_PAPER,
|
||||
SPR_CARGO_VALUES_GOLD, SPR_CARGO_FOOD
|
||||
},
|
||||
|
||||
/* hilly initial cargo payment */
|
||||
{
|
||||
3185, 5916, 4550, 4437, 4322, 6144, 4778, 5005, 5120, 5461, 5802, 5688
|
||||
},
|
||||
|
||||
/* hilly transit days table 1 */
|
||||
{
|
||||
0, 7, 20, 25, 4, 5, 4, 15, 9, 7, 10, 0,
|
||||
},
|
||||
|
||||
/* hilly transit days table 2 */
|
||||
{
|
||||
24, 255, 90, 255, 18, 28, 40, 255, 255, 60, 40, 30
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
/* desert names */
|
||||
{
|
||||
STR_000F_PASSENGERS,
|
||||
STR_0023_RUBBER,
|
||||
STR_0011_MAIL,
|
||||
STR_0012_OIL,
|
||||
STR_001C_FRUIT,
|
||||
STR_0014_GOODS,
|
||||
STR_001B_MAIZE,
|
||||
STR_0016_WOOD,
|
||||
STR_001A_COPPER_ORE,
|
||||
STR_0021_WATER,
|
||||
STR_001D_DIAMONDS,
|
||||
STR_001E_FOOD
|
||||
},
|
||||
|
||||
{ /* desert units of volume */
|
||||
STR_PASSENGERS,
|
||||
STR_LITERS,
|
||||
STR_BAGS,
|
||||
STR_LITERS,
|
||||
STR_TONS,
|
||||
STR_CRATES,
|
||||
STR_TONS,
|
||||
STR_TONS,
|
||||
STR_TONS,
|
||||
STR_LITERS,
|
||||
STR_BAGS,
|
||||
STR_TONS
|
||||
},
|
||||
|
||||
/* desert weights */
|
||||
{
|
||||
1, 16, 4, 16, 16, 8, 16, 16, 16, 16, 2, 16,
|
||||
},
|
||||
|
||||
/* desert sprites */
|
||||
{
|
||||
SPR_CARGO_PASSENGER, SPR_CARGO_RUBBER, SPR_CARGO_MAIL, SPR_CARGO_OIL, SPR_CARGO_FRUIT,
|
||||
SPR_CARGO_GOODS, SPR_CARGO_GRAIN, SPR_CARGO_WOOD, SPR_CARGO_COPPER_ORE, SPR_CARGO_WATERCOLA,
|
||||
SPR_CARGO_DIAMONDS, SPR_CARGO_FOOD
|
||||
},
|
||||
|
||||
/* desert initial cargo payment */
|
||||
{
|
||||
3185, 4437, 4550, 4892, 4209, 6144, 4322, 7964, 4892, 4664, 5802, 5688
|
||||
},
|
||||
|
||||
/* desert transit days table 1 */
|
||||
{
|
||||
0, 2, 20, 25, 0, 5, 4, 15, 12, 20, 10, 0
|
||||
},
|
||||
|
||||
/* desert transit days table 2 */
|
||||
{
|
||||
24, 20, 90, 255, 15, 28, 40, 255, 255, 80, 255, 30
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
/* candy names */
|
||||
{
|
||||
STR_000F_PASSENGERS,
|
||||
STR_0024_SUGAR,
|
||||
STR_0011_MAIL,
|
||||
STR_0025_TOYS,
|
||||
STR_002B_BATTERIES,
|
||||
STR_0026_CANDY,
|
||||
STR_002A_TOFFEE,
|
||||
STR_0027_COLA,
|
||||
STR_0028_COTTON_CANDY,
|
||||
STR_0029_BUBBLES,
|
||||
STR_002C_PLASTIC,
|
||||
STR_002D_FIZZY_DRINKS,
|
||||
},
|
||||
|
||||
{ /* candy unitrs of volume */
|
||||
STR_PASSENGERS,
|
||||
STR_TONS,
|
||||
STR_BAGS,
|
||||
STR_NOTHING,
|
||||
STR_NOTHING,
|
||||
STR_TONS,
|
||||
STR_TONS,
|
||||
STR_LITERS,
|
||||
STR_TONS,
|
||||
STR_NOTHING,
|
||||
STR_LITERS,
|
||||
STR_NOTHING
|
||||
},
|
||||
|
||||
/* candy weights */
|
||||
{
|
||||
1, 16, 4, 2, 4, 5, 16, 16, 16, 1, 16, 2
|
||||
},
|
||||
|
||||
/* candy sprites */
|
||||
{
|
||||
SPR_CARGO_PASSENGER, SPR_CARGO_SUGAR, SPR_CARGO_MAIL, SPR_CARGO_TOYS, SPR_CARGO_BATTERIES,
|
||||
SPR_CARGO_CANDY, SPR_CARGO_TOFFEE, SPR_CARGO_WATERCOLA, SPR_CARGO_COTTONCANDY, SPR_CARGO_BUBBLES,
|
||||
SPR_CARGO_PLASTIC, SPR_CARGO_FIZZYDRINK
|
||||
},
|
||||
|
||||
/* candy initial cargo payment */
|
||||
{
|
||||
3185, 4437, 4550, 5574, 4322, 6144, 4778, 4892, 5005, 5077, 4664, 6250
|
||||
},
|
||||
|
||||
/* candy transit days table 1 */
|
||||
{
|
||||
0, 20, 20, 25, 2, 8, 14, 5, 10, 20, 30, 30,
|
||||
},
|
||||
|
||||
/* candy transit days table 2 */
|
||||
{
|
||||
24, 255, 90, 255, 30, 40, 60, 75, 25, 80, 255, 50
|
||||
},
|
||||
}
|
||||
};
|
167
src/table/landscape_sprite.h
Normal file
167
src/table/landscape_sprite.h
Normal file
@@ -0,0 +1,167 @@
|
||||
/* $Id$ */
|
||||
|
||||
static const SpriteID _landscape_spriteindexes_1[] = {
|
||||
0xF67, 0xF9F,
|
||||
0xAAD, 0xAB0,
|
||||
0x83A, 0x845,
|
||||
0xFA0, 0xFC9,
|
||||
0x43F, 0x45E,
|
||||
0x566, 0x56D,
|
||||
0x945, 0x94C,
|
||||
0x3ED, 0x40C,
|
||||
0x515, 0x51C,
|
||||
0x55A, 0x561,
|
||||
0x534, 0x546,
|
||||
0x93D, 0x944,
|
||||
0x955, 0x95C,
|
||||
0xFDD, 0xFEC,
|
||||
0x87D, 0x883,
|
||||
0xA2B, 0xA39,
|
||||
0x497, 0x4B0,
|
||||
0x572, 0x575,
|
||||
0x94D, 0x954,
|
||||
0x818, 0x81D,
|
||||
0x3DE, 0x3EB,
|
||||
0x1212, 0x1212,
|
||||
END
|
||||
};
|
||||
|
||||
static const SpriteID _landscape_spriteindexes_2[] = {
|
||||
0xF67, 0xF9F,
|
||||
0xAAD, 0xAB0,
|
||||
0xFA0, 0xFC9,
|
||||
0x43F, 0x45E,
|
||||
0x566, 0x56D,
|
||||
0x945, 0x94C,
|
||||
0x3ED, 0x40C,
|
||||
0x515, 0x51C,
|
||||
0x55A, 0x561,
|
||||
0x547, 0x559,
|
||||
0x93D, 0x944,
|
||||
0x955, 0x95C,
|
||||
0xFDD, 0xFEC,
|
||||
0x87D, 0x883,
|
||||
0xA2B, 0xA39,
|
||||
0x497, 0x4B0,
|
||||
0x572, 0x575,
|
||||
0x94D, 0x954,
|
||||
0x5AE, 0x5AF,
|
||||
0x118D, 0x11D8,
|
||||
0x534, 0x546,
|
||||
0x40D, 0x426,
|
||||
0x45F, 0x478,
|
||||
0x4B1, 0x4CA,
|
||||
0x95D, 0x97C,
|
||||
0x3DE, 0x3EB,
|
||||
0x562, 0x565,
|
||||
0x56E, 0x571,
|
||||
0x57A, 0x57D,
|
||||
0x83A, 0x845,
|
||||
0xFF5, 0xFF5,
|
||||
0xFF8, 0xFF8,
|
||||
0x1212, 0x1212,
|
||||
END
|
||||
};
|
||||
|
||||
static const SpriteID _landscape_spriteindexes_3[] = {
|
||||
0xF54, 0xF9F,
|
||||
0xFDD, 0xFE5,
|
||||
0xFEC, 0xFEC,
|
||||
0xFA0, 0xFC9,
|
||||
0x818, 0x81D,
|
||||
0x521, 0x546,
|
||||
0x57E, 0x57F,
|
||||
0x3ED, 0x40C,
|
||||
0x43F, 0x45E,
|
||||
0x491, 0x4B0,
|
||||
0xA48, 0xA48,
|
||||
0x4FB, 0x50A,
|
||||
0x55A, 0x561,
|
||||
0x566, 0x56D,
|
||||
0x572, 0x579,
|
||||
0x427, 0x42C,
|
||||
0x479, 0x47E,
|
||||
0x4CB, 0x4D0,
|
||||
0x4EF, 0x4FA,
|
||||
0xE9D, 0xECC,
|
||||
0xF3D, 0xF40,
|
||||
0xB59, 0xB60,
|
||||
0xE5D, 0xE6C,
|
||||
0xA49, 0xA59,
|
||||
0xA63, 0xA68,
|
||||
0xA5A, 0xA62,
|
||||
0xA78, 0xA83,
|
||||
0xA69, 0xA77,
|
||||
0xA84, 0xAA3,
|
||||
0xAA7, 0xAAC,
|
||||
0xA2B, 0xA47,
|
||||
0x3DE, 0x3EB,
|
||||
0x47F, 0x488,
|
||||
0x4D1, 0x4DA,
|
||||
0x42D, 0x436,
|
||||
0x515, 0x51C,
|
||||
0x580, 0x585,
|
||||
0xC14, 0xCB3,
|
||||
0xAAD, 0xAB0,
|
||||
0xAB5, 0xB00,
|
||||
0xB69, 0xB70,
|
||||
0xB61, 0xB68,
|
||||
0xBC9, 0xBD0,
|
||||
0xBD9, 0xBE0,
|
||||
0xBA9, 0xBB0,
|
||||
0xBC1, 0xBC4,
|
||||
0x2D0, 0x2D0,
|
||||
0xAA5, 0xAA6,
|
||||
0x50F, 0x50F,
|
||||
0x2EA, 0x2EA,
|
||||
0x2ED, 0x2EE,
|
||||
0x512, 0x513,
|
||||
0x4EB, 0x4EE,
|
||||
0x4E7, 0x4EA,
|
||||
0x985, 0xA28,
|
||||
0x10E4, 0x1133,
|
||||
0x93D, 0x95C,
|
||||
0x97D, 0x984,
|
||||
0x7DA, 0x7DA,
|
||||
0x2E6, 0x2E6,
|
||||
0x1, 0x1,
|
||||
0xE54, 0xE54,
|
||||
0x51F, 0x520,
|
||||
0x514, 0x514,
|
||||
0x511, 0x511,
|
||||
0x322, 0x322,
|
||||
END
|
||||
};
|
||||
|
||||
|
||||
/* Slope graphics indexes temperate climate
|
||||
Skip first 3 sprites and only load the proper set */
|
||||
static const SpriteID _slopes_spriteindexes_0[] = {
|
||||
SKIP, 3,
|
||||
SPR_SLOPES_BASE, SPR_SLOPES_BASE + 73,
|
||||
END
|
||||
};
|
||||
|
||||
/* Slope graphics indexes arctic climate
|
||||
Skip first 79 sprites and only load the proper set */
|
||||
static const SpriteID _slopes_spriteindexes_1[] = {
|
||||
SKIP, 79,
|
||||
SPR_SLOPES_BASE, SPR_SLOPES_BASE + 73,
|
||||
END
|
||||
};
|
||||
|
||||
/* Slope graphics indexes tropical climate
|
||||
Skip first 155 sprites and only load the proper set */
|
||||
static const SpriteID _slopes_spriteindexes_2[] = {
|
||||
SKIP, 155,
|
||||
SPR_SLOPES_BASE, SPR_SLOPES_BASE + 73,
|
||||
END
|
||||
};
|
||||
|
||||
/* Slope graphics indexes toyland climate
|
||||
Skip first 231 sprites and only load the proper set */
|
||||
static const SpriteID _slopes_spriteindexes_3[] = {
|
||||
SKIP, 231,
|
||||
SPR_SLOPES_BASE, SPR_SLOPES_BASE + 73,
|
||||
END
|
||||
};
|
3302
src/table/namegen.h
Normal file
3302
src/table/namegen.h
Normal file
File diff suppressed because it is too large
Load Diff
199
src/table/palettes.h
Normal file
199
src/table/palettes.h
Normal file
@@ -0,0 +1,199 @@
|
||||
/* $Id$ */
|
||||
|
||||
#define M(r, g, b) { r, g, b }
|
||||
static const Colour _palettes[][256] = {
|
||||
/* palette 1 (TTD Windows) */
|
||||
{
|
||||
M( 0, 0, 0), M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
|
||||
M(212, 0, 212), M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
|
||||
M(212, 0, 212), M(212, 0, 212), M(168, 168, 168), M(184, 184, 184),
|
||||
M(200, 200, 200), M(216, 216, 216), M(232, 232, 232), M(252, 252, 252),
|
||||
M( 52, 60, 72), M( 68, 76, 92), M( 88, 96, 112), M(108, 116, 132),
|
||||
M(132, 140, 152), M(156, 160, 172), M(176, 184, 196), M(204, 208, 220),
|
||||
M( 48, 44, 4), M( 64, 60, 12), M( 80, 76, 20), M( 96, 92, 28),
|
||||
M(120, 120, 64), M(148, 148, 100), M(176, 176, 132), M(204, 204, 168),
|
||||
M(100, 100, 100), M(116, 116, 116), M(104, 80, 44), M(124, 104, 72),
|
||||
M(152, 132, 92), M(184, 160, 120), M(212, 188, 148), M(244, 220, 176),
|
||||
M(132, 132, 132), M( 88, 4, 16), M(112, 16, 32), M(136, 32, 52),
|
||||
M(160, 56, 76), M(188, 84, 108), M(204, 104, 124), M(220, 132, 144),
|
||||
M(236, 156, 164), M(252, 188, 192), M(252, 212, 0), M(252, 232, 60),
|
||||
M(252, 248, 128), M( 76, 40, 0), M( 96, 60, 8), M(116, 88, 28),
|
||||
M(136, 116, 56), M(156, 136, 80), M(176, 156, 108), M(196, 180, 136),
|
||||
M( 68, 24, 0), M( 96, 44, 4), M(128, 68, 8), M(156, 96, 16),
|
||||
M(184, 120, 24), M(212, 156, 32), M(232, 184, 16), M(252, 212, 0),
|
||||
M(252, 248, 128), M(252, 252, 192), M( 32, 4, 0), M( 64, 20, 8),
|
||||
M( 84, 28, 16), M(108, 44, 28), M(128, 56, 40), M(148, 72, 56),
|
||||
M(168, 92, 76), M(184, 108, 88), M(196, 128, 108), M(212, 148, 128),
|
||||
M( 8, 52, 0), M( 16, 64, 0), M( 32, 80, 4), M( 48, 96, 4),
|
||||
M( 64, 112, 12), M( 84, 132, 20), M(104, 148, 28), M(128, 168, 44),
|
||||
M( 64, 64, 64), M( 44, 68, 32), M( 60, 88, 48), M( 80, 104, 60),
|
||||
M(104, 124, 76), M(128, 148, 92), M(152, 176, 108), M(180, 204, 124),
|
||||
M( 16, 52, 24), M( 32, 72, 44), M( 56, 96, 72), M( 76, 116, 88),
|
||||
M( 96, 136, 108), M(120, 164, 136), M(152, 192, 168), M(184, 220, 200),
|
||||
M( 32, 24, 0), M( 56, 28, 0), M( 80, 80, 80), M( 88, 52, 12),
|
||||
M(104, 64, 24), M(124, 84, 44), M(140, 108, 64), M(160, 128, 88),
|
||||
M( 76, 40, 16), M( 96, 52, 24), M(116, 68, 40), M(136, 84, 56),
|
||||
M(164, 96, 64), M(184, 112, 80), M(204, 128, 96), M(212, 148, 112),
|
||||
M(224, 168, 128), M(236, 188, 148), M( 80, 28, 4), M(100, 40, 20),
|
||||
M(120, 56, 40), M(140, 76, 64), M(160, 100, 96), M(184, 136, 136),
|
||||
M( 36, 40, 68), M( 48, 52, 84), M( 64, 64, 100), M( 80, 80, 116),
|
||||
M(100, 100, 136), M(132, 132, 164), M(172, 172, 192), M(212, 212, 224),
|
||||
M( 48, 48, 48), M( 64, 44, 144), M( 88, 64, 172), M(104, 76, 196),
|
||||
M(120, 88, 224), M(140, 104, 252), M(160, 136, 252), M(188, 168, 252),
|
||||
M( 0, 24, 108), M( 0, 36, 132), M( 0, 52, 160), M( 0, 72, 184),
|
||||
M( 0, 96, 212), M( 24, 120, 220), M( 56, 144, 232), M( 88, 168, 240),
|
||||
M(128, 196, 252), M(188, 224, 252), M( 16, 64, 96), M( 24, 80, 108),
|
||||
M( 40, 96, 120), M( 52, 112, 132), M( 80, 140, 160), M(116, 172, 192),
|
||||
M(156, 204, 220), M(204, 240, 252), M(172, 52, 52), M(212, 52, 52),
|
||||
M(252, 52, 52), M(252, 100, 88), M(252, 144, 124), M(252, 184, 160),
|
||||
M(252, 216, 200), M(252, 244, 236), M( 72, 20, 112), M( 92, 44, 140),
|
||||
M(112, 68, 168), M(140, 100, 196), M(168, 136, 224), M(204, 180, 252),
|
||||
M(204, 180, 252), M(232, 208, 252), M( 60, 0, 0), M( 92, 0, 0),
|
||||
M(128, 0, 0), M(160, 0, 0), M(196, 0, 0), M(224, 0, 0),
|
||||
M(252, 0, 0), M(252, 80, 0), M(252, 108, 0), M(252, 136, 0),
|
||||
M(252, 164, 0), M(252, 192, 0), M(252, 220, 0), M(252, 252, 0),
|
||||
M(204, 136, 8), M(228, 144, 4), M(252, 156, 0), M(252, 176, 48),
|
||||
M(252, 196, 100), M(252, 216, 152), M( 8, 24, 88), M( 12, 36, 104),
|
||||
M( 20, 52, 124), M( 28, 68, 140), M( 40, 92, 164), M( 56, 120, 188),
|
||||
M( 72, 152, 216), M(100, 172, 224), M( 92, 156, 52), M(108, 176, 64),
|
||||
M(124, 200, 76), M(144, 224, 92), M(224, 244, 252), M(204, 240, 252),
|
||||
M(180, 220, 236), M(132, 188, 216), M( 88, 152, 172), M( 16, 16, 16),
|
||||
M( 32, 32, 32), M( 8, 92, 104), M( 16, 100, 112), M( 24, 108, 120),
|
||||
M( 32, 116, 128), M( 44, 124, 140), M( 92, 164, 184), M(116, 180, 196),
|
||||
M(148, 200, 216), M(180, 220, 232), M(216, 244, 252), M( 0, 0, 0),
|
||||
M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
|
||||
M(252, 60, 0), M(252, 80, 0), M(252, 104, 0), M(252, 128, 0),
|
||||
M(252, 148, 0), M(252, 172, 0), M(252, 196, 0), M(252, 0, 0),
|
||||
M(252, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
|
||||
M(252, 228, 0), M(148, 148, 148), M(212, 0, 212), M(212, 0, 212),
|
||||
M(212, 0, 212), M(212, 0, 212), M(212, 0, 212), M(212, 0, 212),
|
||||
M(212, 0, 212), M(212, 0, 212), M(212, 0, 212), M(252, 252, 252)
|
||||
},
|
||||
|
||||
/* palette 2 (mixed TTD DOS + TTD Windows palette */
|
||||
{
|
||||
M( 0, 0, 0), M( 16, 16, 16), M( 32, 32, 32), M( 48, 48, 48),
|
||||
M( 65, 64, 65), M( 82, 80, 82), M( 98, 101, 98), M(115, 117, 115),
|
||||
M(131, 133, 131), M(148, 149, 148), M(168, 168, 168), M(184, 184, 184),
|
||||
M(200, 200, 200), M(216, 216, 216), M(232, 232, 232), M(252, 252, 252),
|
||||
M( 52, 60, 72), M( 68, 76, 92), M( 88, 96, 112), M(108, 116, 132),
|
||||
M(132, 140, 152), M(156, 160, 172), M(176, 184, 196), M(204, 208, 220),
|
||||
M( 48, 44, 4), M( 64, 60, 12), M( 80, 76, 20), M( 96, 92, 28),
|
||||
M(120, 120, 64), M(148, 148, 100), M(176, 176, 132), M(204, 204, 168),
|
||||
M( 72, 44, 4), M( 88, 60, 20), M(104, 80, 44), M(124, 104, 72),
|
||||
M(152, 132, 92), M(184, 160, 120), M(212, 188, 148), M(244, 220, 176),
|
||||
M( 64, 0, 4), M( 88, 4, 16), M(112, 16, 32), M(136, 32, 52),
|
||||
M(160, 56, 76), M(188, 84, 108), M(204, 104, 124), M(220, 132, 144),
|
||||
M(236, 156, 164), M(252, 188, 192), M(252, 212, 0), M(252, 232, 60),
|
||||
M(252, 248, 128), M( 76, 40, 0), M( 96, 60, 8), M(116, 88, 28),
|
||||
M(136, 116, 56), M(156, 136, 80), M(176, 156, 108), M(196, 180, 136),
|
||||
M( 68, 24, 0), M( 96, 44, 4), M(128, 68, 8), M(156, 96, 16),
|
||||
M(184, 120, 24), M(212, 156, 32), M(232, 184, 16), M(252, 212, 0),
|
||||
M(252, 248, 128), M(252, 252, 192), M( 32, 4, 0), M( 64, 20, 8),
|
||||
M( 84, 28, 16), M(108, 44, 28), M(128, 56, 40), M(148, 72, 56),
|
||||
M(168, 92, 76), M(184, 108, 88), M(196, 128, 108), M(212, 148, 128),
|
||||
M( 8, 52, 0), M( 16, 64, 0), M( 32, 80, 4), M( 48, 96, 4),
|
||||
M( 64, 112, 12), M( 84, 132, 20), M(104, 148, 28), M(128, 168, 44),
|
||||
M( 28, 52, 24), M( 44, 68, 32), M( 60, 88, 48), M( 80, 104, 60),
|
||||
M(104, 124, 76), M(128, 148, 92), M(152, 176, 108), M(180, 204, 124),
|
||||
M( 16, 52, 24), M( 32, 72, 44), M( 56, 96, 72), M( 76, 116, 88),
|
||||
M( 96, 136, 108), M(120, 164, 136), M(152, 192, 168), M(184, 220, 200),
|
||||
M( 32, 24, 0), M( 56, 28, 0), M( 72, 40, 0), M( 88, 52, 12),
|
||||
M(104, 64, 24), M(124, 84, 44), M(140, 108, 64), M(160, 128, 88),
|
||||
M( 76, 40, 16), M( 96, 52, 24), M(116, 68, 40), M(136, 84, 56),
|
||||
M(164, 96, 64), M(184, 112, 80), M(204, 128, 96), M(212, 148, 112),
|
||||
M(224, 168, 128), M(236, 188, 148), M( 80, 28, 4), M(100, 40, 20),
|
||||
M(120, 56, 40), M(140, 76, 64), M(160, 100, 96), M(184, 136, 136),
|
||||
M( 36, 40, 68), M( 48, 52, 84), M( 64, 64, 100), M( 80, 80, 116),
|
||||
M(100, 100, 136), M(132, 132, 164), M(172, 172, 192), M(212, 212, 224),
|
||||
M( 40, 20, 112), M( 64, 44, 144), M( 88, 64, 172), M(104, 76, 196),
|
||||
M(120, 88, 224), M(140, 104, 252), M(160, 136, 252), M(188, 168, 252),
|
||||
M( 0, 24, 108), M( 0, 36, 132), M( 0, 52, 160), M( 0, 72, 184),
|
||||
M( 0, 96, 212), M( 24, 120, 220), M( 56, 144, 232), M( 88, 168, 240),
|
||||
M(128, 196, 252), M(188, 224, 252), M( 16, 64, 96), M( 24, 80, 108),
|
||||
M( 40, 96, 120), M( 52, 112, 132), M( 80, 140, 160), M(116, 172, 192),
|
||||
M(156, 204, 220), M(204, 240, 252), M(172, 52, 52), M(212, 52, 52),
|
||||
M(252, 52, 52), M(252, 100, 88), M(252, 144, 124), M(252, 184, 160),
|
||||
M(252, 216, 200), M(252, 244, 236), M( 72, 20, 112), M( 92, 44, 140),
|
||||
M(112, 68, 168), M(140, 100, 196), M(168, 136, 224), M(204, 180, 252),
|
||||
M(204, 180, 252), M(232, 208, 252), M( 60, 0, 0), M( 92, 0, 0),
|
||||
M(128, 0, 0), M(160, 0, 0), M(196, 0, 0), M(224, 0, 0),
|
||||
M(252, 0, 0), M(252, 80, 0), M(252, 108, 0), M(252, 136, 0),
|
||||
M(252, 164, 0), M(252, 192, 0), M(252, 220, 0), M(252, 252, 0),
|
||||
M(204, 136, 8), M(228, 144, 4), M(252, 156, 0), M(252, 176, 48),
|
||||
M(252, 196, 100), M(252, 216, 152), M( 8, 24, 88), M( 12, 36, 104),
|
||||
M( 20, 52, 124), M( 28, 68, 140), M( 40, 92, 164), M( 56, 120, 188),
|
||||
M( 72, 152, 216), M(100, 172, 224), M( 92, 156, 52), M(108, 176, 64),
|
||||
M(124, 200, 76), M(144, 224, 92), M(224, 244, 252), M(204, 240, 252),
|
||||
M(180, 220, 236), M(132, 188, 216), M( 88, 152, 172), M( 16, 16, 16),
|
||||
M( 32, 32, 32), M( 8, 92, 104), M( 16, 100, 112), M( 24, 108, 120),
|
||||
M( 32, 116, 128), M( 44, 124, 140), M( 92, 164, 184), M(116, 180, 196),
|
||||
M(148, 200, 216), M(180, 220, 232), M(216, 244, 252), M( 0, 0, 0),
|
||||
M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
|
||||
M(252, 60, 0), M(252, 80, 0), M(252, 104, 0), M(252, 128, 0),
|
||||
M(252, 148, 0), M(252, 172, 0), M(252, 196, 0), M(252, 0, 0),
|
||||
M(252, 0, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0),
|
||||
M(252, 228, 0), M(148, 148, 148), M( 16, 101, 115), M( 24, 109, 123),
|
||||
M( 32, 117, 131), M( 41, 125, 139), M( 90, 165, 189), M(115, 182, 197),
|
||||
M(148, 202, 222), M(180, 222, 238), M(222, 246, 255), M(252, 252, 252)
|
||||
}
|
||||
};
|
||||
|
||||
#define GET_PALETTE(x) _palettes[x]
|
||||
|
||||
typedef struct {
|
||||
Colour a[15]; // dark blue water
|
||||
Colour ac[15]; // dark blue water Toyland
|
||||
Colour lighthouse[12]; // lighthouse & stadium
|
||||
Colour oil_ref[21]; // oil refinery
|
||||
Colour e[15]; // ???
|
||||
Colour b[45]; // glittery water
|
||||
Colour bc[45]; // glittery water Toyland
|
||||
} ExtraPaletteValues;
|
||||
|
||||
static const ExtraPaletteValues _extra_palette_values = {
|
||||
{ M( 32, 68, 112), M( 36, 72, 116), M( 40, 76, 120), M( 44, 80, 124),
|
||||
M( 48, 84, 128) },
|
||||
{ M( 28, 108, 124), M( 32, 112, 128), M( 36, 116, 132), M( 40, 120, 136),
|
||||
M( 44, 124, 140) },
|
||||
{ M(240, 208, 0), M( 0, 0, 0), M( 0, 0, 0), M( 0, 0, 0) },
|
||||
{ M(252, 60, 0), M(252, 84, 0), M(252, 108, 0), M(252, 124, 0),
|
||||
M(252, 148, 0), M(252, 172, 0), M(252, 196, 0) },
|
||||
{ M( 76, 24, 8), M(108, 44, 24), M(144, 72, 52), M(176, 108, 84),
|
||||
M(212, 148, 128) },
|
||||
{ M(216, 244, 252), M(172, 208, 224), M(132, 172, 196), M(100, 132, 168),
|
||||
M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
|
||||
M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144), M( 72, 100, 144),
|
||||
M(100, 132, 168), M(132, 172, 196), M(172, 208, 224) },
|
||||
{ M(216, 244, 252), M(180, 220, 232), M(148, 200, 216), M(116, 180, 196),
|
||||
M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
|
||||
M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184), M( 92, 164, 184),
|
||||
M(116, 180, 196), M(148, 200, 216), M(180, 220, 232) }
|
||||
};
|
||||
#undef M
|
||||
|
||||
// Color table for colors in lang files (e.g. {BLACK})
|
||||
typedef struct StringColor {
|
||||
byte text;
|
||||
byte shadow;
|
||||
} StringColor;
|
||||
|
||||
static const StringColor _string_colormap[] = {
|
||||
{ 150, 215 }, // BLUE
|
||||
{ 12, 215 }, // SILVER
|
||||
{ 189, 215 }, // GOLD
|
||||
{ 184, 215 }, // RED
|
||||
{ 174, 215 }, // PURPLE
|
||||
{ 30, 215 }, // LTBROWN
|
||||
{ 195, 215 }, // ORANGE
|
||||
{ 209, 215 }, // GREEN
|
||||
{ 68, 215 }, // YELLOW
|
||||
{ 95, 215 }, // DKGREEN
|
||||
{ 79, 215 }, // CREAM
|
||||
{ 116, 215 }, // BROWN
|
||||
{ 15, 215 }, // WHITE
|
||||
{ 152, 215 }, // LTBLUE
|
||||
{ 32, 215 }, // GRAY
|
||||
{ 133, 215 }, // DKBLUE
|
||||
{ 215, 0 }, // BLACK
|
||||
};
|
281
src/table/road_land.h
Normal file
281
src/table/road_land.h
Normal file
@@ -0,0 +1,281 @@
|
||||
/* $Id$ */
|
||||
|
||||
#define TILE_SEQ_LINE(img, dx, dy, sx, sy) { dx, dy, 0, sx, sy, 20, img },
|
||||
#define TILE_SEQ_END() { 0, 0, 0, 0, 0, 0, 0 }
|
||||
|
||||
static const DrawTileSeqStruct _road_depot_NE[] = {
|
||||
TILE_SEQ_LINE(0x584 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _road_depot_SE[] = {
|
||||
TILE_SEQ_LINE(0x580, 0, 0, 1, 16)
|
||||
TILE_SEQ_LINE(0x581 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _road_depot_SW[] = {
|
||||
TILE_SEQ_LINE(0x582, 0, 0, 16, 1)
|
||||
TILE_SEQ_LINE(0x583 | PALETTE_MODIFIER_COLOR, 0, 15, 16, 1)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _road_depot_NW[] = {
|
||||
TILE_SEQ_LINE(0x585 | PALETTE_MODIFIER_COLOR, 15, 0, 1, 16)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSprites _road_depot[] = {
|
||||
{ 0xA4A, _road_depot_NE },
|
||||
{ 0xA4A, _road_depot_SE },
|
||||
{ 0xA4A, _road_depot_SW },
|
||||
{ 0xA4A, _road_depot_NW }
|
||||
};
|
||||
|
||||
#undef TILE_SEQ_BEGIN
|
||||
#undef TILE_SEQ_LINE
|
||||
#undef TILE_SEQ_END
|
||||
|
||||
|
||||
static const SpriteID _road_tile_sprites_1[16] = {
|
||||
0, 0x546, 0x545, 0x53B, 0x544, 0x534, 0x53E, 0x539,
|
||||
0x543, 0x53C, 0x535, 0x538, 0x53D, 0x537, 0x53A, 0x536
|
||||
};
|
||||
|
||||
|
||||
|
||||
#define MAKELINE(a, b, c) { a, b, c },
|
||||
#define ENDLINE { 0, 0, 0 }
|
||||
static const DrawRoadTileStruct _road_display_datas2_0[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_1[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_2[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_3[] = {
|
||||
MAKELINE(0x57f, 1, 8)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_4[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_5[] = {
|
||||
MAKELINE(0x57f, 1, 8)
|
||||
MAKELINE(0x57e, 14, 8)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_6[] = {
|
||||
MAKELINE(0x57e, 8, 1)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_7[] = {
|
||||
MAKELINE(0x57f, 1, 8)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_8[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_9[] = {
|
||||
MAKELINE(0x57f, 8, 14)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_10[] = {
|
||||
MAKELINE(0x57f, 8, 14)
|
||||
MAKELINE(0x57e, 8, 1)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_11[] = {
|
||||
MAKELINE(0x57f, 8, 14)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_12[] = {
|
||||
MAKELINE(0x57e, 8, 1)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_13[] = {
|
||||
MAKELINE(0x57e, 14, 8)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_14[] = {
|
||||
MAKELINE(0x57e, 8, 1)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_15[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_16[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_17[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_18[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_19[] = {
|
||||
MAKELINE(0x1212, 0, 2)
|
||||
MAKELINE(0x1212, 3, 9)
|
||||
MAKELINE(0x1212, 10, 12)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_20[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_21[] = {
|
||||
MAKELINE(0x1212, 0, 2)
|
||||
MAKELINE(0x1212, 0, 10)
|
||||
MAKELINE(0x1212, 12, 2)
|
||||
MAKELINE(0x1212, 12, 10)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_22[] = {
|
||||
MAKELINE(0x1212, 10, 0)
|
||||
MAKELINE(0x1212, 3, 3)
|
||||
MAKELINE(0x1212, 0, 10)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_23[] = {
|
||||
MAKELINE(0x1212, 0, 2)
|
||||
MAKELINE(0x1212, 0, 10)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_24[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_25[] = {
|
||||
MAKELINE(0x1212, 12, 2)
|
||||
MAKELINE(0x1212, 9, 9)
|
||||
MAKELINE(0x1212, 2, 12)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_26[] = {
|
||||
MAKELINE(0x1212, 2, 0)
|
||||
MAKELINE(0x1212, 10, 0)
|
||||
MAKELINE(0x1212, 2, 12)
|
||||
MAKELINE(0x1212, 10, 12)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_27[] = {
|
||||
MAKELINE(0x1212, 2, 12)
|
||||
MAKELINE(0x1212, 10, 12)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_28[] = {
|
||||
MAKELINE(0x1212, 2, 0)
|
||||
MAKELINE(0x1212, 9, 3)
|
||||
MAKELINE(0x1212, 12, 10)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_29[] = {
|
||||
MAKELINE(0x1212, 12, 2)
|
||||
MAKELINE(0x1212, 12, 10)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_30[] = {
|
||||
MAKELINE(0x1212, 2, 0)
|
||||
MAKELINE(0x1212, 10, 0)
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_31[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct _road_display_datas2_32[] = {
|
||||
ENDLINE
|
||||
};
|
||||
|
||||
#undef MAKELINE
|
||||
#undef ENDLINE
|
||||
|
||||
static const DrawRoadTileStruct* const _road_display_table_1[] = {
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
_road_display_datas2_32,_road_display_datas2_32,
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct* const _road_display_table_2[] = {
|
||||
_road_display_datas2_0,
|
||||
_road_display_datas2_1,
|
||||
_road_display_datas2_2,
|
||||
_road_display_datas2_3,
|
||||
_road_display_datas2_4,
|
||||
_road_display_datas2_5,
|
||||
_road_display_datas2_6,
|
||||
_road_display_datas2_7,
|
||||
_road_display_datas2_8,
|
||||
_road_display_datas2_9,
|
||||
_road_display_datas2_10,
|
||||
_road_display_datas2_11,
|
||||
_road_display_datas2_12,
|
||||
_road_display_datas2_13,
|
||||
_road_display_datas2_14,
|
||||
_road_display_datas2_15,
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct* const _road_display_table_3[] = {
|
||||
_road_display_datas2_16,
|
||||
_road_display_datas2_17,
|
||||
_road_display_datas2_18,
|
||||
_road_display_datas2_19,
|
||||
_road_display_datas2_20,
|
||||
_road_display_datas2_21,
|
||||
_road_display_datas2_22,
|
||||
_road_display_datas2_23,
|
||||
|
||||
_road_display_datas2_24,
|
||||
_road_display_datas2_25,
|
||||
_road_display_datas2_26,
|
||||
_road_display_datas2_27,
|
||||
_road_display_datas2_28,
|
||||
_road_display_datas2_29,
|
||||
_road_display_datas2_30,
|
||||
_road_display_datas2_31,
|
||||
};
|
||||
|
||||
static const DrawRoadTileStruct* const * const _road_display_table[] = {
|
||||
_road_display_table_1,
|
||||
_road_display_table_1,
|
||||
_road_display_table_1,
|
||||
_road_display_table_2,
|
||||
_road_display_table_1,
|
||||
_road_display_table_3,
|
||||
};
|
1077
src/table/roadveh.h
Normal file
1077
src/table/roadveh.h
Normal file
File diff suppressed because it is too large
Load Diff
1397
src/table/sprites.h
Normal file
1397
src/table/sprites.h
Normal file
File diff suppressed because it is too large
Load Diff
1203
src/table/station_land.h
Normal file
1203
src/table/station_land.h
Normal file
File diff suppressed because it is too large
Load Diff
2226
src/table/town_land.h
Normal file
2226
src/table/town_land.h
Normal file
File diff suppressed because it is too large
Load Diff
52
src/table/track_land.h
Normal file
52
src/table/track_land.h
Normal file
@@ -0,0 +1,52 @@
|
||||
/* $Id$ */
|
||||
|
||||
#define TILE_SEQ_LINE(img, dx, dy, sx, sy) { dx, dy, 0, sx, sy, 23, img },
|
||||
#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 }
|
||||
|
||||
|
||||
static const DrawTileSeqStruct _depot_gfx_NE[] = {
|
||||
TILE_SEQ_LINE(SPR_RAIL_DEPOT_NE | PALETTE_MODIFIER_COLOR, 2, 13, 13, 1)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _depot_gfx_SE[] = {
|
||||
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SE_1 | PALETTE_MODIFIER_COLOR, 2, 2, 1, 13)
|
||||
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SE_2 | PALETTE_MODIFIER_COLOR, 13, 2, 1, 13)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _depot_gfx_SW[] = {
|
||||
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SW_1 | PALETTE_MODIFIER_COLOR, 2, 2, 13, 1)
|
||||
TILE_SEQ_LINE(SPR_RAIL_DEPOT_SW_2 | PALETTE_MODIFIER_COLOR, 2, 13, 13, 1)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _depot_gfx_NW[] = {
|
||||
TILE_SEQ_LINE(SPR_RAIL_DEPOT_NW | PALETTE_MODIFIER_COLOR, 13, 2, 1, 13)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSprites _depot_gfx_table[] = {
|
||||
{ SPR_FLAT_GRASS_TILE, _depot_gfx_NE },
|
||||
{ SPR_RAIL_TRACK_Y, _depot_gfx_SE },
|
||||
{ SPR_RAIL_TRACK_X, _depot_gfx_SW },
|
||||
{ SPR_FLAT_GRASS_TILE, _depot_gfx_NW }
|
||||
};
|
||||
|
||||
|
||||
static const DrawTileSeqStruct _waypoint_gfx_X[] = {
|
||||
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_X_1, 0, 0, 16, 5)
|
||||
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_X_2, 0, 11, 16, 5)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _waypoint_gfx_Y[] = {
|
||||
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_Y_1, 0, 0, 5, 16)
|
||||
TILE_SEQ_LINE(PALETTE_MODIFIER_COLOR | SPR_WAYPOINT_Y_2, 11, 0, 5, 16)
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSprites _waypoint_gfx_table[] = {
|
||||
{ SPR_RAIL_TRACK_X, _waypoint_gfx_X },
|
||||
{ SPR_RAIL_TRACK_Y, _waypoint_gfx_Y }
|
||||
};
|
57
src/table/train_cmd.h
Normal file
57
src/table/train_cmd.h
Normal file
@@ -0,0 +1,57 @@
|
||||
/* $Id$ */
|
||||
|
||||
static const SpriteID _engine_sprite_base[] = {
|
||||
0x0B59, 0x0B61, 0x0B69, 0x0BE1, 0x0B71, 0x0B75, 0x0B7D, 0x0B7D,
|
||||
0x0B85, 0x0B85, 0x0B8D, 0x0B8D, 0x0BC9, 0x0BD1, 0x0BD9, 0x0BE9,
|
||||
0x0BED, 0x0BED, 0x0BF5, 0x0BF9, 0x0B79, 0x0B9D, 0x0B9D, 0x0B95,
|
||||
0x0B95, 0x0BA5, 0x0BA9, 0x0BA9, 0x0BC1, 0x0BC5, 0x0BB1, 0x0BB9,
|
||||
0x0BB9, 0x0AAD, 0x0AB1, 0x0AB5, 0x0AB9, 0x0ABD, 0x0AC1, 0x0AC9,
|
||||
0x0ACD, 0x0AD5, 0x0AD1, 0x0AD9, 0x0AC5, 0x0AD1, 0x0AD5, 0x0AF9,
|
||||
0x0AFD, 0x0B05, 0x0AB9, 0x0AC1, 0x0AC9, 0x0AD1, 0x0AD9, 0x0AE1,
|
||||
0x0AE5, 0x0AE9, 0x0AF1, 0x0AF9, 0x0B0D, 0x0B11, 0x0B15, 0x0B19,
|
||||
0x0B1D, 0x0B21, 0x0B29, 0x0B2D, 0x0B35, 0x0B31, 0x0B39, 0x0B25,
|
||||
0x0B31, 0x0B35,
|
||||
};
|
||||
|
||||
/* For how many directions do we have sprites? (8 or 4; if 4, the other 4
|
||||
* directions are symmetric. */
|
||||
static const byte _engine_sprite_and[] = {
|
||||
7, 7, 7, 7, 3, 3, 7, 7,
|
||||
7, 7, 7, 7, 7, 7, 7, 3,
|
||||
7, 7, 3, 7, 3, 7, 7, 7,
|
||||
7, 3, 7, 7, 3, 3, 7, 7,
|
||||
7, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 3,
|
||||
};
|
||||
|
||||
/* Non-zero for multihead trains. */
|
||||
static const byte _engine_sprite_add[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 4,
|
||||
0, 4, 0, 4, 0, 0, 0, 0,
|
||||
0, 4, 0, 0, 0, 0, 4, 0,
|
||||
4, 0, 0, 4, 0, 0, 0, 0,
|
||||
4, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0,
|
||||
};
|
||||
|
||||
|
||||
static const byte _wagon_full_adder[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 44, 0, 0, 0, 0, 24,
|
||||
24, 24, 24, 0, 0, 32, 32, 0,
|
||||
4, 4, 4, 4, 4, 4, 4, 0,
|
||||
0, 4, 4, 4, 0, 44, 0, 0,
|
||||
0, 0, 24, 24, 24, 24, 0, 0,
|
||||
32, 32
|
||||
};
|
228
src/table/tree_land.h
Normal file
228
src/table/tree_land.h
Normal file
@@ -0,0 +1,228 @@
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef TREE_LAND_H
|
||||
#define TREE_LAND_H
|
||||
|
||||
static const SpriteID _tree_sprites_1[] = {
|
||||
SPR_FLAT_1_QUART_SNOWY_TILE,
|
||||
SPR_FLAT_2_QUART_SNOWY_TILE,
|
||||
SPR_FLAT_3_QUART_SNOWY_TILE,
|
||||
SPR_FLAT_SNOWY_TILE
|
||||
};
|
||||
|
||||
static const byte _tree_base_by_landscape[4] = {0, 12, 20, 32};
|
||||
static const byte _tree_count_by_landscape[4] = {12, 8, 12, 9};
|
||||
|
||||
typedef struct TreePos {
|
||||
uint8 x;
|
||||
uint8 y;
|
||||
} TreePos;
|
||||
|
||||
static const TreePos _tree_layout_xy[][4] = {
|
||||
{ { 9, 3 }, { 1, 8 }, { 0, 0 }, { 8, 9 } },
|
||||
{ { 4, 4 }, { 9, 1 }, { 6, 9 }, { 0, 9 } },
|
||||
{ { 9, 1 }, { 0, 9 }, { 6, 6 }, { 3, 0 } },
|
||||
{ { 3, 9 }, { 8, 2 }, { 9, 9 }, { 1, 5 } }
|
||||
};
|
||||
|
||||
static const PalSpriteID _tree_layout_sprite[164+(79-48+1)][4] = {
|
||||
{ 0x652, 0x659, 0x660, 0x667}, /* 0 */
|
||||
{ 0x652, 0x667, 0x66e, 0x675}, /* 1 */
|
||||
{ 0x652, 0x66e, 0x659, 0x675}, /* 2 */
|
||||
{ 0x652, 0x652, 0x660, 0x66e}, /* 3 */
|
||||
{ 0x660, 0x667, 0x659, 0x652}, /* 4 */
|
||||
{ 0x660, 0x675, 0x660, 0x660}, /* 5 */
|
||||
{ 0x660, 0x652, 0x652, 0x66e}, /* 6 */
|
||||
{ 0x660, 0x675, 0x667, 0x659}, /* 7 */
|
||||
{ 0x675, 0x660, 0x675, 0x675}, /* 8 */
|
||||
{ 0x675, 0x659, 0x652, 0x652}, /* 9 */
|
||||
{ 0x675, 0x66e, 0x652, 0x652}, /* 10 */
|
||||
{ 0x675, 0x667, 0x659, 0x667}, /* 11 */
|
||||
{ 0x628, 0x652, 0x660, 0x62f}, /* 12 */
|
||||
{ 0x628, 0x636, 0x675, 0x644}, /* 13 */
|
||||
{ 0x628, 0x652, 0x63d, 0x66e}, /* 14 */
|
||||
{ 0x628, 0x667, 0x644, 0x652}, /* 15 */
|
||||
{ 0x644, 0x659, 0x660, 0x628}, /* 16 */
|
||||
{ 0x644, 0x64b, 0x659, 0x636}, /* 17 */
|
||||
{ 0x644, 0x675, 0x652, 0x63d}, /* 18 */
|
||||
{ 0x644, 0x63d, 0x66e, 0x652}, /* 19 */
|
||||
{ 0x636, 0x636, 0x628, 0x636}, /* 20 */
|
||||
{ 0x636, 0x63d, 0x636, 0x636}, /* 21 */
|
||||
{ 0x636, 0x64b, 0x636, 0x636}, /* 22 */
|
||||
{ 0x636, 0x636, 0x636, 0x636}, /* 23 */
|
||||
{ 0x64b, 0x628, 0x62f, 0x636}, /* 24 */
|
||||
{ 0x64b, 0x63d, 0x644, 0x636}, /* 25 */
|
||||
{ 0x64b, 0x636, 0x63d, 0x628}, /* 26 */
|
||||
{ 0x64b, 0x64b, 0x636, 0x63d}, /* 27 */
|
||||
{ 0x62f, 0x644, 0x644, 0x636}, /* 28 */
|
||||
{ 0x62f, 0x62f, 0x636, 0x628}, /* 29 */
|
||||
{ 0x62f, 0x64b, 0x636, 0x636}, /* 30 */
|
||||
{ 0x62f, 0x636, 0x62f, 0x636}, /* 31 */
|
||||
{ 0x67c, 0x675, 0x683, 0x67c}, /* 32 */
|
||||
{ 0x67c, 0x69f, 0x67c, 0x659}, /* 33 */
|
||||
{ 0x67c, 0x67c, 0x67c, 0x6a6}, /* 34 */
|
||||
{ 0x67c, 0x691, 0x66e, 0x68a}, /* 35 */
|
||||
{ 0x68a, 0x68a, 0x698, 0x68a}, /* 36 */
|
||||
{ 0x68a, 0x698, 0x683, 0x68a}, /* 37 */
|
||||
{ 0x68a, 0x67c, 0x691, 0x68a}, /* 38 */
|
||||
{ 0x68a, 0x683, 0x6a6, 0x69f}, /* 39 */
|
||||
{ 0x698, 0x68a, 0x698, 0x652}, /* 40 */
|
||||
{ 0x698, 0x698, 0x660, 0x667}, /* 41 */
|
||||
{ 0x698, 0x67c, 0x6a6, 0x698}, /* 42 */
|
||||
{ 0x698, 0x698, 0x698, 0x691}, /* 43 */
|
||||
{ 0x6a6, 0x6a6, 0x67c, 0x660}, /* 44 */
|
||||
{ 0x6a6, 0x69f, 0x6a6, 0x652}, /* 45 */
|
||||
{ 0x6a6, 0x67c, 0x6a6, 0x691}, /* 46 */
|
||||
{ 0x6a6, 0x691, 0x69f, 0x6a6}, /* 47 */
|
||||
{ 0x6ad, 0x6ad, 0x6ad, 0x6ad}, /* 48 */
|
||||
{ 0x6ad, 0x6ad, 0x6c2, 0x6d0}, /* 49 */
|
||||
{ 0x6ad, 0x6d7, 0x6ad, 0x6ad}, /* 50 */
|
||||
{ 0x6ad, 0x6d0, 0x6c9, 0x6ad}, /* 51 */
|
||||
{ 0x6d0, 0x6d0, 0x6d0, 0x6ad}, /* 52 */
|
||||
{ 0x6d0, 0x6ad, 0x6d7, 0x6c9}, /* 53 */
|
||||
{ 0x6d0, 0x6d7, 0x6d0, 0x6c2}, /* 54 */
|
||||
{ 0x6d0, 0x6d0, 0x6d0, 0x6ad}, /* 55 */
|
||||
{ 0x6d7, 0x6d7, 0x6d7, 0x6d7}, /* 56 */
|
||||
{ 0x6d7, 0x6d7, 0x6ad, 0x6ad}, /* 57 */
|
||||
{ 0x6d7, 0x6d0, 0x6d7, 0x6ad}, /* 58 */
|
||||
{ 0x6d7, 0x6d7, 0x6d0, 0x6ad}, /* 59 */
|
||||
{ 0x6c2, 0x6d0, 0x6c9, 0x6c2}, /* 60 */
|
||||
{ 0x6c2, 0x6c9, 0x6c2, 0x6ad}, /* 61 */
|
||||
{ 0x6c2, 0x6c2, 0x6c2, 0x6ad}, /* 62 */
|
||||
{ 0x6c2, 0x6c2, 0x6c2, 0x6c9}, /* 63 */
|
||||
{ 0x6c9, 0x6d0, 0x6b4, 0x6c2}, /* 64 */
|
||||
{ 0x6c9, 0x6bb, 0x6de, 0x6d7}, /* 65 */
|
||||
{ 0x6c9, 0x6c2, 0x6bb, 0x6b4}, /* 66 */
|
||||
{ 0x6c9, 0x6bb, 0x6c2, 0x6de}, /* 67 */
|
||||
{ 0x6b4, 0x6b4, 0x6de, 0x6c9}, /* 68 */
|
||||
{ 0x6b4, 0x6bb, 0x6bb, 0x6ad}, /* 69 */
|
||||
{ 0x6b4, 0x6de, 0x6bb, 0x6b4}, /* 70 */
|
||||
{ 0x6b4, 0x6ad, 0x6c2, 0x6de}, /* 71 */
|
||||
{ 0x6bb, 0x6d0, 0x6de, 0x6c2}, /* 72 */
|
||||
{ 0x6bb, 0x6b4, 0x6bb, 0x6d7}, /* 73 */
|
||||
{ 0x6bb, 0x6de, 0x6bb, 0x6b4}, /* 74 */
|
||||
{ 0x6bb, 0x6c9, 0x6c2, 0x6de}, /* 75 */
|
||||
{ 0x6de, 0x6d7, 0x6de, 0x6c2}, /* 76 */
|
||||
{ 0x6de, 0x6bb, 0x6de, 0x6d0}, /* 77 */
|
||||
{ 0x6de, 0x6de, 0x6bb, 0x6b4}, /* 78 */
|
||||
{ 0x6de, 0x6c9, 0x6c2, 0x6de}, /* 79 */
|
||||
{ 0x72b, 0x732, 0x72b, 0x739}, /* 80 */
|
||||
{ 0x72b, 0x747, 0x755, 0x72b}, /* 81 */
|
||||
{ 0x72b, 0x72b, 0x76a, 0x786}, /* 82 */
|
||||
{ 0x72b, 0x74e, 0x72b, 0x72b}, /* 83 */
|
||||
{ 0x732, 0x732, 0x72b, 0x739}, /* 84 */
|
||||
{ 0x732, 0x747, 0x732, 0x732}, /* 85 */
|
||||
{ 0x732, 0x732, 0x755, 0x794}, /* 86 */
|
||||
{ 0x732, 0x74e, 0x732, 0x78d}, /* 87 */
|
||||
{ 0x747, 0x732, 0x747, 0x740}, /* 88 */
|
||||
{ 0x747, 0x747, 0x732, 0x76a}, /* 89 */
|
||||
{ 0x747, 0x72b, 0x755, 0x747}, /* 90 */
|
||||
{ 0x747, 0x786, 0x732, 0x747}, /* 91 */
|
||||
{ 0x74e, 0x74e, 0x72b, 0x794}, /* 92 */
|
||||
{ 0x74e, 0x755, 0x732, 0x74e}, /* 93 */
|
||||
{ 0x74e, 0x72b, 0x786, 0x747}, /* 94 */
|
||||
{ 0x74e, 0x74e, 0x732, 0x794}, /* 95 */
|
||||
{ 0x76a, 0x76a, 0x74e, 0x74e}, /* 96 */
|
||||
{ 0x76a, 0x794, 0x732, 0x76a}, /* 97 */
|
||||
{ 0x76a, 0x732, 0x786, 0x76a}, /* 98 */
|
||||
{ 0x76a, 0x786, 0x732, 0x78d}, /* 99 */
|
||||
{ 0x78d, 0x78d, 0x74e, 0x794}, /* 100 */
|
||||
{ 0x78d, 0x732, 0x739, 0x747}, /* 101 */
|
||||
{ 0x78d, 0x732, 0x786, 0x76a}, /* 102 */
|
||||
{ 0x78d, 0x786, 0x78d, 0x794}, /* 103 */
|
||||
{ 0x786, 0x786, 0x740, 0x732}, /* 104 */
|
||||
{ 0x786, 0x786, 0x72b, 0x732}, /* 105 */
|
||||
{ 0x786, 0x732, 0x786, 0x786}, /* 106 */
|
||||
{ 0x786, 0x786, 0x78d, 0x794}, /* 107 */
|
||||
{ 0x778, 0x778, 0x77f, 0x778}, /* 108 */
|
||||
{ 0x778, 0x77f, 0x778, 0x77f}, /* 109 */
|
||||
{ 0x778, 0x77f, 0x77f, 0x778}, /* 110 */
|
||||
{ 0x778, 0x778, 0x778, 0x77f}, /* 111 */
|
||||
{ 0x75c, 0x71d, 0x75c, 0x724}, /* 112 */
|
||||
{ 0x75c, 0x72b, 0x75c, 0x763}, /* 113 */
|
||||
{ 0x75c, 0x75c, 0x771, 0x71d}, /* 114 */
|
||||
{ 0x75c, 0x771, 0x75c, 0x75c}, /* 115 */
|
||||
{ 0x771, 0x771, 0x75c, 0x71d}, /* 116 */
|
||||
{ 0x771, 0x747, 0x75c, 0x771}, /* 117 */
|
||||
{ 0x771, 0x75c, 0x771, 0x724}, /* 118 */
|
||||
{ 0x771, 0x771, 0x75c, 0x763}, /* 119 */
|
||||
{ 0x71d, 0x71d, 0x771, 0x724}, /* 120 */
|
||||
{ 0x71d, 0x74e, 0x763, 0x71d}, /* 121 */
|
||||
{ 0x71d, 0x724, 0x794, 0x71d}, /* 122 */
|
||||
{ 0x71d, 0x71d, 0x75c, 0x78d}, /* 123 */
|
||||
{ 0x794, 0x724, 0x75c, 0x794}, /* 124 */
|
||||
{ 0x794, 0x794, 0x75c, 0x71d}, /* 125 */
|
||||
{ 0x794, 0x724, 0x794, 0x71d}, /* 126 */
|
||||
{ 0x794, 0x794, 0x771, 0x78d}, /* 127 */
|
||||
{ 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 */
|
||||
{ 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 */
|
||||
{ 0x6e5, 0x70f, 0x6e5, 0x6e5}, /* 2 */
|
||||
{ 0x6e5, 0x708, 0x701, 0x6e5}, /* 3 */
|
||||
{ 0x708, 0x708, 0x708, 0x6e5}, /* 4 */
|
||||
{ 0x708, 0x6e5, 0x70f, 0x701}, /* 5 */
|
||||
{ 0x708, 0x70f, 0x708, 0x6fa}, /* 6 */
|
||||
{ 0x708, 0x708, 0x708, 0x6e5}, /* 7 */
|
||||
{ 0x70f, 0x70f, 0x70f, 0x70f}, /* 8 */
|
||||
{ 0x70f, 0x70f, 0x6e5, 0x6e5}, /* 9 */
|
||||
{ 0x70f, 0x708, 0x70f, 0x6e5}, /* 10 */
|
||||
{ 0x70f, 0x70f, 0x708, 0x6e5}, /* 11 */
|
||||
{ 0x6fa, 0x708, 0x701, 0x6fa}, /* 12 */
|
||||
{ 0x6fa, 0x701, 0x6fa, 0x6e5}, /* 13 */
|
||||
{ 0x6fa, 0x6fa, 0x6fa, 0x6e5}, /* 14 */
|
||||
{ 0x6fa, 0x6fa, 0x6fa, 0x701}, /* 15 */
|
||||
{ 0x701, 0x708, 0x6ec, 0x6fa}, /* 16 */
|
||||
{ 0x701, 0x6f3, 0x716, 0x70f}, /* 17 */
|
||||
{ 0x701, 0x6fa, 0x6f3, 0x6ec}, /* 18 */
|
||||
{ 0x701, 0x6f3, 0x6fa, 0x716}, /* 19 */
|
||||
{ 0x6ec, 0x6ec, 0x716, 0x701}, /* 20 */
|
||||
{ 0x6ec, 0x6f3, 0x6f3, 0x6e5}, /* 21 */
|
||||
{ 0x6ec, 0x716, 0x6f3, 0x6ec}, /* 22 */
|
||||
{ 0x6ec, 0x6e5, 0x6fa, 0x716}, /* 23 */
|
||||
{ 0x6f3, 0x708, 0x716, 0x6fa}, /* 24 */
|
||||
{ 0x6f3, 0x6ec, 0x6f3, 0x70f}, /* 25 */
|
||||
{ 0x6f3, 0x716, 0x6f3, 0x6ec}, /* 26 */
|
||||
{ 0x6f3, 0x701, 0x6fa, 0x716}, /* 27 */
|
||||
{ 0x716, 0x70f, 0x716, 0x6fa}, /* 28 */
|
||||
{ 0x716, 0x6f3, 0x716, 0x708}, /* 29 */
|
||||
{ 0x716, 0x716, 0x6f3, 0x6ec}, /* 30 */
|
||||
{ 0x716, 0x701, 0x6fa, 0x716}, /* 31 */
|
||||
};
|
||||
|
||||
#endif /* TREE_LAND_H */
|
21
src/table/unicode.h
Normal file
21
src/table/unicode.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* $Id$ */
|
||||
|
||||
|
||||
typedef struct DefaultUnicodeMapping {
|
||||
WChar code; ///< Unicode value
|
||||
byte key; ///< Character index of sprite
|
||||
} DefaultUnicodeMapping;
|
||||
|
||||
|
||||
/* Default unicode mapping table for sprite based glyphs.
|
||||
* This table allows us use unicode characters even though the glyphs don't
|
||||
* exist, or are in the wrong place, in the standard sprite fonts.
|
||||
* This is not used for FreeType rendering */
|
||||
|
||||
static DefaultUnicodeMapping _default_unicode_map[] = {
|
||||
{ 0x010D, 0x63 }, /* Small letter c with caron */
|
||||
{ 0x0160, 0xA6 }, /* Capital letter s with caron */
|
||||
{ 0x0161, 0xA8 }, /* Small letter s with caron */
|
||||
{ 0x017E, 0xB8 }, /* Small letter z with caron */
|
||||
{ 0x20AC, 0xA4 }, /* Euro symbol */
|
||||
};
|
131
src/table/unmovable_land.h
Normal file
131
src/table/unmovable_land.h
Normal file
@@ -0,0 +1,131 @@
|
||||
/* $Id$ */
|
||||
|
||||
typedef struct DrawTileUnmovableStruct {
|
||||
uint16 image;
|
||||
byte subcoord_x;
|
||||
byte subcoord_y;
|
||||
byte width;
|
||||
byte height;
|
||||
byte z_size;
|
||||
byte unused;
|
||||
} DrawTileUnmovableStruct;
|
||||
|
||||
#define TILE_SEQ_END() { 0x80, 0, 0, 0, 0, 0, 0 }
|
||||
|
||||
static const DrawTileUnmovableStruct _draw_tile_unmovable_data[] = {
|
||||
{0xA29, 7, 7, 2, 2, 70, 0},
|
||||
{0xA2A, 4, 4, 7, 7, 61, 0},
|
||||
};
|
||||
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_0[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_1[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_2[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_3[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_4[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_5[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_6[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_7[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_8[] = {
|
||||
{ 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, 0xA36 | PALETTE_MODIFIER_COLOR },
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_10[] = {
|
||||
{ 0, 0, 0, 16, 16, 20, 0xA38 | PALETTE_MODIFIER_COLOR },
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_11[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_12[] = {
|
||||
{ 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, 0xA3D | PALETTE_MODIFIER_COLOR },
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_14[] = {
|
||||
{ 0, 0, 0, 16, 16, 50, 0xA3F | PALETTE_MODIFIER_COLOR },
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_15[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_16[] = {
|
||||
{ 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, 0xA44 | PALETTE_MODIFIER_COLOR },
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_18[] = {
|
||||
{ 0, 0, 0, 16, 16, 60, 0xA46 | PALETTE_MODIFIER_COLOR },
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSeqStruct _unmovable_display_datas_19[] = {
|
||||
TILE_SEQ_END()
|
||||
};
|
||||
|
||||
static const DrawTileSprites _unmovable_display_datas[] = {
|
||||
{ 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 },
|
||||
};
|
151
src/table/water_land.h
Normal file
151
src/table/water_land.h
Normal file
@@ -0,0 +1,151 @@
|
||||
/* $Id$ */
|
||||
|
||||
typedef struct WaterDrawTileStruct {
|
||||
byte delta_x;
|
||||
byte delta_y;
|
||||
byte delta_z;
|
||||
byte width;
|
||||
byte height;
|
||||
byte unk;
|
||||
SpriteID image;
|
||||
} WaterDrawTileStruct;
|
||||
|
||||
#define BEGIN(image) { 0, 0, 0, 0, 0, 0, image }
|
||||
#define END(y) { 0x80, y, 0, 0, 0, 0, 0 }
|
||||
|
||||
static const WaterDrawTileStruct _shipdepot_display_seq_1[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 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, 0xFE6 | PALETTE_MODIFIER_COLOR },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shipdepot_display_seq_3[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 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, 0xFE7 | PALETTE_MODIFIER_COLOR },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct* const _shipdepot_display_seq[] = {
|
||||
_shipdepot_display_seq_1,
|
||||
_shipdepot_display_seq_2,
|
||||
_shipdepot_display_seq_3,
|
||||
_shipdepot_display_seq_4,
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_0[] = {
|
||||
BEGIN(SPR_CANALS_BASE + 6),
|
||||
{ 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 0 + 1 },
|
||||
{ 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 4 + 1 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_1[] = {
|
||||
BEGIN(SPR_CANALS_BASE + 5),
|
||||
{ 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 0 },
|
||||
{ 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 4 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_2[] = {
|
||||
BEGIN(SPR_CANALS_BASE + 7),
|
||||
{ 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 0 + 2 },
|
||||
{ 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 4 + 2 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_3[] = {
|
||||
BEGIN(SPR_CANALS_BASE + 8),
|
||||
{ 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 0 + 3 },
|
||||
{ 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 4 + 3 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_0b[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 8 + 1 },
|
||||
{ 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 12 + 1 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_1b[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 8 },
|
||||
{ 0xF, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 12 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_2b[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 8 + 2 },
|
||||
{ 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 12 + 2 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_3b[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 8 + 3 },
|
||||
{ 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 12 + 3 },
|
||||
END(0)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_0t[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 16 + 1 },
|
||||
{ 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 20 + 1 },
|
||||
END(8)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_1t[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 16 },
|
||||
{ 0xF, 0, 0, 0x1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 20 },
|
||||
END(8)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_2t[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 16 + 2 },
|
||||
{ 0, 0xF, 0, 0x10, 1, 0x14, SPR_CANALS_BASE + 9 + 20 + 2 },
|
||||
END(8)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct _shiplift_display_seq_3t[] = {
|
||||
BEGIN(0xFDD),
|
||||
{ 0, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 16 + 3 },
|
||||
{ 0xF, 0, 0, 1, 0x10, 0x14, SPR_CANALS_BASE + 9 + 20 + 3 },
|
||||
END(8)
|
||||
};
|
||||
|
||||
static const WaterDrawTileStruct* const _shiplift_display_seq[] = {
|
||||
_shiplift_display_seq_0,
|
||||
_shiplift_display_seq_1,
|
||||
_shiplift_display_seq_2,
|
||||
_shiplift_display_seq_3,
|
||||
|
||||
_shiplift_display_seq_0b,
|
||||
_shiplift_display_seq_1b,
|
||||
_shiplift_display_seq_2b,
|
||||
_shiplift_display_seq_3b,
|
||||
|
||||
_shiplift_display_seq_0t,
|
||||
_shiplift_display_seq_1t,
|
||||
_shiplift_display_seq_2t,
|
||||
_shiplift_display_seq_3t,
|
||||
};
|
||||
|
||||
#undef BEGIN
|
||||
#undef END
|
Reference in New Issue
Block a user