# HG changeset patch # Parent 344bc3ea377bcd0016ddf0e29faaddee1abb9c65 diff -r 344bc3ea377b src/saveload/afterload.cpp --- a/src/saveload/afterload.cpp Tue Sep 03 09:44:10 2013 +0200 +++ b/src/saveload/afterload.cpp Tue Sep 03 09:44:11 2013 +0200 @@ -1507,13 +1507,15 @@ } if (IsSavegameVersionBefore(64)) { - /* copy the signal type/variant and move signal states bits */ + /* Since now we allow different signal types and variants on a single tile. + * Move signal states to m4 to make room and clone the signal type/variant. */ for (TileIndex t = 0; t < map_size; t++) { if (IsTileType(t, MP_RAILWAY) && HasSignals(t)) { + /* move signal states */ SetSignalStates(t, GB(_m[t].m2, 4, 4)); - SetSignalVariant(t, INVALID_TRACK, GetSignalVariant(t, TRACK_X)); - SetSignalType(t, INVALID_TRACK, GetSignalType(t, TRACK_X)); - ClrBit(_m[t].m2, 7); + SB(_m[t].m2, 4, 4, 0); + /* clone signal type and variant */ + SB(_m[t].m2, 4, 3, GB(_m[t].m2, 0, 3)); } } }