diff options
Diffstat (limited to 'src/saveload/company_sl.cpp')
-rw-r--r-- | src/saveload/company_sl.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 4d4c50c9e..a51c32d7e 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -151,11 +151,32 @@ void AfterLoadCompanyStats() break; } + case STATION_DOCK: + case STATION_BUOY: + if (GetWaterClass(tile) == WATER_CLASS_CANAL) { + if (c != NULL) c->infrastructure.water++; + } + break; + default: break; } break; + case MP_WATER: + if (IsShipDepot(tile) || IsLock(tile)) { + c = Company::GetIfValid(GetTileOwner(tile)); + if (c != NULL) c->infrastructure.water += LOCK_DEPOT_TILE_FACTOR; + } + /* FALL THROUGH */ + + case MP_OBJECT: + if (GetWaterClass(tile) == WATER_CLASS_CANAL) { + c = Company::GetIfValid(GetTileOwner(tile)); + if (c != NULL) c->infrastructure.water++; + } + break; + case MP_TUNNELBRIDGE: { /* Only count the tunnel/bridge if we're on the northern end tile. */ TileIndex other_end = GetOtherTunnelBridgeEnd(tile); @@ -180,6 +201,11 @@ void AfterLoadCompanyStats() break; } + case TRANSPORT_WATER: + c = Company::GetIfValid(GetTileOwner(tile)); + if (c != NULL) c->infrastructure.water += len; + break; + default: break; } |