(svn r11867) -Fix: do not reset changes to persistent storages during world generation.
authorrubidium
Tue, 15 Jan 2008 18:51:46 +0000
changeset 8303 cbb07f7426fc
parent 8302 ed068d41cf1e
child 8304 93ac1f11db33
(svn r11867) -Fix: do not reset changes to persistent storages during world generation.
-Fix: store changes to persistent storages after performing all the game logic instead of resetting them.
src/genworld.cpp
src/openttd.cpp
--- a/src/genworld.cpp	Tue Jan 15 18:44:22 2008 +0000
+++ b/src/genworld.cpp	Tue Jan 15 18:51:46 2008 +0000
@@ -23,6 +23,7 @@
 #include "core/random_func.hpp"
 #include "engine.h"
 #include "settings_type.h"
+#include "newgrf_storage.h"
 
 #include "table/sprites.h"
 
@@ -118,6 +119,8 @@
 		}
 	}
 
+	ClearStorageChanges(true);
+
 	/* These are probably pointless when inside the scenario editor. */
 	SetGeneratingWorldProgress(GWP_GAME_INIT, 3);
 	StartupPlayers();
--- a/src/openttd.cpp	Tue Jan 15 18:44:22 2008 +0000
+++ b/src/openttd.cpp	Tue Jan 15 18:51:46 2008 +0000
@@ -974,8 +974,6 @@
  * That check is enforced in DoCommand. */
 void StateGameLoop()
 {
-	ClearStorageChanges(false);
-
 	/* dont execute the state loop during pause */
 	if (_pause_game) {
 		CallWindowTickEvent();
@@ -983,10 +981,14 @@
 	}
 	if (IsGeneratingWorld()) return;
 
+	ClearStorageChanges(false);
+
 	if (_game_mode == GM_EDITOR) {
 		RunTileLoop();
 		CallVehicleTicks();
 		CallLandscapeTick();
+		ClearStorageChanges(true);
+
 		CallWindowTickEvent();
 		NewsLoop();
 	} else {
@@ -1000,6 +1002,7 @@
 		RunTileLoop();
 		CallVehicleTicks();
 		CallLandscapeTick();
+		ClearStorageChanges(true);
 
 		AI_RunGameLoop();