summaryrefslogtreecommitdiff
path: root/newgrf.c
diff options
context:
space:
mode:
authorpeter1138 <peter1138@openttd.org>2005-09-26 18:43:58 +0000
committerpeter1138 <peter1138@openttd.org>2005-09-26 18:43:58 +0000
commit2314431a596c25b7e48cfbc7dda452c66cd5ca32 (patch)
tree97e69b85dba3e191ef56496b77c23e2cececc839 /newgrf.c
parentc76f01b6ff9221dd2ebdfc09031c9707d5404ce5 (diff)
downloadopenttd-2314431a596c25b7e48cfbc7dda452c66cd5ca32.tar.xz
(svn r2989) - Make engine/vehicle information tables constant. Duplicate them so NewGRF data can be loaded without wiping out the default data.
Diffstat (limited to 'newgrf.c')
-rw-r--r--newgrf.c16
1 files changed, 16 insertions, 0 deletions
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. */