misc.c
changeset 1218 353a7773bc3c
parent 1217 ab9f02a224ab
child 1219 6a1f8d818d58
--- a/misc.c	Sat Jan 29 19:41:44 2005 +0000
+++ b/misc.c	Sat Jan 29 19:45:14 2005 +0000
@@ -165,7 +165,7 @@
 void InitializeDock(void);
 void InitializeDockGui(void);
 void InitializeIndustries(void);
-void InitializeLandscape(void);
+void InitializeLandscape(uint log_x, uint log_y);
 void InitializeTowns(void);
 void InitializeTrees(void);
 void InitializeSigns(void);
@@ -187,7 +187,7 @@
 
 void ConvertGroundTilesIntoWaterTiles(void);
 
-void InitializeGame(void)
+void InitializeGame(uint log_x, uint log_y)
 {
 	// Initialize the autoreplace array. Needs to be cleared between each game
 	uint i;
@@ -217,7 +217,7 @@
 	InitializeOrders();
 
 	InitNewsItemStructs();
-	InitializeLandscape();
+	InitializeLandscape(log_x, log_y);
 	InitializeClearLand();
 	InitializeRail();
 	InitializeRailGui();
@@ -248,7 +248,7 @@
 	ResetObjectToPlace();
 }
 
-void GenerateWorld(int mode)
+void GenerateWorld(int mode, uint log_x, uint log_y)
 {
 	int i;
 
@@ -256,7 +256,7 @@
 	_current_player = OWNER_NONE;
 
 	_generating_world = true;
-	InitializeGame();
+	InitializeGame(log_x, log_y);
 	SetObjectToPlace(1, 0, 0, 0);
 
 	// Must start economy early because of the costs.
@@ -860,6 +860,28 @@
 	SlGlobList(_view_desc);
 }
 
+static uint32 _map_dim_x;
+static uint32 _map_dim_y;
+
+static const SaveLoadGlobVarList _map_dimensions[] = {
+	{&_map_dim_x, SLE_UINT32, 6, 255},
+	{&_map_dim_y, SLE_UINT32, 6, 255},
+	{NULL, 0, 0, 0}
+};
+
+static void Save_MAPSIZE(void)
+{
+	_map_dim_x = MapLogX();
+	_map_dim_y = MapLogY();
+	SlGlobList(_map_dimensions);
+}
+
+static void Load_MAPSIZE(void)
+{
+	SlGlobList(_map_dimensions);
+	InitMap(_map_dim_x, _map_dim_y);
+}
+
 static void SaveLoad_MAPT(void)
 {
   SlArray(_map_type_and_height, MapSize(), SLE_UINT8);
@@ -928,6 +950,7 @@
 
 
 const ChunkHandler _misc_chunk_handlers[] = {
+	{ 'MAPS', Save_MAPSIZE,  Load_MAPSIZE,  CH_RIFF },
 	{ 'MAPT', SaveLoad_MAPT, SaveLoad_MAPT, CH_RIFF },
 	{ 'MAP2', SaveLoad_MAP2, SaveLoad_MAP2, CH_RIFF },
 	{ 'M3LO', SaveLoad_M3LO, SaveLoad_M3LO, CH_RIFF },