From 9bd079d4257e9d49bb22244edd2d103620bc8896 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Wed, 9 Mar 2005 19:48:20 +0000 Subject: (svn r1978) - Fix: Plug some memleaks; thanks Valgrind --- engine.c | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'engine.c') diff --git a/engine.c b/engine.c index 803ff43b1..932917624 100644 --- a/engine.c +++ b/engine.c @@ -56,7 +56,7 @@ void DeleteCustomEngineNames(void) uint i; StringID old; - for(i=0; i!=TOTAL_NUM_ENGINES; i++) { + for (i = 0; i != TOTAL_NUM_ENGINES; i++) { old = _engine_name_strings[i]; _engine_name_strings[i] = i + STR_8000_KIRBY_PAUL_TANK_STEAM; DeleteName(old); @@ -73,10 +73,10 @@ void LoadCustomEngineNames(void) static void SetupEngineNames(void) { - uint i; + StringID *name; - for(i=0; i!=TOTAL_NUM_ENGINES; i++) - _engine_name_strings[i] = STR_SV_EMPTY; + for (name = _engine_name_strings; name != endof(_engine_name_strings); name++) + *name = STR_SV_EMPTY; DeleteCustomEngineNames(); LoadCustomEngineNames(); @@ -200,7 +200,7 @@ void StartupEngines(void) AdjustAvailAircraft(); } -uint32 _engine_refit_masks[256]; +uint32 _engine_refit_masks[TOTAL_NUM_ENGINES]; // TODO: We don't support cargo-specific wagon overrides. Pretty exotic... ;-) --pasky @@ -214,7 +214,7 @@ struct WagonOverride { static struct WagonOverrides { int overrides_count; struct WagonOverride *overrides; -} _engine_wagon_overrides[256]; +} _engine_wagon_overrides[TOTAL_NUM_ENGINES]; void SetWagonOverrideSprites(byte engine, struct SpriteGroup *group, byte *train_id, int trains) @@ -260,12 +260,12 @@ static struct SpriteGroup *GetWagonOverrideSpriteSet(byte engine, byte overridin } -byte _engine_original_sprites[256]; +byte _engine_original_sprites[TOTAL_NUM_ENGINES]; // 0 - 28 are cargos, 29 is default, 30 is the advert (purchase list) // (It isn't and shouldn't be like this in the GRF files since new cargo types // may appear in future - however it's more convenient to store it like this in // memory. --pasky) -static struct SpriteGroup _engine_custom_sprites[256][NUM_CID]; +static struct SpriteGroup _engine_custom_sprites[TOTAL_NUM_ENGINES][NUM_CID]; void SetCustomEngineSprites(byte engine, byte cargo, struct SpriteGroup *group) { @@ -622,14 +622,22 @@ void TriggerVehicle(Vehicle *veh, enum VehicleTrigger trigger) DoTriggerVehicle(veh, trigger, 0, true); } - -static char *_engine_custom_names[256]; +static char *_engine_custom_names[TOTAL_NUM_ENGINES]; void SetCustomEngineName(int engine, const char *name) { _engine_custom_names[engine] = strdup(name); } +void UnInitNewgrEngines(void) +{ + char **i; + for (i = _engine_custom_names; i != endof(_engine_custom_names); i++) { + free(*i); + *i = NULL; + } +} + StringID GetCustomEngineName(int engine) { if (!_engine_custom_names[engine]) -- cgit v1.2.3-54-g00ecf