|
@@ -110,13 +110,13 @@ static const SpriteGroup *GenericCallbac
|
|
|
if (group->g.real.num_loaded == 0) return NULL;
|
|
|
|
|
|
return group->g.real.loaded[0];
|
|
|
}
|
|
|
|
|
|
|
|
|
static inline void NewGenericResolver(ResolverObject *res)
|
|
|
static inline void NewGenericResolver(ResolverObject *res, const GRFFile *grffile)
|
|
|
{
|
|
|
res->GetRandomBits = &GenericCallbackGetRandomBits;
|
|
|
res->GetTriggers = &GenericCallbackGetTriggers;
|
|
|
res->SetTriggers = &GenericCallbackSetTriggers;
|
|
|
res->GetVariable = &GenericCallbackGetVariable;
|
|
|
res->ResolveReal = &GenericCallbackResolveReal;
|
|
@@ -125,12 +125,13 @@ static inline void NewGenericResolver(Re
|
|
|
res->callback_param1 = 0;
|
|
|
res->callback_param2 = 0;
|
|
|
res->last_value = 0;
|
|
|
res->trigger = 0;
|
|
|
res->reseed = 0;
|
|
|
res->count = 0;
|
|
|
res->grffile = grffile;
|
|
|
}
|
|
|
|
|
|
|
|
|
/** Follow a generic feature callback list and return the first successful
|
|
|
* answer
|
|
|
* @param feature GRF Feature of callback
|
|
@@ -163,13 +164,13 @@ static uint16 GetGenericCallbackResult(u
|
|
|
* 'Execute' an AI purchase selection callback
|
|
|
*/
|
|
|
uint16 GetAiPurchaseCallbackResult(uint8 feature, CargoID cargo_type, uint8 default_selection, IndustryType src_industry, IndustryType dst_industry, uint8 distance, AIConstructionEvent event, uint8 count, uint8 station_size, const GRFFile **file)
|
|
|
{
|
|
|
ResolverObject object;
|
|
|
|
|
|
NewGenericResolver(&object);
|
|
|
NewGenericResolver(&object, *file);
|
|
|
|
|
|
object.callback = CBID_GENERIC_AI_PURCHASE_SELECTION;
|
|
|
object.u.generic.cargo_type = cargo_type;
|
|
|
object.u.generic.default_selection = default_selection;
|
|
|
object.u.generic.src_industry = src_industry;
|
|
|
object.u.generic.dst_industry = dst_industry;
|