changeset 8303:0ab35f1b5949 draft

(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.
author rubidium <rubidium@openttd.org>
date Tue, 15 Jan 2008 18:51:46 +0000
parents 56a9dfa21fe7
children c697a0fd25be
files src/genworld.cpp src/openttd.cpp
diffstat 2 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/genworld.cpp
+++ b/src/genworld.cpp
@@ -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
+++ b/src/openttd.cpp
@@ -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();