Add feature: realistic train braking

Add setting to select train braking model.
This commit is contained in:
Jonathan G Rennison
2021-01-25 02:33:14 +00:00
parent 2b02318c7e
commit ed0ffb6220
37 changed files with 2556 additions and 291 deletions

View File

@@ -826,6 +826,12 @@ static CommandCost RemoveRoad(TileIndex tile, DoCommandFlag flags, RoadBits piec
c->infrastructure.rail[GetRailType(tile)] -= LEVELCROSSING_TRACKBIT_FACTOR - 1;
DirtyCompanyInfrastructureWindows(c->index);
}
if (_settings_game.vehicle.train_braking_model == TBM_REALISTIC) {
AddTrackToSignalBuffer(tile, railtrack, GetTileOwner(tile));
UpdateSignalsInBuffer();
}
DeleteNewGRFInspectWindow(GSF_ROADTYPES, tile);
} else {
SetRoadType(tile, rtt, INVALID_ROADTYPE);
@@ -1109,6 +1115,10 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
if (rtt == RTT_ROAD) {
UpdateRoadCachedOneWayStatesAroundTile(tile);
}
if (_settings_game.vehicle.train_braking_model == TBM_REALISTIC) {
AddTrackToSignalBuffer(tile, railtrack, GetTileOwner(tile));
UpdateSignalsInBuffer();
}
MarkTileDirtyByTile(tile);
}
return CommandCost(EXPENSES_CONSTRUCTION, 2 * RoadBuildCost(rt));