(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.
--- a/src/waypoint.cpp Fri Jan 19 11:47:48 2007 +0000
+++ b/src/waypoint.cpp Fri Jan 19 16:01:43 2007 +0000
@@ -353,7 +353,11 @@
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);