(svn r7120) -Fix (r6631): A town size of 0 in the scenario editor is a random size. So to get a size
authorDarkvater
Thu, 09 Nov 2006 13:03:34 +0000
changeset 5064 9042f861d711
parent 5063 5d6e4e38fa43
child 5065 929a12f006bf
(svn r7120) -Fix (r6631): A town size of 0 in the scenario editor is a random size. So to get a size
you need it between 1 and 3 and therefore there is no one-on-one correspondence between
widget-numbers and town-size. Based on a patch by Maedhros
main_gui.c
town_cmd.c
--- a/main_gui.c	Wed Nov 08 18:31:35 2006 +0000
+++ b/main_gui.c	Thu Nov 09 13:03:34 2006 +0000
@@ -46,7 +46,7 @@
 
 static byte _terraform_size = 1;
 static RailType _last_built_railtype;
-static int _scengen_town_size = 1;
+static int _scengen_town_size = 2; // depress medium-sized towns per default
 
 extern void GenerateIndustries(void);
 extern bool GenerateTowns(void);
@@ -1388,7 +1388,7 @@
 		break;
 
 	case WE_CREATE:
-		LowerWindowWidget(w, _scengen_town_size + 7);
+		LowerWindowWidget(w, (_scengen_town_size - 1)+ 7);
 		break;
 
 	case WE_CLICK:
@@ -1422,9 +1422,9 @@
 		}
 
 		case 7: case 8: case 9:
-			RaiseWindowWidget(w, _scengen_town_size + 7);
-			_scengen_town_size = e->we.click.widget - 7;
-			LowerWindowWidget(w, _scengen_town_size + 7);
+			RaiseWindowWidget(w, (_scengen_town_size - 1) + 7);
+			_scengen_town_size = (e->we.click.widget - 7) + 1;
+			LowerWindowWidget(w, (_scengen_town_size - 1) + 7);
 			SetWindowDirty(w);
 			break;
 		}
@@ -1440,7 +1440,7 @@
 		break;
 	case WE_ABORT_PLACE_OBJ:
 		RaiseWindowButtons(w);
-		LowerWindowWidget(w, _scengen_town_size + 7);
+		LowerWindowWidget(w, (_scengen_town_size - 1) + 7);
 		SetWindowDirty(w);
 		break;
 	}
--- a/town_cmd.c	Wed Nov 08 18:31:35 2006 +0000
+++ b/town_cmd.c	Thu Nov 09 13:03:34 2006 +0000
@@ -1003,7 +1003,7 @@
  * This obviously only works in the scenario editor. Function not removed
  * as it might be possible in the future to fund your own town :)
  * @param tile coordinates where town is built
- * @param p1 size of the town (1 = small, 2 = medium, 3 = large)
+ * @param p1 size of the town (0 = random, 1 = small, 2 = medium, 3 = large)
  * @param p2 unused
  */
 int32 CmdBuildTown(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)