OpenTTD
Data Structures | Typedefs | Functions | Variables
newgrf_generic.cpp File Reference

Handling of generic feature callbacks. More...

#include "stdafx.h"
#include "debug.h"
#include "newgrf_spritegroup.h"
#include "industrytype.h"
#include "core/random_func.hpp"
#include "newgrf_sound.h"
#include "water_map.h"
#include <list>
#include "safeguards.h"

Go to the source code of this file.

Data Structures

struct  GenericScopeResolver
 Scope resolver for generic objects and properties. More...
 
struct  GenericResolverObject
 Resolver object for generic objects/properties. More...
 
struct  GenericCallback
 

Typedefs

typedef std::list< GenericCallbackGenericCallbackList
 

Functions

void ResetGenericCallbacks ()
 Reset all generic feature callback sprite groups.
 
void AddGenericCallback (uint8 feature, const GRFFile *file, const SpriteGroup *group)
 Add a generic feature callback sprite group to the appropriate feature list. More...
 
static uint16 GetGenericCallbackResult (uint8 feature, ResolverObject &object, uint32 param1_grfv7, uint32 param1_grfv8, const GRFFile **file)
 Follow a generic feature callback list and return the first successful answer. More...
 
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)
 'Execute' an AI purchase selection callback More...
 
void AmbientSoundEffectCallback (TileIndex tile)
 'Execute' the ambient sound effect callback. More...
 

Variables

static GenericCallbackList _gcl [GSF_END]
 

Detailed Description

Handling of generic feature callbacks.

Definition in file newgrf_generic.cpp.

Function Documentation

◆ AddGenericCallback()

void AddGenericCallback ( uint8  feature,
const GRFFile file,
const SpriteGroup group 
)

Add a generic feature callback sprite group to the appropriate feature list.

Parameters
featureThe feature for the callback.
fileThe GRF of the callback.
groupThe sprite group of the callback.

Definition at line 101 of file newgrf_generic.cpp.

References lengthof.

◆ AmbientSoundEffectCallback()

void AmbientSoundEffectCallback ( TileIndex  tile)

'Execute' the ambient sound effect callback.

Parameters
tileTile the sound effect should be generated for.

Definition at line 244 of file newgrf_generic.cpp.

◆ GetAiPurchaseCallbackResult()

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 
)

'Execute' an AI purchase selection callback

Parameters
featureGRF Feature to call callback for.
cargo_typeCargotype to pass to callback. (Variable 80)
default_selection'Default selection' to pass to callback. (Variable 82)
src_industry'Source industry type' to pass to callback. (Variable 83)
dst_industry'Destination industry type' to pass to callback. (Variable 84)
distance'Distance between source and destination' to pass to callback. (Variable 85)
event'AI construction event' to pass to callback. (Variable 86)
count'Construction number' to pass to callback. (Variable 87)
station_size'Station size' to pass to callback. (Variable 88)
[out]fileOptionally returns the GRFFile which made the final decision for the callback result. May be NULL if not required.
Returns
callback value if successful or CALLBACK_FAILED

Definition at line 209 of file newgrf_generic.cpp.

References ResolverObject::callback, CALLBACK_FAILED, CBID_GENERIC_AI_PURCHASE_SELECTION, GB(), GetGenericCallbackResult(), GetIndustrySpec(), IndustrySpec::grf_prop, INVALID_INDUSTRYTYPE, IT_AI_TOWN, and IT_AI_UNKNOWN.

◆ GetGenericCallbackResult()

static uint16 GetGenericCallbackResult ( uint8  feature,
ResolverObject object,
uint32  param1_grfv7,
uint32  param1_grfv8,
const GRFFile **  file 
)
static

Follow a generic feature callback list and return the first successful answer.

Parameters
featureGRF Feature of callback
objectpre-populated resolver object
param1_grfv7callback_param1 for GRFs up to version 7.
param1_grfv8callback_param1 for GRFs from version 8 on.
[out]fileOptionally returns the GRFFile which made the final decision for the callback result. May be NULL if not required.
Returns
callback value if successful or CALLBACK_FAILED

Definition at line 169 of file newgrf_generic.cpp.

Referenced by GetAiPurchaseCallbackResult().