Changeset - r17198:1513095117d5
[Not reviewed]
master
0 1 0
smatz - 13 years ago 2011-02-02 22:20:48
smatz@openttd.org
(svn r21947) -Fix (r21195): crash when converting a savegame with vehicles crashed in a tunnel entry, or with vehicles reversing there
1 file changed with 10 insertions and 3 deletions:
0 comments (0 inline, 0 general)
src/saveload/afterload.cpp
Show inline comments
 
@@ -2390,12 +2390,19 @@ bool AfterLoadGame()
 
			bool hidden;
 
			if (dir == vdir) { // Entering tunnel
 
				hidden = frame >= _tunnel_visibility_frame[dir];
 
				v->tile = vtile;
 
			} else if (dir == ReverseDiagDir(vdir)) { // Leaving tunnel
 
				hidden = frame < TILE_SIZE - _tunnel_visibility_frame[dir];
 
			} else { // Something freaky going on?
 
				NOT_REACHED();
 
				/* v->tile changes at the moment when the vehicle leaves the tunnel. */
 
				v->tile = hidden ? GetOtherTunnelBridgeEnd(vtile) : vtile;
 
			} else {
 
				/* We could get here in two cases:
 
				 * - for road vehicles, it is reversing at the end of the tunnel
 
				 * - it is crashed in the tunnel entry (both train or RV destroyed by UFO)
 
				 * Whatever case it is, do not change anything and use the old values.
 
				 * Especially changing RV's state would break its reversing in the middle. */
 
				continue;
 
			}
 
			v->tile = vtile;
 

	
 
			if (hidden) {
 
				v->vehstatus |= VS_HIDDEN;
0 comments (0 inline, 0 general)