Mercurial > hg > openttd
changeset 7940:41408626f1c4 draft
(svn r11493) -Fix [FS#1472]: game crashing on savegame load because it tried to render some part of the window before the savegame conversion was done.
author | rubidium <rubidium@openttd.org> |
---|---|
date | Thu, 22 Nov 2007 22:34:30 +0000 |
parents | 025c23786172 |
children | b11d6344a58c |
files | src/openttd.cpp |
diffstat | 1 files changed, 29 insertions(+), 29 deletions(-) [+] |
line wrap: on
line diff
--- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -1331,22 +1331,6 @@ return false; } - /* Initialize windows */ - ResetWindowSystem(); - SetupColorsAndInitialWindow(); - - w = FindWindowById(WC_MAIN_WINDOW, 0); - - WP(w,vp_d).scrollpos_x = _saved_scrollpos_x; - WP(w,vp_d).scrollpos_y = _saved_scrollpos_y; - WP(w,vp_d).dest_scrollpos_x = _saved_scrollpos_x; - WP(w,vp_d).dest_scrollpos_y = _saved_scrollpos_y; - - vp = w->viewport; - vp->zoom = (ZoomLevel)min(_saved_scrollpos_zoom, ZOOM_LVL_MAX); - vp->virtual_width = ScaleByZoom(vp->width, vp->zoom); - vp->virtual_height = ScaleByZoom(vp->height, vp->zoom); - /* in version 4.1 of the savegame, is_active was introduced to determine * if a player does exist, rather then checking name_1 */ if (CheckSavegameVersionOldStyle(4, 1)) CheckIsPlayerActive(); @@ -2170,19 +2154,6 @@ } } - /* Recalculate */ - Group *g; - FOR_ALL_GROUPS(g) { - const Vehicle *v; - FOR_ALL_VEHICLES(v) { - if (!IsEngineCountable(v)) continue; - - if (v->group_id != g->index || v->type != g->vehicle_type || v->owner != g->owner) continue; - - g->num_engines[v->engine_type]++; - } - } - if (CheckSavegameVersion(74)) { Station *st; FOR_ALL_STATIONS(st) { @@ -2220,6 +2191,35 @@ } } + /* Initialize windows */ + ResetWindowSystem(); + SetupColorsAndInitialWindow(); + + w = FindWindowById(WC_MAIN_WINDOW, 0); + + WP(w,vp_d).scrollpos_x = _saved_scrollpos_x; + WP(w,vp_d).scrollpos_y = _saved_scrollpos_y; + WP(w,vp_d).dest_scrollpos_x = _saved_scrollpos_x; + WP(w,vp_d).dest_scrollpos_y = _saved_scrollpos_y; + + vp = w->viewport; + vp->zoom = (ZoomLevel)min(_saved_scrollpos_zoom, ZOOM_LVL_MAX); + vp->virtual_width = ScaleByZoom(vp->width, vp->zoom); + vp->virtual_height = ScaleByZoom(vp->height, vp->zoom); + + /* Recalculate */ + Group *g; + FOR_ALL_GROUPS(g) { + const Vehicle *v; + FOR_ALL_VEHICLES(v) { + if (!IsEngineCountable(v)) continue; + + if (v->group_id != g->index || v->type != g->vehicle_type || v->owner != g->owner) continue; + + g->num_engines[v->engine_type]++; + } + } + return true; }