--- a/src/main_gui.cpp Wed Jun 13 11:17:30 2007 +0000
+++ b/src/main_gui.cpp Wed Jun 13 11:45:14 2007 +0000
@@ -51,6 +51,7 @@
static byte _terraform_size = 1;
RailType _last_built_railtype;
+RoadType _last_built_roadtype;
static int _scengen_town_size = 1; // depress medium-sized towns per default
extern void GenerateIndustries();
@@ -171,12 +172,12 @@
case 2: ShowPatchesSelection(); return;
case 3: ShowNewGRFSettings(!_networking, true, true, &_grfconfig); return;
- case 5: _display_opt ^= DO_SHOW_TOWN_NAMES; break;
- case 6: _display_opt ^= DO_SHOW_STATION_NAMES; break;
- case 7: _display_opt ^= DO_SHOW_SIGNS; break;
- case 8: _display_opt ^= DO_WAYPOINTS; break;
- case 9: _display_opt ^= DO_FULL_ANIMATION; break;
- case 10: _display_opt ^= DO_FULL_DETAIL; break;
+ case 5: TOGGLEBIT(_display_opt, DO_SHOW_TOWN_NAMES); break;
+ case 6: TOGGLEBIT(_display_opt, DO_SHOW_STATION_NAMES); break;
+ case 7: TOGGLEBIT(_display_opt, DO_SHOW_SIGNS); break;
+ case 8: TOGGLEBIT(_display_opt, DO_WAYPOINTS); break;
+ case 9: TOGGLEBIT(_display_opt, DO_FULL_ANIMATION); break;
+ case 10: TOGGLEBIT(_display_opt, DO_FULL_DETAIL); break;
case 11: ToggleTransparency(); break;
case 12: TOGGLEBIT(_transparent_opt, TO_SIGNS); break;
}
@@ -310,7 +311,8 @@
static void MenuClickBuildRoad(int index)
{
- ShowBuildRoadToolbar();
+ _last_built_roadtype = (RoadType)index;
+ ShowBuildRoadToolbar(_last_built_roadtype);
}
static void MenuClickBuildWater(int index)
@@ -880,8 +882,8 @@
switch (how) {
case ZOOM_IN:
- if (vp->zoom == 0) return false;
- vp->zoom--;
+ if (vp->zoom == ZOOM_LVL_MIN) return false;
+ vp->zoom = (ZoomLevel)((byte)vp->zoom - 1);
vp->virtual_width >>= 1;
vp->virtual_height >>= 1;
@@ -889,8 +891,8 @@
WP(w,vp_d).scrollpos_y += vp->virtual_height >> 1;
break;
case ZOOM_OUT:
- if (vp->zoom == 2) return false;
- vp->zoom++;
+ if (vp->zoom == ZOOM_LVL_MAX) return false;
+ vp->zoom = (ZoomLevel)((byte)vp->zoom + 1);
WP(w,vp_d).scrollpos_x -= vp->virtual_width >> 1;
WP(w,vp_d).scrollpos_y -= vp->virtual_height >> 1;
@@ -930,12 +932,13 @@
const Player *p = GetPlayer(_local_player);
Window *w2;
w2 = PopupMainToolbMenu(w, 19, STR_1015_RAILROAD_CONSTRUCTION, RAILTYPE_END, ~p->avail_railtypes);
- WP(w2,menu_d).sel_index = _last_built_railtype;
+ WP(w2, menu_d).sel_index = _last_built_railtype;
}
static void ToolbarBuildRoadClick(Window *w)
{
- PopupMainToolbMenu(w, 20, STR_180A_ROAD_CONSTRUCTION, 1, 0);
+ Window *w2 = PopupMainToolbMenu(w, 20, STR_180A_ROAD_CONSTRUCTION, 1, 0);
+ WP(w2, menu_d).sel_index = _last_built_roadtype;
}
static void ToolbarBuildWaterClick(Window *w)
@@ -974,12 +977,12 @@
w = PopupMainToolbMenu(w, 2, STR_02C3_GAME_OPTIONS, 13, 0);
- if (_display_opt & DO_SHOW_TOWN_NAMES) SETBIT(x, 5);
- if (_display_opt & DO_SHOW_STATION_NAMES) SETBIT(x, 6);
- if (_display_opt & DO_SHOW_SIGNS) SETBIT(x, 7);
- 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(_display_opt, DO_SHOW_TOWN_NAMES)) SETBIT(x, 5);
+ if (HASBIT(_display_opt, DO_SHOW_STATION_NAMES)) SETBIT(x, 6);
+ if (HASBIT(_display_opt, DO_SHOW_SIGNS)) SETBIT(x, 7);
+ if (HASBIT(_display_opt, DO_WAYPOINTS)) SETBIT(x, 8);
+ if (HASBIT(_display_opt, DO_FULL_ANIMATION)) SETBIT(x, 9);
+ if (HASBIT(_display_opt, DO_FULL_DETAIL)) SETBIT(x, 10);
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;
@@ -1049,7 +1052,7 @@
vp = w->viewport;
if (_game_mode != GM_MENU) {
- if ((in && vp->zoom == 0) || (!in && vp->zoom == 2))
+ if ((in && vp->zoom == ZOOM_LVL_MIN) || (!in && vp->zoom == ZOOM_LVL_MAX))
return;
pt = GetTileZoomCenterWindow(in,w);
@@ -1128,7 +1131,7 @@
static void PlaceProc_RockyArea(TileIndex tile)
{
- VpStartPlaceSizing(tile, VPM_X_AND_Y | GUI_PlaceProc_RockyArea);
+ VpStartPlaceSizing(tile, VPM_X_AND_Y, GUI_PlaceProc_RockyArea);
}
static void PlaceProc_LightHouse(TileIndex tile)
@@ -1155,12 +1158,12 @@
static void PlaceProc_DesertArea(TileIndex tile)
{
- VpStartPlaceSizing(tile, VPM_X_AND_Y | GUI_PlaceProc_DesertArea);
+ VpStartPlaceSizing(tile, VPM_X_AND_Y, GUI_PlaceProc_DesertArea);
}
static void PlaceProc_WaterArea(TileIndex tile)
{
- VpStartPlaceSizing(tile, VPM_X_AND_Y | GUI_PlaceProc_WaterArea);
+ VpStartPlaceSizing(tile, VPM_X_AND_Y, GUI_PlaceProc_WaterArea);
}
static const Widget _scen_edit_land_gen_widgets[] = {
@@ -1374,12 +1377,12 @@
_place_proc(e->we.place.tile);
break;
case WE_PLACE_DRAG:
- VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.userdata & 0xF);
+ VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.select_method);
break;
case WE_PLACE_MOUSEUP:
if (e->we.place.pt.x != -1) {
- if ((e->we.place.userdata & 0xF) == VPM_X_AND_Y) // dragged actions
+ if (e->we.place.select_method == VPM_X_AND_Y) // dragged actions
GUIPlaceProcDragXY(e);
}
break;
@@ -1873,7 +1876,7 @@
case WKC_SHIFT | WKC_F5: ToolbarZoomInClick(w); break;
case WKC_SHIFT | WKC_F6: ToolbarZoomOutClick(w); break;
case WKC_SHIFT | WKC_F7: ShowBuildRailToolbar(_last_built_railtype, -1); break;
- case WKC_SHIFT | WKC_F8: ShowBuildRoadToolbar(); break;
+ case WKC_SHIFT | WKC_F8: ShowBuildRoadToolbar(_last_built_roadtype); break;
case WKC_SHIFT | WKC_F9: ShowBuildDocksToolbar(); break;
case WKC_SHIFT | WKC_F10:ShowBuildAirToolbar(); break;
case WKC_SHIFT | WKC_F11: ShowBuildTreesToolbar(); break;
@@ -2425,8 +2428,8 @@
_scrolling_viewport = false;
}
- WP(w, vp_d).scrollpos_x += e->we.scroll.delta.x << vp->zoom;
- WP(w, vp_d).scrollpos_y += e->we.scroll.delta.y << vp->zoom;
+ WP(w, vp_d).scrollpos_x += ScaleByZoom(e->we.scroll.delta.x, vp->zoom);
+ WP(w, vp_d).scrollpos_y += ScaleByZoom(e->we.scroll.delta.y, vp->zoom);
} break;
case WE_MOUSEWHEEL:
@@ -2460,7 +2463,7 @@
height = _screen.height;
w = AllocateWindow(0, 0, width, height, MainWindowWndProc, WC_MAIN_WINDOW, NULL);
- AssignWindowViewport(w, 0, 0, width, height, TileXY(32, 32), 0);
+ AssignWindowViewport(w, 0, 0, width, height, TileXY(32, 32), ZOOM_LVL_VIEWPORT);
/* XXX: these are not done */
switch (_game_mode) {
@@ -2514,6 +2517,7 @@
{
/* Clean old GUI values */
_last_built_railtype = RAILTYPE_RAIL;
+ _last_built_roadtype = ROADTYPE_ROAD;
}