--- a/src/main_gui.cpp Sun Apr 15 10:30:00 2007 +0000
+++ b/src/main_gui.cpp Sun Apr 22 19:06:48 2007 +0000
@@ -51,7 +51,7 @@
static byte _terraform_size = 1;
RailType _last_built_railtype;
-static int _scengen_town_size = 2; // depress medium-sized towns per default
+static int _scengen_town_size = 1; // depress medium-sized towns per default
extern void GenerateIndustries();
extern bool GenerateTowns();
@@ -89,7 +89,7 @@
} else {
NetworkServer_HandleChat(NETWORK_ACTION_GIVE_MONEY, DESTTYPE_TEAM, id, msg, NETWORK_SERVER_INDEX);
}
- } break;
+ } break;
#endif /* ENABLE_NETWORK */
default: NOT_REACHED();
}
@@ -147,6 +147,22 @@
}
+/** Toggle all transparency options, except for signs */
+static void ToggleTransparency()
+{
+ static byte trans_opt = ~0;
+
+ if (GB(_transparent_opt, 1, 7) == 0) {
+ SB(_transparent_opt, 1, 7, GB(trans_opt, 1, 7));
+ } else {
+ trans_opt = _transparent_opt;
+ SB(_transparent_opt, 1, 7, 0);
+ }
+
+ MarkWholeScreenDirty();
+}
+
+
static void MenuClickSettings(int index)
{
switch (index) {
@@ -161,8 +177,8 @@
case 8: _display_opt ^= DO_WAYPOINTS; break;
case 9: _display_opt ^= DO_FULL_ANIMATION; break;
case 10: _display_opt ^= DO_FULL_DETAIL; break;
- case 11: TOGGLEBIT(_transparent_opt, TO_BUILDINGS); break;
- case 12: TOGGLEBIT(_transparent_opt, TO_SIGNS); break;
+ case 11: ToggleTransparency(); break;
+ case 12: TOGGLEBIT(_transparent_opt, TO_SIGNS); break;
}
MarkWholeScreenDirty();
}
@@ -964,8 +980,8 @@
if (_display_opt & DO_WAYPOINTS) SETBIT(x, 8);
if (_display_opt & DO_FULL_ANIMATION) SETBIT(x, 9);
if (_display_opt & DO_FULL_DETAIL) SETBIT(x, 10);
- if (HASBIT(_transparent_opt, TO_BUILDINGS)) SETBIT(x, 11);
- if (HASBIT(_transparent_opt, TO_SIGNS)) SETBIT(x, 12);
+ if (GB(_transparent_opt, 1, 7) != 0) SETBIT(x, 11);
+ if (HASBIT(_transparent_opt, TO_SIGNS)) SETBIT(x, 12);
WP(w,menu_d).checked_items = x;
}
@@ -1247,7 +1263,8 @@
/** Callback function for the scenario editor 'reset landscape' confirmation window
- * @param yes_clicked boolean value, true when yes was clicked, false otherwise */
+ * @param w Window unused
+ * @param confirmed boolean value, true when yes was clicked, false otherwise */
static void ResetLandscapeConfirmationCallback(Window *w, bool confirmed)
{
if (confirmed) {
@@ -1405,7 +1422,9 @@
static void PlaceProc_Town(TileIndex tile)
{
- DoCommandP(tile, _scengen_town_size, 0, CcBuildTown, CMD_BUILD_TOWN | CMD_MSG(STR_0236_CAN_T_BUILD_TOWN_HERE));
+ uint32 size = min(_scengen_town_size, (int)TSM_CITY);
+ uint32 mode = _scengen_town_size > TSM_CITY ? TSM_CITY : TSM_FIXED;
+ DoCommandP(tile, size, mode, CcBuildTown, CMD_BUILD_TOWN | CMD_MSG(STR_0236_CAN_T_BUILD_TOWN_HERE));
}
@@ -1413,13 +1432,14 @@
{ WWT_CLOSEBOX, RESIZE_NONE, 7, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_NONE, 7, 11, 147, 0, 13, STR_0233_TOWN_GENERATION, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_NONE, 7, 148, 159, 0, 13, 0x0, STR_STICKY_BUTTON},
-{ WWT_PANEL, RESIZE_NONE, 7, 0, 159, 14, 81, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 7, 0, 159, 14, 94, 0x0, STR_NULL},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 157, 16, 27, STR_0234_NEW_TOWN, STR_0235_CONSTRUCT_NEW_TOWN},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 157, 29, 40, STR_023D_RANDOM_TOWN, STR_023E_BUILD_TOWN_IN_RANDOM_LOCATION},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 157, 42, 53, STR_MANY_RANDOM_TOWNS, STR_RANDOM_TOWNS_TIP},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 53, 68, 79, STR_02A1_SMALL, STR_02A4_SELECT_TOWN_SIZE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 54, 105, 68, 79, STR_02A2_MEDIUM, STR_02A4_SELECT_TOWN_SIZE},
{ WWT_TEXTBTN, RESIZE_NONE, 14, 106, 157, 68, 79, STR_02A3_LARGE, STR_02A4_SELECT_TOWN_SIZE},
+{ WWT_TEXTBTN, RESIZE_NONE, 14, 2, 157, 81, 92, STR_SCENARIO_EDITOR_CITY, STR_02A4_SELECT_TOWN_SIZE},
{ WWT_LABEL, RESIZE_NONE, 7, 0, 147, 54, 67, STR_02A5_TOWN_SIZE, STR_NULL},
{ WIDGETS_END},
};
@@ -1432,7 +1452,7 @@
break;
case WE_CREATE:
- LowerWindowWidget(w, (_scengen_town_size - 1)+ 7);
+ LowerWindowWidget(w, _scengen_town_size + 7);
break;
case WE_CLICK:
@@ -1442,10 +1462,12 @@
break;
case 5: {// random town
Town *t;
+ uint size = min(_scengen_town_size, (int)TSM_CITY);
+ TownSizeMode mode = _scengen_town_size > TSM_CITY ? TSM_CITY : TSM_FIXED;
HandleButtonClick(w, 5);
_generating_world = true;
- t = CreateRandomTown(20, _scengen_town_size);
+ t = CreateRandomTown(20, mode, size);
_generating_world = false;
if (t == NULL) {
@@ -1465,10 +1487,10 @@
break;
}
- case 7: case 8: case 9:
- RaiseWindowWidget(w, (_scengen_town_size - 1) + 7);
- _scengen_town_size = (e->we.click.widget - 7) + 1;
- LowerWindowWidget(w, (_scengen_town_size - 1) + 7);
+ case 7: case 8: case 9: case 10:
+ RaiseWindowWidget(w, _scengen_town_size + 7);
+ _scengen_town_size = e->we.click.widget - 7;
+ LowerWindowWidget(w, _scengen_town_size + 7);
SetWindowDirty(w);
break;
}
@@ -1484,14 +1506,14 @@
break;
case WE_ABORT_PLACE_OBJ:
RaiseWindowButtons(w);
- LowerWindowWidget(w, (_scengen_town_size - 1) + 7);
+ LowerWindowWidget(w, _scengen_town_size + 7);
SetWindowDirty(w);
break;
}
}
static const WindowDesc _scen_edit_town_gen_desc = {
- WDP_AUTO, WDP_AUTO, 160, 82,
+ WDP_AUTO, WDP_AUTO, 160, 95,
WC_SCEN_TOWN_GEN, WC_NONE,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_STICKY_BUTTON,
_scen_edit_town_gen_widgets,
@@ -2349,18 +2371,9 @@
ShowTransparencyToolbar();
break;
- case 'X': {
- /* Toggle all transparency options except for signs */
- static byte trans_opt = ~0;
- if (GB(_transparent_opt, 1, 7) == 0) {
- SB(_transparent_opt, 1, 7, GB(trans_opt, 1, 7));
- } else {
- trans_opt = _transparent_opt;
- SB(_transparent_opt, 1, 7, 0);
- }
- MarkWholeScreenDirty();
+ case 'X':
+ ToggleTransparency();
break;
- }
#ifdef ENABLE_NETWORK
case WKC_RETURN: case 'T': // smart chat; send to team if any, otherwise to all