mirror of https://github.com/OpenTTD/OpenTTD
Merge e38719b1b0
into 614a01907a
commit
ce7f4f4ba4
|
@ -1328,39 +1328,39 @@ bool AfterLoadGame()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Elrails got added in rev 24 */
|
/* Elrails got added in rev 24 but can be disabled since version 38 */
|
||||||
if (IsSavegameVersionBefore(SLV_24)) {
|
if (IsSavegameVersionBefore(SLV_24)) {
|
||||||
RailType min_rail = RAILTYPE_ELECTRIC;
|
|
||||||
|
|
||||||
for (Train *v : Train::Iterate()) {
|
for (Train *v : Train::Iterate()) {
|
||||||
RailType rt = RailVehInfo(v->engine_type)->railtype;
|
RailType rt = RailVehInfo(v->engine_type)->railtype;
|
||||||
|
|
||||||
v->railtype = rt;
|
v->railtype = rt;
|
||||||
if (rt == RAILTYPE_ELECTRIC) min_rail = RAILTYPE_RAIL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* .. so we convert the entire map from normal to elrail (so maintain "fairness") */
|
_settings_game.vehicle.disable_elrails = true;
|
||||||
|
|
||||||
|
/* We update the entire map to keep monorail and maglev in place */
|
||||||
|
RailType monorail = (RailType)1; // monorail was 1 before elrails were introduced
|
||||||
for (const auto t : Map::Iterate()) {
|
for (const auto t : Map::Iterate()) {
|
||||||
switch (GetTileType(t)) {
|
switch (GetTileType(t)) {
|
||||||
case MP_RAILWAY:
|
case MP_RAILWAY:
|
||||||
SetRailType(t, UpdateRailType(GetRailType(t), min_rail));
|
SetRailType(t, UpdateRailType(GetRailType(t), monorail));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MP_ROAD:
|
case MP_ROAD:
|
||||||
if (IsLevelCrossing(t)) {
|
if (IsLevelCrossing(t)) {
|
||||||
SetRailType(t, UpdateRailType(GetRailType(t), min_rail));
|
SetRailType(t, UpdateRailType(GetRailType(t), monorail));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MP_STATION:
|
case MP_STATION:
|
||||||
if (HasStationRail(t)) {
|
if (HasStationRail(t)) {
|
||||||
SetRailType(t, UpdateRailType(GetRailType(t), min_rail));
|
SetRailType(t, UpdateRailType(GetRailType(t), monorail));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MP_TUNNELBRIDGE:
|
case MP_TUNNELBRIDGE:
|
||||||
if (GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL) {
|
if (GetTunnelBridgeTransportType(t) == TRANSPORT_RAIL) {
|
||||||
SetRailType(t, UpdateRailType(GetRailType(t), min_rail));
|
SetRailType(t, UpdateRailType(GetRailType(t), monorail));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1369,6 +1369,14 @@ bool AfterLoadGame()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (IsSavegameVersionBefore(SLV_38)) {
|
||||||
|
/* since we cannot know the preference of a user, let elrails enabled; it
|
||||||
|
* can be disabled manually */
|
||||||
|
_settings_game.vehicle.disable_elrails = false;
|
||||||
|
}
|
||||||
|
/* do the same as when elrails were enabled/disabled manually just now */
|
||||||
|
UpdateDisableElrailSettingState(_settings_game.vehicle.disable_elrails, false);
|
||||||
|
InitializeRailGUI();
|
||||||
|
|
||||||
/* In version 16.1 of the savegame a company can decide if trains, which get
|
/* In version 16.1 of the savegame a company can decide if trains, which get
|
||||||
* replaced, shall keep their old length. In all prior versions, just default
|
* replaced, shall keep their old length. In all prior versions, just default
|
||||||
|
@ -1500,13 +1508,6 @@ bool AfterLoadGame()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* from version 38 we have optional elrails, since we cannot know the
|
|
||||||
* preference of a user, let elrails enabled; it can be disabled manually */
|
|
||||||
if (IsSavegameVersionBefore(SLV_38)) _settings_game.vehicle.disable_elrails = false;
|
|
||||||
/* do the same as when elrails were enabled/disabled manually just now */
|
|
||||||
UpdateDisableElrailSettingState(_settings_game.vehicle.disable_elrails, false);
|
|
||||||
InitializeRailGUI();
|
|
||||||
|
|
||||||
/* From version 53, the map array was changed for house tiles to allow
|
/* From version 53, the map array was changed for house tiles to allow
|
||||||
* space for newhouses grf features. A new byte, m7, was also added. */
|
* space for newhouses grf features. A new byte, m7, was also added. */
|
||||||
if (IsSavegameVersionBefore(SLV_53)) {
|
if (IsSavegameVersionBefore(SLV_53)) {
|
||||||
|
|
Loading…
Reference in New Issue