+ /* In diagonal crossings patch, level crossings were changed to store the rail + * direction, to allow for diagonal level crossings. We need to add the + * rail direction to all existing level crossings. */ + if (IsSavegameVersionBefore(SLV_DIAG_CROSSINGS)) { + for (TileIndex t = 0; t < map_size; t++) { + if (IsLevelCrossingTile(t)) { + Axis road = GetCrossingRoadAxis(t); + Track track = (road == AXIS_Y) ? TRACK_X : TRACK_Y; + _m[t].m5 &= 0xF1; + _m[t].m5 |= track << 1; + } + } + } +