summaryrefslogtreecommitdiff
path: root/engine.h
diff options
context:
space:
mode:
authorDarkvater <Darkvater@openttd.org>2005-05-14 12:36:16 +0000
committerDarkvater <Darkvater@openttd.org>2005-05-14 12:36:16 +0000
commit7470322a3d0fd1d37ab95ba4625e3bed2ad22f84 (patch)
tree1e61fee7bb3cc51b1847fb0b48b1f3cec7699f5a /engine.h
parent5c8d40bb05a47f9df56296aa3e81f4f70189aeb6 (diff)
downloadopenttd-7470322a3d0fd1d37ab95ba4625e3bed2ad22f84.tar.xz
(svn r2306) - CodeChange: Check the last commands; refits. This needed an extensive rewrite and global/local-cargo ID juggling and bitmasking. However with this done it looks better as well and is compatible with newgrf handling. Big thanks to HackyKid for doing most of the work. This also closes patch "[ 1199277 ] Command checks"
Diffstat (limited to 'engine.h')
-rw-r--r--engine.h53
1 files changed, 43 insertions, 10 deletions
diff --git a/engine.h b/engine.h
index cbb860dc9..b588478fe 100644
--- a/engine.h
+++ b/engine.h
@@ -79,23 +79,56 @@ enum {
RVI_WAGON = 2,
};
+enum {
+ NUM_VEHICLE_TYPES = 6
+};
void AddTypeToEngines(void);
void StartupEngines(void);
-
-extern byte _global_cargo_id[NUM_LANDSCAPE][NUM_CARGO];
-enum {
- CID_DEFAULT = 29,
- CID_PURCHASE = 30,
- NUM_CID = 31,
+enum GlobalCargo {
+ GC_PASSENGERS = 0,
+ GC_COAL = 1,
+ GC_MAIL = 2,
+ GC_OIL = 3,
+ GC_LIVESTOCK = 4,
+ GC_GOODS = 5,
+ GC_GRAIN = 6, // GC_WHEAT / GC_MAIZE
+ GC_WOOD = 7,
+ GC_IRON_ORE = 8,
+ GC_STEEL = 9,
+ GC_VALUABLES = 10, // GC_GOLD / GC_DIAMONDS
+ GC_PAPER = 11,
+ GC_FOOD = 12,
+ GC_FRUIT = 13,
+ GC_COPPER_ORE = 14,
+ GC_WATER = 15,
+ GC_RUBBER = 16,
+ GC_SUGAR = 17,
+ GC_TOYS = 18,
+ GC_BATTERIES = 19,
+ GC_CANDY = 20,
+ GC_TOFFEE = 21,
+ GC_COLA = 22,
+ GC_COTTON_CANDY = 23,
+ GC_BUBBLES = 24,
+ GC_PLASTIC = 25,
+ GC_FIZZY_DRINKS = 26,
+ GC_PAPER_TEMP = 27,
+ GC_UNDEFINED = 28, // undefined; unused slot in arctic climate
+ GC_DEFAULT = 29,
+ GC_PURCHASE = 30,
+ GC_INVALID = 255,
+ NUM_GLOBAL_CID = 31
};
-extern byte _local_cargo_id_ctype[NUM_CID];
-extern byte _local_cargo_id_landscape[NUM_CID];
-extern uint32 _engine_refit_masks[256];
+VARDEF const uint32 _default_refitmasks[NUM_VEHICLE_TYPES];
+VARDEF const CargoID _global_cargo_id[NUM_LANDSCAPE][NUM_CARGO];
+VARDEF const uint32 _landscape_global_cargo_mask[NUM_LANDSCAPE];
+VARDEF const CargoID _local_cargo_id_ctype[NUM_GLOBAL_CID];
-extern byte _engine_original_sprites[256];
+VARDEF uint32 _engine_refit_masks[256];
+VARDEF byte _engine_original_sprites[256];
void SetWagonOverrideSprites(byte engine, struct SpriteGroup *group, byte *train_id, int trains);
void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group);
// loaded is in percents, overriding_engine 0xffff is none