mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
(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.
This commit is contained in:
parent
3ad488e98f
commit
64a4ac3444
@ -1331,22 +1331,6 @@ bool AfterLoadGame()
|
||||
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 @@ bool AfterLoadGame()
|
||||
}
|
||||
}
|
||||
|
||||
/* 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 @@ bool AfterLoadGame()
|
||||
}
|
||||
}
|
||||
|
||||
/* 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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user