Mercurial > hg > openttd
changeset 18152:545be3b5f43e draft
(svn r22977) -Codechange: Rename SetCachedEngineCounts() to GroupStatistics::UpdateAfterLoad().
author | frosch <frosch@openttd.org> |
---|---|
date | Mon, 03 Oct 2011 17:20:56 +0000 |
parents | 98b63013cba3 |
children | ca071969f8d7 |
files | src/engine.cpp src/engine_func.h src/group.h src/group_cmd.cpp src/saveload/afterload.cpp |
diffstat | 5 files changed, 44 insertions(+), 42 deletions(-) [+] |
line wrap: on
line diff
--- a/src/engine.cpp +++ b/src/engine.cpp @@ -461,45 +461,6 @@ } /** - * Sets cached values in Company::num_vehicles and Group::num_vehicles - */ -void SetCachedEngineCounts() -{ - size_t engines = Engine::GetPoolSize(); - - /* Set up the engine count for all companies */ - Company *c; - FOR_ALL_COMPANIES(c) { - free(c->num_engines); - c->num_engines = CallocT<EngineID>(engines); - } - - /* Recalculate */ - Group *g; - FOR_ALL_GROUPS(g) { - g->statistics.Clear(); - } - - const Vehicle *v; - FOR_ALL_VEHICLES(v) { - if (!v->IsEngineCountable()) continue; - - assert(v->engine_type < engines); - - Company::Get(v->owner)->num_engines[v->engine_type]++; - - if (v->group_id == DEFAULT_GROUP) continue; - - g = Group::Get(v->group_id); - assert(v->type == g->vehicle_type); - assert(v->owner == g->owner); - - g->statistics.num_engines[v->engine_type]++; - if (v->IsPrimaryVehicle()) g->statistics.num_vehicle++; - } -} - -/** * Initialise the engine pool with the data from the original vehicles. */ void SetupEngines()
--- a/src/engine_func.h +++ b/src/engine_func.h @@ -25,7 +25,6 @@ bool IsEngineBuildable(EngineID engine, VehicleType type, CompanyID company); bool IsEngineRefittable(EngineID engine); -void SetCachedEngineCounts(); void SetYearEngineAgingStops(); void StartupOneEngine(Engine *e, Date aging_date);
--- a/src/group.h +++ b/src/group.h @@ -30,6 +30,8 @@ ~GroupStatistics(); void Clear(); + + static void UpdateAfterLoad(); }; /** Group data. */
--- a/src/group_cmd.cpp +++ b/src/group_cmd.cpp @@ -54,6 +54,45 @@ this->num_engines = CallocT<uint16>(Engine::GetPoolSize()); } +/** + * Update all caches after loading a game, changing NewGRF etc.. + */ +/* static */ void GroupStatistics::UpdateAfterLoad() +{ + size_t engines = Engine::GetPoolSize(); + + /* Set up the engine count for all companies */ + Company *c; + FOR_ALL_COMPANIES(c) { + free(c->num_engines); + c->num_engines = CallocT<EngineID>(engines); + } + + /* Recalculate */ + Group *g; + FOR_ALL_GROUPS(g) { + g->statistics.Clear(); + } + + const Vehicle *v; + FOR_ALL_VEHICLES(v) { + if (!v->IsEngineCountable()) continue; + + assert(v->engine_type < engines); + + Company::Get(v->owner)->num_engines[v->engine_type]++; + + if (v->group_id == DEFAULT_GROUP) continue; + + g = Group::Get(v->group_id); + assert(v->type == g->vehicle_type); + assert(v->owner == g->owner); + + g->statistics.num_engines[v->engine_type]++; + if (v->IsPrimaryVehicle()) g->statistics.num_vehicle++; + } +} + /** * Update the num engines of a groupID. Decrease the old one and increase the new one
--- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -52,6 +52,7 @@ #include "../core/backup_type.hpp" #include "../smallmap_gui.h" #include "../news_func.h" +#include "../group.h" #include "table/strings.h" @@ -252,7 +253,7 @@ RecomputePrices(); - SetCachedEngineCounts(); + GroupStatistics::UpdateAfterLoad(); Station::RecomputeIndustriesNearForAll(); RebuildSubsidisedSourceAndDestinationCache(); @@ -2677,7 +2678,7 @@ ResetVehiclePosHash(); AfterLoadVehicles(false); StartupEngines(); - SetCachedEngineCounts(); + GroupStatistics::UpdateAfterLoad(); /* update station graphics */ AfterLoadStations(); /* Check and update house and town values */