(svn r22634) -Codechange: Deduplicate some code. Note that zeroing 'count' is intentionally removed, it is only used together with 'scope'.

replace/41b28d7194a279bdc17475d4fbe2ea6ec885a466
frosch 13 years ago
parent d2b236802c
commit 8b18292a2e

@ -224,10 +224,7 @@ static void NewAirportResolver(ResolverObject *res, TileIndex tile, Station *st,
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
const AirportSpec *as = AirportSpec::Get(airport_id);
res->grffile = as->grf_prop.grffile;

@ -238,10 +238,7 @@ static void AirportTileResolver(ResolverObject *res, const AirportTileSpec *ats,
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
res->grffile = ats->grf_prop.grffile;
}

@ -89,10 +89,8 @@ static void NewCanalResolver(ResolverObject *res, TileIndex tile, const GRFFile
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
res->grffile = grffile;
}

@ -66,10 +66,8 @@ static void NewCargoResolver(ResolverObject *res, const CargoSpec *cs)
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
res->grffile = cs->grffile;
}

@ -878,10 +878,7 @@ static inline void NewVehicleResolver(ResolverObject *res, EngineID engine_type,
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
const Engine *e = Engine::Get(engine_type);
res->grffile = (e != NULL ? e->grf_prop.grffile : NULL);

@ -126,10 +126,8 @@ static inline void NewGenericResolver(ResolverObject *res, const GRFFile *grffil
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
res->grffile = grffile;
}

@ -397,10 +397,7 @@ static void NewHouseResolver(ResolverObject *res, HouseID house_id, TileIndex ti
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
const HouseSpec *hs = HouseSpec::Get(house_id);
res->grffile = (hs != NULL ? hs->grf_prop.grffile : NULL);

@ -424,10 +424,7 @@ static void NewIndustryResolver(ResolverObject *res, TileIndex tile, Industry *i
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
const IndustrySpec *indspec = GetIndustrySpec(type);
res->grffile = (indspec != NULL ? indspec->grf_prop.grffile : NULL);

@ -190,10 +190,7 @@ static void NewIndustryTileResolver(ResolverObject *res, IndustryGfx gfx, TileIn
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
const IndustryTileSpec *its = GetIndustryTileSpec(gfx);
res->grffile = (its != NULL ? its->grf_prop.grffile : NULL);

@ -393,10 +393,7 @@ static void NewObjectResolver(ResolverObject *res, const ObjectSpec *spec, Objec
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
res->grffile = spec->grf_prop.grffile;
}

@ -81,10 +81,7 @@ static inline void NewRailTypeResolver(ResolverObject *res, TileIndex tile, Tile
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
res->grffile = grffile;
}

@ -381,6 +381,17 @@ struct ResolverObject {
uint32 (*GetVariable)(const struct ResolverObject*, byte, byte, bool*);
const SpriteGroup *(*ResolveReal)(const struct ResolverObject*, const RealSpriteGroup*);
void (*StorePSA)(struct ResolverObject*, uint, int32);
/**
* Resets the dynamic state of the resolver object.
* To be called before resolving an Action-1-2-3 chain.
*/
void ResetState()
{
this->last_value = 0;
this->trigger = 0;
this->reseed = 0;
}
};
#endif /* NEWGRF_SPRITEGROUP_H */

@ -548,10 +548,8 @@ static void NewStationResolver(ResolverObject *res, const StationSpec *statspec,
res->callback = CBID_NO_CALLBACK;
res->callback_param1 = 0;
res->callback_param2 = 0;
res->last_value = 0;
res->trigger = 0;
res->reseed = 0;
res->count = 0;
res->ResetState();
res->grffile = (statspec != NULL ? statspec->grf_prop.grffile : NULL);
/* Invalidate all cached vars */

Loading…
Cancel
Save