(svn r6424) -Codechange: [autoreplace] removed a loop though all vehicles from each time the window is redrawn

To do this, the player struct contains an array, that contains the count of each engine type that the player owns
   Those arrays are updated each time a vehicle is build or deleted and is calculated on load (it's not saved)
   It's possible to access the arrays outside of the autoreplace GUI, so feel free to read from them in other patches as well
This commit is contained in:
bjarni
2006-09-08 10:47:39 +00:00
parent f01e761f80
commit 00a08601c9
10 changed files with 60 additions and 40 deletions

View File

@@ -635,6 +635,7 @@ static int32 CmdBuildRailWagon(EngineID engine, TileIndex tile, uint32 flags)
VehiclePositionChanged(v);
TrainConsistChanged(GetFirstVehicleInChain(v));
GetPlayer(_current_player)->num_engines[engine]++;
InvalidateWindow(WC_VEHICLE_DEPOT, v->tile);
if (IsLocalPlayer()) {
@@ -815,6 +816,7 @@ int32 CmdBuildRailVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
NormalizeTrainVehInDepot(v);
}
GetPlayer(_current_player)->num_engines[p1]++;
InvalidateWindow(WC_VEHICLE_DEPOT, tile);
RebuildVehicleLists();
InvalidateWindow(WC_COMPANY, v->owner);