From 2314431a596c25b7e48cfbc7dda452c66cd5ca32 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Mon, 26 Sep 2005 18:43:58 +0000 Subject: (svn r2989) - Make engine/vehicle information tables constant. Duplicate them so NewGRF data can be loaded without wiping out the default data. --- newgrf.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'newgrf.c') diff --git a/newgrf.c b/newgrf.c index 70b90ebeb..e204f30be 100644 --- a/newgrf.c +++ b/newgrf.c @@ -2191,6 +2191,20 @@ static void InitializeGRFSpecial(void) | (_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; @@ -2374,6 +2388,8 @@ void LoadNewGRF(uint load_index, uint file_index) initialized = true; } + ResetNewGRFData(); + /* Load newgrf sprites * in each loading stage, (try to) open each file specified in the config * and load information from it. */ -- cgit v1.2.3-54-g00ecf