engine.h
changeset 369 ab2266938fa8
parent 358 6eb0d5ec99b1
child 374 85a6d56129dd
equal deleted inserted replaced
368:32aad6ad36e1 369:ab2266938fa8
    57 
    57 
    58 
    58 
    59 void StartupEngines();
    59 void StartupEngines();
    60 
    60 
    61 
    61 
    62 struct SpriteSuperSet {
    62 struct SpriteGroup {
    63 	// XXX: Would anyone ever need more than 16 spritesets? Maybe we should
    63 	// XXX: Would anyone ever need more than 16 spritesets? Maybe we should
    64 	// use even less, now we take whole 8kb for custom sprites table, oh my!
    64 	// use even less, now we take whole 8kb for custom sprites table, oh my!
    65 	byte sprites_per_set; // means number of directions - 4 or 8
    65 	byte sprites_per_set; // means number of directions - 4 or 8
    66 	// Loaded = in motion, loading = not moving
    66 	// Loaded = in motion, loading = not moving
    67 	// Each superset contains several spritesets, for various loading stages
    67 	// Each group contains several spritesets, for various loading stages
    68 	byte loaded_count;
    68 	byte loaded_count;
    69 	uint16 loaded[16]; // sprite ids
    69 	uint16 loaded[16]; // sprite ids
    70 	byte loading_count;
    70 	byte loading_count;
    71 	uint16 loading[16]; // sprite ids
    71 	uint16 loading[16]; // sprite ids
    72 };
    72 };
    81 extern byte _local_cargo_id_landscape[NUM_CID];
    81 extern byte _local_cargo_id_landscape[NUM_CID];
    82 
    82 
    83 extern uint32 _engine_refit_masks[256];
    83 extern uint32 _engine_refit_masks[256];
    84 
    84 
    85 extern byte _engine_original_sprites[256];
    85 extern byte _engine_original_sprites[256];
    86 void SetWagonOverrideSprites(byte engine, struct SpriteSuperSet *superset, byte *train_id, int trains);
    86 void SetWagonOverrideSprites(byte engine, struct SpriteGroup *group, byte *train_id, int trains);
    87 void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteSuperSet *superset);
    87 void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group);
    88 // loaded is in percents, overriding_engine 0xffff is none
    88 // loaded is in percents, overriding_engine 0xffff is none
    89 int GetCustomEngineSprite(byte engine, uint16 overriding_engine, byte cargo, byte loaded, byte in_motion, byte direction);
    89 int GetCustomEngineSprite(byte engine, uint16 overriding_engine, byte cargo, byte loaded, byte in_motion, byte direction);
    90 #define GetCustomVehicleSprite(v, direction) \
    90 #define GetCustomVehicleSprite(v, direction) \
    91 	GetCustomEngineSprite(v->engine_type, v->type == VEH_Train ? v->u.rail.first_engine : -1, \
    91 	GetCustomEngineSprite(v->engine_type, v->type == VEH_Train ? v->u.rail.first_engine : -1, \
    92 	                      _global_cargo_id[_opt.landscape][v->cargo_type], \
    92 	                      _global_cargo_id[_opt.landscape][v->cargo_type], \