From 7b5ec98d99284a1ea122d9f7ca43c57309f42db7 Mon Sep 17 00:00:00 2001 From: KUDr Date: Fri, 19 Jan 2007 16:01:43 +0000 Subject: (svn r8277) -Fix (r8038): assert on game exit when waypoints were used. The static variable of type Station (inside ComposeWaypointStation) replaced by byte array so no destructor is called for it on exit. --- src/waypoint.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/waypoint.cpp b/src/waypoint.cpp index fe74d7ca7..4bd46efe0 100644 --- a/src/waypoint.cpp +++ b/src/waypoint.cpp @@ -353,7 +353,11 @@ int32 CmdRenameWaypoint(TileIndex tile, uint32 flags, uint32 p1, uint32 p2) Station *ComposeWaypointStation(TileIndex tile) { Waypoint *wp = GetWaypointByTile(tile); - static Station stat; + + /* instead of 'static Station stat' use byte array to avoid Station's destructor call upon exit. As + * a side effect, the station is not constructed now. */ + static byte stat_raw[sizeof Station]; + static Station &stat = *(Station*)stat_raw; stat.train_tile = stat.xy = wp->xy; stat.town = GetTown(wp->town_index); -- cgit v1.2.3-54-g00ecf