|
@@ -2188,12 +2188,26 @@ static void InitializeGRFSpecial(void)
|
|
|
_ttdpatch_flags[2] = (1 << 0x0D) /* buildonslopes */
|
|
|
| (1 << 0x16) /* canals */
|
|
|
| (1 << 0x17) /* newstartyear */
|
|
|
| (_patches.wagon_speed_limits ? (1 << 0x1D) : 0); /* wagonspeedlimits */
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Reset all NewGRF loaded data
|
|
|
* TODO
|
|
|
*/
|
|
|
static void ResetNewGRFData(void)
|
|
|
{
|
|
|
// Copy/reset original engine info data
|
|
|
memcpy(&_engine_info, &orig_engine_info, sizeof(orig_engine_info));
|
|
|
memcpy(&_rail_vehicle_info, &orig_rail_vehicle_info, sizeof(orig_rail_vehicle_info));
|
|
|
memcpy(&_ship_vehicle_info, &orig_ship_vehicle_info, sizeof(orig_ship_vehicle_info));
|
|
|
memcpy(&_aircraft_vehicle_info, &orig_aircraft_vehicle_info, sizeof(orig_aircraft_vehicle_info));
|
|
|
memcpy(&_road_vehicle_info, &orig_road_vehicle_info, sizeof(orig_road_vehicle_info));
|
|
|
}
|
|
|
|
|
|
static void InitNewGRFFile(const char* filename, int sprite_offset)
|
|
|
{
|
|
|
GRFFile *newfile;
|
|
|
|
|
|
newfile = GetFileByFilename(filename);
|
|
|
if (newfile != NULL) {
|
|
@@ -2371,12 +2385,14 @@ void LoadNewGRF(uint load_index, uint fi
|
|
|
|
|
|
if (!initialized) {
|
|
|
InitializeGRFSpecial();
|
|
|
initialized = true;
|
|
|
}
|
|
|
|
|
|
ResetNewGRFData();
|
|
|
|
|
|
/* Load newgrf sprites
|
|
|
* in each loading stage, (try to) open each file specified in the config
|
|
|
* and load information from it. */
|
|
|
_custom_sprites_base = load_index;
|
|
|
for (stage = 0; stage < 2; stage++) {
|
|
|
uint slot = file_index;
|