summaryrefslogtreecommitdiff
path: root/src/table
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2007-11-15 07:42:25 +0000
committerrubidium <rubidium@openttd.org>2007-11-15 07:42:25 +0000
commitf546de602b9c59c3fbaaea8fac5f008ed0443fea (patch)
tree16f3e2ff6c7d1a27f793c7fea834b2625afd09ab /src/table
parentf28723830fc92c4ef2235739a1dd85d686235211 (diff)
downloadopenttd-f546de602b9c59c3fbaaea8fac5f008ed0443fea.tar.xz
(svn r11433) -Fix: starting OpenTTD with DOS files made it look weird out of the box.
-Change: make extra sprites (the ones not in the TTD GRFs) replaceable using Action 5. -Feature: make replacing contiguous subsets of sprites in for some types possible in Action 5. Note to GRF authors: when you replaced OpenTTD sprites that are not from the TTD GRF files using Action A, your GRF will not have the intended result anymore as the sprite numbers have changed. You should replace the Action A with an Action 5 from now on.
Diffstat (limited to 'src/table')
-rw-r--r--src/table/files.h31
-rw-r--r--src/table/landscape_sprite.h67
-rw-r--r--src/table/sprites.h506
3 files changed, 264 insertions, 340 deletions
diff --git a/src/table/files.h b/src/table/files.h
index 62b5bb51e..80c05843f 100644
--- a/src/table/files.h
+++ b/src/table/files.h
@@ -31,7 +31,10 @@ static FileList files_dos = {
{ "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} }
- }
+ },
+ { "SAMPLE.CAT", {0x42, 0x2e, 0xa3, 0xdd, 0x07, 0x4d, 0x28, 0x59, 0xbb, 0x51, 0x63, 0x9a, 0x6e, 0x0e, 0x85, 0xda} },
+ { "CHARS.GRF", {0x5f, 0x2e, 0xbf, 0x05, 0xb6, 0x12, 0x65, 0x81, 0xd2, 0x10, 0xa9, 0x19, 0x62, 0x41, 0x70, 0x64} },
+ { "OPENTTDD.GRF", {0x85, 0x5f, 0x38, 0xa6, 0xb2, 0xc9, 0xd7, 0x51, 0xaa, 0xca, 0x0d, 0xae, 0xd9, 0x8d, 0x71, 0x98} }
};
static FileList files_win = {
@@ -42,26 +45,8 @@ static FileList files_win = {
{ "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", { 0x16, 0x5c, 0x0f, 0xba, 0x63, 0x6a, 0x77, 0x30, 0x44, 0xb0, 0x32, 0xe6, 0x4a, 0xc7, 0x90, 0x58 } },
- { "trkfoundw.grf", { 0x12, 0x33, 0x3f, 0xa3, 0xd1, 0x86, 0x8b, 0x04, 0x53, 0x18, 0x9c, 0xee, 0xf9, 0x2d, 0xf5, 0x95 } },
- { "roadstops.grf", { 0xa1, 0x5b, 0xb3, 0x52, 0x60, 0x12, 0x3c, 0xb7, 0x7b, 0x73, 0x09, 0xc1, 0x1a, 0xb4, 0xd0, 0xb8 } },
- { "group.grf", { 0xe8, 0x52, 0x5f, 0x1c, 0x3e, 0xf9, 0x91, 0x9d, 0x0f, 0x70, 0x8c, 0x8a, 0x21, 0xa4, 0xc7, 0x02 } },
- { "tramtrkw.grf", { 0x83, 0x0a, 0xf4, 0x9f, 0x29, 0x10, 0x48, 0xfd, 0x76, 0xe9, 0xda, 0xac, 0x5d, 0xa2, 0x30, 0x45 } },
- { "oneway.grf", { 0xbb, 0xc6, 0xa3, 0xb2, 0xb3, 0xa0, 0xc9, 0x3c, 0xc9, 0xee, 0x24, 0x7c, 0xb6, 0x51, 0x74, 0x63 } },
- { "halffndw.grf", { 0xf2, 0x10, 0xe0, 0xc1, 0xa1, 0xdc, 0xb3, 0x6e, 0x3f, 0xce, 0xb8, 0x98, 0x1a, 0x08, 0xb0, 0x67 } },
- { "halfselw.grf", { 0xf2, 0x12, 0x2e, 0x88, 0x58, 0x08, 0xc4, 0xa5, 0xbd, 0x91, 0xb3, 0xc2, 0x5b, 0x5a, 0xb9, 0xf4 } },
- { "flags.grf", { 0xa1, 0xd7, 0x72, 0x75, 0x0e, 0x81, 0x86, 0x0e, 0xc9, 0xcd, 0xc2, 0x57, 0xb2, 0x19, 0xe1, 0x0c } },
+ },
+ { "SAMPLE.CAT", {0x92, 0x12, 0xe8, 0x1e, 0x72, 0xba, 0xdd, 0x4b, 0xbe, 0x1e, 0xae, 0xae, 0x66, 0x45, 0x8e, 0x10} },
+ { "CHARS.GRF", {0x5f, 0x2e, 0xbf, 0x05, 0xb6, 0x12, 0x65, 0x81, 0xd2, 0x10, 0xa9, 0x19, 0x62, 0x41, 0x70, 0x64} },
+ { "OPENTTDW.GRF", {0x3e, 0xff, 0xe8, 0x43, 0xc9, 0x31, 0xf6, 0x9d, 0x0b, 0x40, 0xb1, 0x64, 0xbf, 0x16, 0xde, 0x5a} }
};
diff --git a/src/table/landscape_sprite.h b/src/table/landscape_sprite.h
index b395c3a44..01b143077 100644
--- a/src/table/landscape_sprite.h
+++ b/src/table/landscape_sprite.h
@@ -137,70 +137,3 @@ static const SpriteID _landscape_spriteindexes_3[] = {
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_VIRTUAL_BASE + 15, SPR_SLOPES_VIRTUAL_BASE + 4 * SPR_TRKFOUND_BLOCK_SIZE,
- 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_VIRTUAL_BASE + 15, SPR_SLOPES_VIRTUAL_BASE + 4 * SPR_TRKFOUND_BLOCK_SIZE,
- 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_VIRTUAL_BASE + 15, SPR_SLOPES_VIRTUAL_BASE + 4 * SPR_TRKFOUND_BLOCK_SIZE,
- 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_VIRTUAL_BASE + 15, SPR_SLOPES_VIRTUAL_BASE + 4 * SPR_TRKFOUND_BLOCK_SIZE,
- END
-};
-
-/* Halftile foundation indexes for temperate climate */
-static const SpriteID _halftile_foundation_spriteindexes_0[] = {
- SPR_HALFTILE_FOUNDATION_BASE, SPR_HALFTILE_FOUNDATION_BASE + 4 * SPR_HALFTILE_BLOCK_SIZE - 1,
- END
-};
-
-/* Halftile foundation indexes for arctic climate */
-static const SpriteID _halftile_foundation_spriteindexes_1[] = {
- SKIP, 16,
- SPR_HALFTILE_FOUNDATION_BASE, SPR_HALFTILE_FOUNDATION_BASE + 4 * SPR_HALFTILE_BLOCK_SIZE - 1,
- END
-};
-
-/* Halftile foundation indexes for tropic climate */
-static const SpriteID _halftile_foundation_spriteindexes_2[] = {
- SKIP, 32,
- SPR_HALFTILE_FOUNDATION_BASE, SPR_HALFTILE_FOUNDATION_BASE + 4 * SPR_HALFTILE_BLOCK_SIZE - 1,
- END
-};
-
-/* Halftile foundation indexes for toyland climate */
-static const SpriteID _halftile_foundation_spriteindexes_3[] = {
- SKIP, 48,
- SPR_HALFTILE_FOUNDATION_BASE, SPR_HALFTILE_FOUNDATION_BASE + 4 * SPR_HALFTILE_BLOCK_SIZE - 1,
- END
-};
-
-/* Slope graphics indexes for Action 05 type 06, 90 sprites */
-static const SpriteID _slopes_action05_90[] = {
- SPR_SLOPES_VIRTUAL_BASE + 15, SPR_SLOPES_VIRTUAL_BASE + 4 * SPR_TRKFOUND_BLOCK_SIZE,
- SPR_HALFTILE_FOUNDATION_BASE, SPR_HALFTILE_FOUNDATION_BASE + 4 * SPR_HALFTILE_BLOCK_SIZE - 1,
- END
-};
diff --git a/src/table/sprites.h b/src/table/sprites.h
index 39fee27b8..53caede35 100644
--- a/src/table/sprites.h
+++ b/src/table/sprites.h
@@ -10,9 +10,6 @@
*
* @NOTE:
* ALL SPRITE NUMBERS BELOW 5126 are in the main files
- * SPR_CANALS_BASE is in canalsw.grf
- * SPR_SLOPES_BASE is in trkfoundw.grf
- * SPR_OPENTTD_BASE is in openttd.grf
*
* All elements which consist of two elements should
* have the same name and then suffixes
@@ -46,118 +43,133 @@ enum Sprites {
SPR_ASCII_SPACE_SMALL = 226,
SPR_ASCII_SPACE_BIG = 450,
+ SPR_LARGE_SMALL_WINDOW = 682,
+
/* Extra graphic spritenumbers */
- OPENTTD_SPRITES_COUNT = 122, // number of gfx-sprites in openttd.grf
- SPR_SIGNALS_BASE = 4896,
- SPR_CANALS_BASE = SPR_SIGNALS_BASE + 486,
-
- SPR_SLOPES_BASE = SPR_CANALS_BASE + 70,
- SPR_SLOPES_INCLINED_OFFSET = 15,
- SPR_SLOPES_VIRTUAL_BASE = SPR_SLOPES_BASE - SPR_SLOPES_INCLINED_OFFSET, // The original foundations (see SPR_FOUNDATION_BASE below) are mapped before the additional foundations.
- SPR_TRKFOUND_BLOCK_SIZE = 22, // The sprites in trkfoundw.grf are organized in blocks of 22.
-
- /* between slopes and autorail are 4 unused sprites */
-
- SPR_AUTORAIL_BASE = SPR_SLOPES_BASE + 78,
- SPR_ELRAIL_BASE = SPR_AUTORAIL_BASE + 55,
- SPR_2CCMAP_BASE = SPR_ELRAIL_BASE + 53,
- SPR_OPENTTD_BASE = SPR_2CCMAP_BASE + 256,
-
- SPR_BLOT = SPR_OPENTTD_BASE + 29, // colored circle (mainly used as vehicle profit marker and for sever compatibility)
-
- SPR_PIN_UP = SPR_OPENTTD_BASE + 55, // pin icon
- SPR_PIN_DOWN = SPR_OPENTTD_BASE + 56,
- SPR_BOX_EMPTY = SPR_OPENTTD_BASE + 59,
- SPR_BOX_CHECKED = SPR_OPENTTD_BASE + 60,
- SPR_WINDOW_RESIZE = SPR_OPENTTD_BASE + 82, // resize icon
- SPR_HOUSE_ICON = SPR_OPENTTD_BASE + 89,
- // arrow icons pointing in all 4 directions
- SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 83,
- SPR_ARROW_UP = SPR_OPENTTD_BASE + 84,
- SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 85,
- SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 86,
+ SPR_OPENTTD_BASE = 4896,
+ OPENTTD_SPRITE_COUNT = 134,
- SPR_LARGE_SMALL_WINDOW = 682,
+ /* Halftile-selection sprites */
+ SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE,
+ SPR_HALFTILE_SELECTION_DOWN = SPR_OPENTTD_BASE + 4,
+ SPR_HALFTILE_SELECTION_UP = SPR_OPENTTD_BASE + 8,
+
+ SPR_SQUARE = SPR_OPENTTD_BASE + 38, // colored square (used for newgrf compatibility)
+ SPR_BLOT = SPR_OPENTTD_BASE + 39, // colored circle (mainly used as vehicle profit marker and for server compatibility)
+ SPR_LOCK = SPR_OPENTTD_BASE + 40, // lock icon (for password protected servers)
+ SPR_BOX_EMPTY = SPR_OPENTTD_BASE + 41,
+ SPR_BOX_CHECKED = SPR_OPENTTD_BASE + 42,
+ SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 43, // warning sign (shown if there are any newgrf errors)
+ SPR_WINDOW_RESIZE = SPR_OPENTTD_BASE + 44, // resize icon
+ /* Arrow icons pointing in all 4 directions */
+ SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 45,
+ SPR_ARROW_UP = SPR_OPENTTD_BASE + 46,
+ SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 47,
+ SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 48,
+ SPR_HOUSE_ICON = SPR_OPENTTD_BASE + 49,
+ SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 50,
+ SPR_PIN_UP = SPR_OPENTTD_BASE + 51, // pin icon
+ SPR_PIN_DOWN = SPR_OPENTTD_BASE + 52,
/* Clone vehicles stuff */
- SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 87,
- SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 104,
- SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 106,
- SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 108,
-
- SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 91,
- SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 92,
- SPR_SELL_SHIP = SPR_OPENTTD_BASE + 93,
- SPR_SELL_AIRCRAFT = SPR_OPENTTD_BASE + 94,
- SPR_SELL_ALL_TRAIN = SPR_OPENTTD_BASE + 95,
- SPR_SELL_ALL_ROADVEH = SPR_OPENTTD_BASE + 96,
- SPR_SELL_ALL_SHIP = SPR_OPENTTD_BASE + 97,
- SPR_SELL_ALL_AIRCRAFT = SPR_OPENTTD_BASE + 98,
- SPR_REPLACE_TRAIN = SPR_OPENTTD_BASE + 99,
- SPR_REPLACE_ROADVEH = SPR_OPENTTD_BASE + 100,
- SPR_REPLACE_SHIP = SPR_OPENTTD_BASE + 101,
- SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 102,
- SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 103,
-
- SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 110,
-
- SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 111, // warning sign (shown if there are any newgrf errors)
-
- /* Network GUI sprites */
- SPR_SQUARE = SPR_OPENTTD_BASE + 20, // colored square (used for newgrf compatibility)
- SPR_LOCK = SPR_OPENTTD_BASE + 19, // lock icon (for password protected servers)
-
- SPR_AIRPORTX_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITES_COUNT, // The sprites used for other airport angles
+ SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 106,
+ SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 107,
+ SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 108,
+ SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 109,
+
+ SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 93,
+ SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 94,
+ SPR_SELL_SHIP = SPR_OPENTTD_BASE + 95,
+ SPR_SELL_AIRCRAFT = SPR_OPENTTD_BASE + 96,
+ SPR_SELL_ALL_TRAIN = SPR_OPENTTD_BASE + 97,
+ SPR_SELL_ALL_ROADVEH = SPR_OPENTTD_BASE + 98,
+ SPR_SELL_ALL_SHIP = SPR_OPENTTD_BASE + 99,
+ SPR_SELL_ALL_AIRCRAFT = SPR_OPENTTD_BASE + 100,
+ SPR_REPLACE_TRAIN = SPR_OPENTTD_BASE + 101,
+ SPR_REPLACE_ROADVEH = SPR_OPENTTD_BASE + 102,
+ SPR_REPLACE_SHIP = SPR_OPENTTD_BASE + 103,
+ SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 104,
+ SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 105,
+
+ SPR_GROUP_CREATE_TRAIN = SPR_OPENTTD_BASE + 114,
+ SPR_GROUP_CREATE_ROADVEH = SPR_OPENTTD_BASE + 115,
+ SPR_GROUP_CREATE_SHIP = SPR_OPENTTD_BASE + 116,
+ SPR_GROUP_CREATE_AIRCRAFT = SPR_OPENTTD_BASE + 117,
+ SPR_GROUP_DELETE_TRAIN = SPR_OPENTTD_BASE + 118,
+ SPR_GROUP_DELETE_ROADVEH = SPR_OPENTTD_BASE + 119,
+ SPR_GROUP_DELETE_SHIP = SPR_OPENTTD_BASE + 120,
+ SPR_GROUP_DELETE_AIRCRAFT = SPR_OPENTTD_BASE + 121,
+ SPR_GROUP_RENAME_TRAIN = SPR_OPENTTD_BASE + 122,
+ SPR_GROUP_RENAME_ROADVEH = SPR_OPENTTD_BASE + 123,
+ SPR_GROUP_RENAME_SHIP = SPR_OPENTTD_BASE + 124,
+ SPR_GROUP_RENAME_AIRCRAFT = SPR_OPENTTD_BASE + 125,
+ SPR_GROUP_REPLACE_ON_TRAIN = SPR_OPENTTD_BASE + 126,
+ SPR_GROUP_REPLACE_ON_ROADVEH = SPR_OPENTTD_BASE + 127,
+ SPR_GROUP_REPLACE_ON_SHIP = SPR_OPENTTD_BASE + 128,
+ SPR_GROUP_REPLACE_ON_AIRCRAFT = SPR_OPENTTD_BASE + 129,
+ SPR_GROUP_REPLACE_OFF_TRAIN = SPR_OPENTTD_BASE + 130,
+ SPR_GROUP_REPLACE_OFF_ROADVEH = SPR_OPENTTD_BASE + 131,
+ SPR_GROUP_REPLACE_OFF_SHIP = SPR_OPENTTD_BASE + 132,
+ SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_OPENTTD_BASE + 133,
+
+ SPR_SIGNALS_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITE_COUNT,
+ PRESIGNAL_SPRITE_COUNT = 48,
+ PRESIGNAL_AND_SEMAPHORE_SPRITE_COUNT = 112,
+ PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT = 240,
+
+ SPR_CANALS_BASE = SPR_SIGNALS_BASE + PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT,
+ CANALS_SPRITE_COUNT = 65,
+
+ SPR_SLOPES_BASE = SPR_CANALS_BASE + CANALS_SPRITE_COUNT,
+ SPR_SLOPES_INCLINED_OFFSET = 15,
+ SPR_SLOPES_VIRTUAL_BASE = SPR_SLOPES_BASE - SPR_SLOPES_INCLINED_OFFSET, // The original foundations (see SPR_FOUNDATION_BASE below) are mapped before the additional foundations.
+ SPR_TRKFOUND_BLOCK_SIZE = 22, // The normal track foundation sprites are organized in blocks of 22.
+ NORMAL_FOUNDATION_SPRITE_COUNT = 74,
+ /* Halftile foundations */
+ SPR_HALFTILE_FOUNDATION_BASE = SPR_SLOPES_BASE + NORMAL_FOUNDATION_SPRITE_COUNT,
+ SPR_HALFTILE_BLOCK_SIZE = 4, // The half tile foundation sprites are organized in blocks of 4.
+ NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT = 90,
+
+ SPR_AUTORAIL_BASE = SPR_HALFTILE_FOUNDATION_BASE + NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT,
+ AUTORAIL_SPRITE_COUNT = 55,
+
+ SPR_ELRAIL_BASE = SPR_AUTORAIL_BASE + AUTORAIL_SPRITE_COUNT,
+ ELRAIL_SPRITE_COUNT = 48,
+
+ SPR_2CCMAP_BASE = SPR_ELRAIL_BASE + ELRAIL_SPRITE_COUNT,
+ TWOCCMAP_SPRITE_COUNT = 256,
+
+ SPR_AIRPORTX_BASE = SPR_2CCMAP_BASE + TWOCCMAP_SPRITE_COUNT, // The sprites used for other airport angles
SPR_NEWAIRPORT_TARMAC = SPR_AIRPORTX_BASE,
- SPR_NSRUNWAY1 = SPR_AIRPORTX_BASE + 1,
- SPR_NSRUNWAY2 = SPR_AIRPORTX_BASE + 2,
- SPR_NSRUNWAY3 = SPR_AIRPORTX_BASE + 3,
- SPR_NSRUNWAY4 = SPR_AIRPORTX_BASE + 4,
- SPR_NSRUNWAY_END = SPR_AIRPORTX_BASE + 5,
- SPR_NEWHANGAR_S = SPR_AIRPORTX_BASE + 6,
- SPR_NEWHANGAR_S_WALL = SPR_AIRPORTX_BASE + 7,
- SPR_NEWHANGAR_W = SPR_AIRPORTX_BASE + 8,
- SPR_NEWHANGAR_W_WALL = SPR_AIRPORTX_BASE + 9,
- SPR_NEWHANGAR_N = SPR_AIRPORTX_BASE + 10,
- SPR_NEWHANGAR_E = SPR_AIRPORTX_BASE + 11,
- SPR_NEWHELIPAD = SPR_AIRPORTX_BASE + 12,
- SPR_GRASS_RIGHT = SPR_AIRPORTX_BASE + 13,
- SPR_GRASS_LEFT = SPR_AIRPORTX_BASE + 14,
-
- SPR_ROADSTOP_BASE = SPR_AIRPORTX_BASE + 15, // The sprites used for drive-through road stops
- SPR_BUS_STOP_DT_Y_W = SPR_ROADSTOP_BASE,
- SPR_BUS_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 1,
- SPR_BUS_STOP_DT_X_W = SPR_ROADSTOP_BASE + 2,
- SPR_BUS_STOP_DT_X_E = SPR_ROADSTOP_BASE + 3,
+ SPR_NSRUNWAY1 = SPR_AIRPORTX_BASE + 1,
+ SPR_NSRUNWAY2 = SPR_AIRPORTX_BASE + 2,
+ SPR_NSRUNWAY3 = SPR_AIRPORTX_BASE + 3,
+ SPR_NSRUNWAY4 = SPR_AIRPORTX_BASE + 4,
+ SPR_NSRUNWAY_END = SPR_AIRPORTX_BASE + 5,
+ SPR_NEWHANGAR_S = SPR_AIRPORTX_BASE + 6,
+ SPR_NEWHANGAR_S_WALL = SPR_AIRPORTX_BASE + 7,
+ SPR_NEWHANGAR_W = SPR_AIRPORTX_BASE + 8,
+ SPR_NEWHANGAR_W_WALL = SPR_AIRPORTX_BASE + 9,
+ SPR_NEWHANGAR_N = SPR_AIRPORTX_BASE + 10,
+ SPR_NEWHANGAR_E = SPR_AIRPORTX_BASE + 11,
+ SPR_NEWHELIPAD = SPR_AIRPORTX_BASE + 12,
+ SPR_GRASS_RIGHT = SPR_AIRPORTX_BASE + 13,
+ SPR_GRASS_LEFT = SPR_AIRPORTX_BASE + 14,
+ AIRPORTX_SPRITE_COUNT = 15,
+
+ SPR_ROADSTOP_BASE = SPR_AIRPORTX_BASE + AIRPORTX_SPRITE_COUNT, // The sprites used for drive-through road stops
+ SPR_BUS_STOP_DT_Y_W = SPR_ROADSTOP_BASE,
+ SPR_BUS_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 1,
+ SPR_BUS_STOP_DT_X_W = SPR_ROADSTOP_BASE + 2,
+ SPR_BUS_STOP_DT_X_E = SPR_ROADSTOP_BASE + 3,
SPR_TRUCK_STOP_DT_Y_W = SPR_ROADSTOP_BASE + 4,
SPR_TRUCK_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 5,
SPR_TRUCK_STOP_DT_X_W = SPR_ROADSTOP_BASE + 6,
SPR_TRUCK_STOP_DT_X_E = SPR_ROADSTOP_BASE + 7,
-
- SPR_GROUP_BASE = SPR_ROADSTOP_BASE + 8, // The sprites used for the group interface
- SPR_GROUP_CREATE_TRAIN = SPR_GROUP_BASE,
- SPR_GROUP_CREATE_ROADVEH = SPR_GROUP_BASE + 1,
- SPR_GROUP_CREATE_SHIP = SPR_GROUP_BASE + 2,
- SPR_GROUP_CREATE_AIRCRAFT = SPR_GROUP_BASE + 3,
- SPR_GROUP_DELETE_TRAIN = SPR_GROUP_BASE + 4,
- SPR_GROUP_DELETE_ROADVEH = SPR_GROUP_BASE + 5,
- SPR_GROUP_DELETE_SHIP = SPR_GROUP_BASE + 6,
- SPR_GROUP_DELETE_AIRCRAFT = SPR_GROUP_BASE + 7,
- SPR_GROUP_RENAME_TRAIN = SPR_GROUP_BASE + 8,
- SPR_GROUP_RENAME_ROADVEH = SPR_GROUP_BASE + 9,
- SPR_GROUP_RENAME_SHIP = SPR_GROUP_BASE + 10,
- SPR_GROUP_RENAME_AIRCRAFT = SPR_GROUP_BASE + 11,
- SPR_GROUP_REPLACE_ON_TRAIN = SPR_GROUP_BASE + 12,
- SPR_GROUP_REPLACE_ON_ROADVEH = SPR_GROUP_BASE + 13,
- SPR_GROUP_REPLACE_ON_SHIP = SPR_GROUP_BASE + 14,
- SPR_GROUP_REPLACE_ON_AIRCRAFT = SPR_GROUP_BASE + 15,
- SPR_GROUP_REPLACE_OFF_TRAIN = SPR_GROUP_BASE + 16,
- SPR_GROUP_REPLACE_OFF_ROADVEH = SPR_GROUP_BASE + 17,
- SPR_GROUP_REPLACE_OFF_SHIP = SPR_GROUP_BASE + 18,
- SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_GROUP_BASE + 19,
+ ROADSTOP_SPRITE_COUNT = 8,
/* Tramway sprites */
- SPR_TRAMWAY_BASE = SPR_GROUP_BASE + 20,
+ SPR_TRAMWAY_BASE = SPR_ROADSTOP_BASE + ROADSTOP_SPRITE_COUNT,
SPR_TRAMWAY_OVERLAY = SPR_TRAMWAY_BASE + 4,
SPR_TRAMWAY_TRAM = SPR_TRAMWAY_BASE + 27,
SPR_TRAMWAY_SLOPED_OFFSET = 11,
@@ -173,25 +185,22 @@ enum Sprites {
SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68,
SPR_TRAMWAY_TUNNEL_WIRES = SPR_TRAMWAY_BASE + 80,
SPR_TRAMWAY_BRIDGE = SPR_TRAMWAY_BASE + 107,
+ TRAMWAY_SPRITE_COUNT = 113,
/* One way road sprites */
- SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + 113,
-
- /* Not really a sprite, but an empty bounding box. Used to construct bounding boxes, that help sorting the sprites, but do not have a sprite associated. */
- SPR_EMPTY_BOUNDING_BOX = SPR_ONEWAY_BASE + 6,
+ SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + TRAMWAY_SPRITE_COUNT,
+ ONEWAY_SPRITE_COUNT = 6,
- /* Halftile foundations */
- SPR_HALFTILE_FOUNDATION_BASE = SPR_EMPTY_BOUNDING_BOX + 1,
- SPR_HALFTILE_BLOCK_SIZE = 4, // The sprites in halffndw.grf are organized in blocks of 4.
+ /* Flags sprites (in same order as enum NetworkLanguage) */
+ SPR_FLAGS_BASE = SPR_ONEWAY_BASE + ONEWAY_SPRITE_COUNT,
+ FLAGS_SPRITE_COUNT = 29,
- /* Halftile-selection sprites */
- SPR_HALFTILE_SELECTION_BASE = SPR_HALFTILE_FOUNDATION_BASE + 4 * SPR_HALFTILE_BLOCK_SIZE,
- SPR_HALFTILE_SELECTION_FLAT = SPR_HALFTILE_SELECTION_BASE,
- SPR_HALFTILE_SELECTION_DOWN = SPR_HALFTILE_SELECTION_BASE + 4,
- SPR_HALFTILE_SELECTION_UP = SPR_HALFTILE_SELECTION_BASE + 8,
+ /* Not really a sprite, but an empty bounding box. Used to construct bounding boxes, that help sorting the sprites, but do not have a sprite associated. */
+ SPR_EMPTY_BOUNDING_BOX = SPR_FLAGS_BASE + FLAGS_SPRITE_COUNT,
+ EMPTY_BOUNDING_BOX_SPRITE_COUNT = 1,
- /* Flags sprites (in same order as enum NetworkLanguage) */
- SPR_FLAGS_BASE = SPR_HALFTILE_SELECTION_BASE + 12,
+ /* From where can we start putting NewGRFs? */
+ SPR_NEWGRFS_BASE = SPR_EMPTY_BOUNDING_BOX + EMPTY_BOUNDING_BOX_SPRITE_COUNT,
/* Manager face sprites */
SPR_GRADIENT = 874, // background gradient behind manager face
@@ -205,11 +214,6 @@ enum Sprites {
/* Shadow cell */
SPR_SHADOW_CELL = 1004,
- /* Sliced view shadow cells */
- /* Maybe we have different ones in the future */
- SPR_MAX_SLICE = SPR_OPENTTD_BASE + 64,
- SPR_MIN_SLICE = SPR_OPENTTD_BASE + 64,
-
/* Unmovables spritenumbers */
SPR_UNMOVABLE_TRANSMITTER = 2601,
SPR_UNMOVABLE_LIGHTHOUSE = 2602,
@@ -305,10 +309,10 @@ enum Sprites {
SPR_MGLV_TRACK_Y = 1175,
SPR_MGLV_TRACK_BASE = 1182,
SPR_MGLV_TRACK_N_S = 1199,
- SPR_WAYPOINT_X_1 = SPR_OPENTTD_BASE + 15,
- SPR_WAYPOINT_X_2 = SPR_OPENTTD_BASE + 16,
- SPR_WAYPOINT_Y_1 = SPR_OPENTTD_BASE + 17,
- SPR_WAYPOINT_Y_2 = SPR_OPENTTD_BASE + 18,
+ SPR_WAYPOINT_X_1 = SPR_OPENTTD_BASE + 78,
+ SPR_WAYPOINT_X_2 = SPR_OPENTTD_BASE + 79,
+ SPR_WAYPOINT_Y_1 = SPR_OPENTTD_BASE + 80,
+ SPR_WAYPOINT_Y_2 = SPR_OPENTTD_BASE + 81,
OFFSET_TILEH_IMPOSSIBLE = 0,
OFFSET_TILEH_1 = 14,
OFFSET_TILEH_2 = 15,
@@ -337,55 +341,55 @@ enum Sprites {
/* Wires. First identifier is the direction of the track, second is the required placement of the pylon.
* "short" denotes a wire that requires a pylon on each end. Third identifier is the direction of the slope
* (in positive coordinate direction) */
- SPR_WIRE_X_SHORT = SPR_ELRAIL_BASE + 3,
- SPR_WIRE_Y_SHORT = SPR_ELRAIL_BASE + 4,
- SPR_WIRE_EW_SHORT = SPR_ELRAIL_BASE + 5,
- SPR_WIRE_NS_SHORT = SPR_ELRAIL_BASE + 6,
- SPR_WIRE_X_SHORT_DOWN = SPR_ELRAIL_BASE + 7,
- SPR_WIRE_Y_SHORT_UP = SPR_ELRAIL_BASE + 8,
- SPR_WIRE_X_SHORT_UP = SPR_ELRAIL_BASE + 9,
- SPR_WIRE_Y_SHORT_DOWN = SPR_ELRAIL_BASE + 10,
-
- SPR_WIRE_X_SW = SPR_ELRAIL_BASE + 11,
- SPR_WIRE_Y_SE = SPR_ELRAIL_BASE + 12,
- SPR_WIRE_EW_E = SPR_ELRAIL_BASE + 13,
- SPR_WIRE_NS_S = SPR_ELRAIL_BASE + 14,
- SPR_WIRE_X_SW_DOWN = SPR_ELRAIL_BASE + 15,
- SPR_WIRE_Y_SE_UP = SPR_ELRAIL_BASE + 16,
- SPR_WIRE_X_SW_UP = SPR_ELRAIL_BASE + 17,
- SPR_WIRE_Y_SE_DOWN = SPR_ELRAIL_BASE + 18,
-
- SPR_WIRE_X_NE = SPR_ELRAIL_BASE + 19,
- SPR_WIRE_Y_NW = SPR_ELRAIL_BASE + 20,
- SPR_WIRE_EW_W = SPR_ELRAIL_BASE + 21,
- SPR_WIRE_NS_N = SPR_ELRAIL_BASE + 22,
- SPR_WIRE_X_NE_DOWN = SPR_ELRAIL_BASE + 23,
- SPR_WIRE_Y_NW_UP = SPR_ELRAIL_BASE + 24,
- SPR_WIRE_X_NE_UP = SPR_ELRAIL_BASE + 25,
- SPR_WIRE_Y_NW_DOWN = SPR_ELRAIL_BASE + 26,
+ SPR_WIRE_X_SHORT = SPR_ELRAIL_BASE + 0,
+ SPR_WIRE_Y_SHORT = SPR_ELRAIL_BASE + 1,
+ SPR_WIRE_EW_SHORT = SPR_ELRAIL_BASE + 2,
+ SPR_WIRE_NS_SHORT = SPR_ELRAIL_BASE + 3,
+ SPR_WIRE_X_SHORT_DOWN = SPR_ELRAIL_BASE + 4,
+ SPR_WIRE_Y_SHORT_UP = SPR_ELRAIL_BASE + 5,
+ SPR_WIRE_X_SHORT_UP = SPR_ELRAIL_BASE + 6,
+ SPR_WIRE_Y_SHORT_DOWN = SPR_ELRAIL_BASE + 7,
+
+ SPR_WIRE_X_SW = SPR_ELRAIL_BASE + 8,
+ SPR_WIRE_Y_SE = SPR_ELRAIL_BASE + 9,
+ SPR_WIRE_EW_E = SPR_ELRAIL_BASE + 10,
+ SPR_WIRE_NS_S = SPR_ELRAIL_BASE + 11,
+ SPR_WIRE_X_SW_DOWN = SPR_ELRAIL_BASE + 12,
+ SPR_WIRE_Y_SE_UP = SPR_ELRAIL_BASE + 13,
+ SPR_WIRE_X_SW_UP = SPR_ELRAIL_BASE + 14,
+ SPR_WIRE_Y_SE_DOWN = SPR_ELRAIL_BASE + 15,
+
+ SPR_WIRE_X_NE = SPR_ELRAIL_BASE + 16,
+ SPR_WIRE_Y_NW = SPR_ELRAIL_BASE + 17,
+ SPR_WIRE_EW_W = SPR_ELRAIL_BASE + 18,
+ SPR_WIRE_NS_N = SPR_ELRAIL_BASE + 19,
+ SPR_WIRE_X_NE_DOWN = SPR_ELRAIL_BASE + 20,
+ SPR_WIRE_Y_NW_UP = SPR_ELRAIL_BASE + 21,
+ SPR_WIRE_X_NE_UP = SPR_ELRAIL_BASE + 22,
+ SPR_WIRE_Y_NW_DOWN = SPR_ELRAIL_BASE + 23,
/* Tunnel entries */
- SPR_WIRE_TUNNEL_NE = SPR_ELRAIL_BASE + 27,
- SPR_WIRE_TUNNEL_SE = SPR_ELRAIL_BASE + 28,
- SPR_WIRE_TUNNEL_SW = SPR_ELRAIL_BASE + 29,
- SPR_WIRE_TUNNEL_NW = SPR_ELRAIL_BASE + 30,
+ SPR_WIRE_TUNNEL_NE = SPR_ELRAIL_BASE + 24,
+ SPR_WIRE_TUNNEL_SE = SPR_ELRAIL_BASE + 25,
+ SPR_WIRE_TUNNEL_SW = SPR_ELRAIL_BASE + 26,
+ SPR_WIRE_TUNNEL_NW = SPR_ELRAIL_BASE + 27,
/* Depot entries */
- SPR_WIRE_DEPOT_SW = SPR_ELRAIL_BASE + 27,
- SPR_WIRE_DEPOT_NW = SPR_ELRAIL_BASE + 28,
- SPR_WIRE_DEPOT_NE = SPR_ELRAIL_BASE + 29,
- SPR_WIRE_DEPOT_SE = SPR_ELRAIL_BASE + 30,
+ SPR_WIRE_DEPOT_SW = SPR_ELRAIL_BASE + 24,
+ SPR_WIRE_DEPOT_NW = SPR_ELRAIL_BASE + 25,
+ SPR_WIRE_DEPOT_NE = SPR_ELRAIL_BASE + 26,
+ SPR_WIRE_DEPOT_SE = SPR_ELRAIL_BASE + 27,
/* Pylons, first identifier is the direction of the track, second the placement relative to the track */
- SPR_PYLON_Y_NE = SPR_ELRAIL_BASE + 31,
- SPR_PYLON_Y_SW = SPR_ELRAIL_BASE + 32,
- SPR_PYLON_X_NW = SPR_ELRAIL_BASE + 33,
- SPR_PYLON_X_SE = SPR_ELRAIL_BASE + 34,
- SPR_PYLON_EW_N = SPR_ELRAIL_BASE + 35,
- SPR_PYLON_EW_S = SPR_ELRAIL_BASE + 36,
- SPR_PYLON_NS_W = SPR_ELRAIL_BASE + 37,
- SPR_PYLON_NS_E = SPR_ELRAIL_BASE + 38,
+ SPR_PYLON_Y_NE = SPR_ELRAIL_BASE + 28,
+ SPR_PYLON_Y_SW = SPR_ELRAIL_BASE + 29,
+ SPR_PYLON_X_NW = SPR_ELRAIL_BASE + 30,
+ SPR_PYLON_X_SE = SPR_ELRAIL_BASE + 31,
+ SPR_PYLON_EW_N = SPR_ELRAIL_BASE + 32,
+ SPR_PYLON_EW_S = SPR_ELRAIL_BASE + 33,
+ SPR_PYLON_NS_W = SPR_ELRAIL_BASE + 34,
+ SPR_PYLON_NS_E = SPR_ELRAIL_BASE + 35,
/* sprites for roads */
SPR_ROAD_PAVED_STRAIGHT_Y = 1313,
@@ -452,7 +456,7 @@ enum Sprites {
SPR_AIRPORT_RADAR_A = 2689,
SPR_AIRPORT_RADAR_B = 2690,
SPR_AIRPORT_RADAR_C = 2691,
- SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 28,
+ SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 82,
SPR_AIRPORT_HELIDEPOT_OFFICE = 2095,
/* Road Stops */
@@ -566,40 +570,42 @@ enum Sprites {
SPR_SHIP_DEPOT_SE_REAR = 4074,
SPR_SHIP_DEPOT_SW_REAR = 4075,
//here come sloped water sprites
- SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 5, //Water flowing negative Y direction
- SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 6, //positive X
- SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 7, //negative X
- SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 8, //positive Y
+ SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 0, //Water flowing negative Y direction
+ SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 1, //positive X
+ SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 2, //negative X
+ SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 3, //positive Y
//sprites for the shiplifts
//there are 4 kinds of shiplifts, each of them is 3 tiles long.
//the four kinds are running in the X and Y direction and
//are "lowering" either in the "+" or the "-" direction.
//the three tiles are the center tile (where the slope is)
//and a bottom and a top tile
- SPR_SHIPLIFT_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 9,
- SPR_SHIPLIFT_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 10,
- SPR_SHIPLIFT_X_UP_CENTER_REAR = SPR_CANALS_BASE + 11,
- SPR_SHIPLIFT_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 12,
- SPR_SHIPLIFT_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 13,
- SPR_SHIPLIFT_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 14,
- SPR_SHIPLIFT_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 15,
- SPR_SHIPLIFT_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 16,
- SPR_SHIPLIFT_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 17,
- SPR_SHIPLIFT_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 18,
- SPR_SHIPLIFT_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 19,
- SPR_SHIPLIFT_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 20,
- SPR_SHIPLIFT_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 21,
- SPR_SHIPLIFT_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 22,
- SPR_SHIPLIFT_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 23,
- SPR_SHIPLIFT_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 24,
- SPR_SHIPLIFT_Y_UP_TOP_REAR = SPR_CANALS_BASE + 25,
- SPR_SHIPLIFT_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 26,
- SPR_SHIPLIFT_X_UP_TOP_REAR = SPR_CANALS_BASE + 27,
- SPR_SHIPLIFT_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 28,
- SPR_SHIPLIFT_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 29,
- SPR_SHIPLIFT_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 30,
- SPR_SHIPLIFT_X_UP_TOP_FRONT = SPR_CANALS_BASE + 31,
- SPR_SHIPLIFT_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 32,
+ SPR_SHIPLIFT_BASE = SPR_CANALS_BASE + 4,
+ SPR_SHIPLIFT_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 4,
+ SPR_SHIPLIFT_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 5,
+ SPR_SHIPLIFT_X_UP_CENTER_REAR = SPR_CANALS_BASE + 6,
+ SPR_SHIPLIFT_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 7,
+ SPR_SHIPLIFT_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 8,
+ SPR_SHIPLIFT_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 9,
+ SPR_SHIPLIFT_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 10,
+ SPR_SHIPLIFT_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 11,
+ SPR_SHIPLIFT_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 12,
+ SPR_SHIPLIFT_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 13,
+ SPR_SHIPLIFT_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 14,
+ SPR_SHIPLIFT_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 15,
+ SPR_SHIPLIFT_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 16,
+ SPR_SHIPLIFT_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 17,
+ SPR_SHIPLIFT_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 18,
+ SPR_SHIPLIFT_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 19,
+ SPR_SHIPLIFT_Y_UP_TOP_REAR = SPR_CANALS_BASE + 20,
+ SPR_SHIPLIFT_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 21,
+ SPR_SHIPLIFT_X_UP_TOP_REAR = SPR_CANALS_BASE + 22,
+ SPR_SHIPLIFT_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 23,
+ SPR_SHIPLIFT_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 24,
+ SPR_SHIPLIFT_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 25,
+ SPR_SHIPLIFT_X_UP_TOP_FRONT = SPR_CANALS_BASE + 26,
+ SPR_SHIPLIFT_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 27,
+ SPR_CANAL_DIKES_BASE = SPR_CANALS_BASE + 52,
/* Sprites for tunnels and bridges */
SPR_TUNNEL_ENTRY_REAR_RAIL = 2365,
@@ -613,7 +619,7 @@ enum Sprites {
SPR_CROSSING_OFF_X_MAGLEV = 1394,
/* bridge type sprites */
- SPR_PILLARS_BASE = SPR_OPENTTD_BASE + 30,
+ SPR_PILLARS_BASE = SPR_OPENTTD_BASE + 14,
/* Wooden bridge (type 0) */
SPR_BTWDN_RAIL_Y_REAR = 2545,
@@ -1012,11 +1018,11 @@ enum Sprites {
SPR_IMG_ROCKS = 4084,
SPR_IMG_LIGHTHOUSE_DESERT = 4085, // XXX - is Desert image on the desert-climate
SPR_IMG_TRANSMITTER = 4086,
- SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 61,
- SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 58,
- SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 69,
+ SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 91,
+ SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 88,
+ SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 64,
SPR_IMG_PAUSE = 726,
- SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 54,
+ SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 90,
SPR_IMG_SETTINGS = 751,
SPR_IMG_SAVE = 724,
SPR_IMG_SMALLMAP = 708,
@@ -1052,8 +1058,8 @@ enum Sprites {
/* OPEN TRANSPORT TYCOON in gamescreen */
SPR_OTTD_O = 4842,
SPR_OTTD_P = 4841,
- SPR_OTTD_E = SPR_OPENTTD_BASE + 13,
- SPR_OTTD_D = SPR_OPENTTD_BASE + 14,
+ SPR_OTTD_E = SPR_OPENTTD_BASE + 12,
+ SPR_OTTD_D = SPR_OPENTTD_BASE + 13,
SPR_OTTD_N = 4839,
SPR_OTTD_T = 4836,
SPR_OTTD_R = 4837,
@@ -1202,11 +1208,11 @@ enum Sprites {
SPR_BUBBLE_ABSORB_4 = 4762,
/* Electrified rail build menu */
- SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 39,
- SPR_BUILD_X_ELRAIL = SPR_ELRAIL_BASE + 40,
- SPR_BUILD_EW_ELRAIL = SPR_ELRAIL_BASE + 41,
- SPR_BUILD_Y_ELRAIL = SPR_ELRAIL_BASE + 42,
- SPR_BUILD_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 47,
+ SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 36,
+ SPR_BUILD_X_ELRAIL = SPR_ELRAIL_BASE + 37,
+ SPR_BUILD_EW_ELRAIL = SPR_ELRAIL_BASE + 38,
+ SPR_BUILD_Y_ELRAIL = SPR_ELRAIL_BASE + 39,
+ SPR_BUILD_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 44,
/* airport_gui.c */
SPR_IMG_AIRPORT = 744,
@@ -1225,7 +1231,7 @@ enum Sprites {
/* road_gui.c */
SPR_IMG_ROAD_NW = 1309,
SPR_IMG_ROAD_NE = 1310,
- SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 112,
+ SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 82,
SPR_IMG_ROAD_DEPOT = 1295,
SPR_IMG_BUS_STATION = 749,
SPR_IMG_TRUCK_BAY = 750,
@@ -1234,24 +1240,24 @@ enum Sprites {
SPR_IMG_REMOVE = 714,
SPR_IMG_TRAMWAY_NW = SPR_TRAMWAY_BASE + 0,
SPR_IMG_TRAMWAY_NE = SPR_TRAMWAY_BASE + 1,
- SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 114,
+ SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 84,
/* rail_gui.c */
SPR_IMG_RAIL_NS = 1251,
SPR_IMG_RAIL_NE = 1252,
SPR_IMG_RAIL_EW = 1253,
SPR_IMG_RAIL_NW = 1254,
- SPR_IMG_AUTORAIL = SPR_OPENTTD_BASE + 0,
- SPR_IMG_AUTOELRAIL = SPR_OPENTTD_BASE + 116,
- SPR_IMG_AUTOMONO = SPR_OPENTTD_BASE + 1,
- SPR_IMG_AUTOMAGLEV = SPR_OPENTTD_BASE + 2,
+ SPR_IMG_AUTORAIL = SPR_OPENTTD_BASE + 53,
+ SPR_IMG_AUTOELRAIL = SPR_OPENTTD_BASE + 57,
+ SPR_IMG_AUTOMONO = SPR_OPENTTD_BASE + 63,
+ SPR_IMG_AUTOMAGLEV = SPR_OPENTTD_BASE + 69,
- SPR_IMG_WAYPOINT = SPR_OPENTTD_BASE + 3,
+ SPR_IMG_WAYPOINT = SPR_OPENTTD_BASE + 76,
SPR_IMG_DEPOT_RAIL = 1294,
- SPR_IMG_DEPOT_ELRAIL = SPR_OPENTTD_BASE + 120,
- SPR_IMG_DEPOT_MONO = SPR_OPENTTD_BASE + 9,
- SPR_IMG_DEPOT_MAGLEV = SPR_OPENTTD_BASE + 10,
+ SPR_IMG_DEPOT_ELRAIL = SPR_OPENTTD_BASE + 61,
+ SPR_IMG_DEPOT_MONO = SPR_OPENTTD_BASE + 67,
+ SPR_IMG_DEPOT_MAGLEV = SPR_OPENTTD_BASE + 73,
SPR_IMG_RAIL_STATION = 1298,
SPR_IMG_RAIL_SIGNALS = 1291,
@@ -1260,10 +1266,10 @@ enum Sprites {
SPR_IMG_TUNNEL_MONO = 2431,
SPR_IMG_TUNNEL_MAGLEV = 2432,
- SPR_IMG_CONVERT_RAIL = SPR_OPENTTD_BASE + 22,
- SPR_IMG_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 118,
- SPR_IMG_CONVERT_MONO = SPR_OPENTTD_BASE + 24,
- SPR_IMG_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 26,
+ SPR_IMG_CONVERT_RAIL = SPR_OPENTTD_BASE + 55,
+ SPR_IMG_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 59,
+ SPR_IMG_CONVERT_MONO = SPR_OPENTTD_BASE + 65,
+ SPR_IMG_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 71,
/* intro_gui.c, genworld_gui.c */
SPR_SELECT_TEMPERATE = 4882,
@@ -1290,7 +1296,7 @@ enum CursorSprite {
SPR_CURSOR_TREE = 2010,
SPR_CURSOR_BUY_LAND = 4792,
- SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 62,
+ SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 92,
SPR_CURSOR_TOWN = 4080,
SPR_CURSOR_INDUSTRY = 4081,
@@ -1303,8 +1309,8 @@ enum CursorSprite {
/* dock cursors */
SPR_CURSOR_DOCK = 3668,
- SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 8,
- SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 57,
+ SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 89,
+ SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 87,
/* shared road & rail cursors */
SPR_CURSOR_BRIDGE = 2593,
@@ -1325,52 +1331,52 @@ enum CursorSprite {
SPR_CURSOR_EW_MAGLEV = 1273,
SPR_CURSOR_NWSE_MAGLEV = 1274,
- SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 43,
- SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 44,
- SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 45,
- SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 46,
+ SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 40,
+ SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 41,
+ SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 42,
+ SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 43,
SPR_CURSOR_RAIL_STATION = 1300,
SPR_CURSOR_TUNNEL_RAIL = 2434,
- SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 48,
+ SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 45,
SPR_CURSOR_TUNNEL_MONO = 2435,
SPR_CURSOR_TUNNEL_MAGLEV = 2436,
- SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 4,
- SPR_CURSOR_AUTOELRAIL = SPR_OPENTTD_BASE + 117,
- SPR_CURSOR_AUTOMONO = SPR_OPENTTD_BASE + 5,
- SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 6,
+ SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 54,
+ SPR_CURSOR_AUTOELRAIL = SPR_OPENTTD_BASE + 58,
+ SPR_CURSOR_AUTOMONO = SPR_OPENTTD_BASE + 64,
+ SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 70,
- SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 7,
+ SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 77,
SPR_CURSOR_RAIL_DEPOT = 1296,
- SPR_CURSOR_ELRAIL_DEPOT = SPR_OPENTTD_BASE + 121,
- SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 11,
- SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 12,
+ SPR_CURSOR_ELRAIL_DEPOT = SPR_OPENTTD_BASE + 62,
+ SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 68,
+ SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 74,
- SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 23,
- SPR_CURSOR_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 119,
- SPR_CURSOR_CONVERT_MONO = SPR_OPENTTD_BASE + 25,
- SPR_CURSOR_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 27,
+ SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 56,
+ SPR_CURSOR_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 60,
+ SPR_CURSOR_CONVERT_MONO = SPR_OPENTTD_BASE + 66,
+ SPR_CURSOR_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 72,
/* road cursors */
SPR_CURSOR_ROAD_NESW = 1311,
SPR_CURSOR_ROAD_NWSE = 1312,
- SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 113,
+ SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 83,
SPR_CURSOR_TRAMWAY_NESW = SPR_TRAMWAY_BASE + 2,
SPR_CURSOR_TRAMWAY_NWSE = SPR_TRAMWAY_BASE + 3,
- SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 115,
+ SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 85,
SPR_CURSOR_ROAD_DEPOT = 1297,
SPR_CURSOR_BUS_STATION = 2725,
SPR_CURSOR_TRUCK_STATION = 2726,
SPR_CURSOR_ROAD_TUNNEL = 2433,
- SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 88,
- SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 105,
- SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 107,
- SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 109
+ SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 110,
+ SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 111,
+ SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 112,
+ SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 113,
};
/// Animation macro in table/animcursors.h (_animcursors[])