Data Structures | Typedefs | Functions | Variables

newgrf_generic.cpp File Reference

Handling of generic feature callbacks. More...

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

Go to the source code of this file.

Data Structures

struct  GenericCallback

Typedefs

typedef std::list
< GenericCallback
GenericCallbackList

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.
static uint32 GenericCallbackGetRandomBits (const ResolverObject *object)
static uint32 GenericCallbackGetTriggers (const ResolverObject *object)
static void GenericCallbackSetTriggers (const ResolverObject *object, int triggers)
static uint32 GenericCallbackGetVariable (const ResolverObject *object, byte variable, uint32 parameter, bool *available)
static uint32 GenericAiCallbackGetVariable (const ResolverObject *object, byte variable, uint32 parameter, bool *available)
static const SpriteGroupGenericCallbackResolveReal (const ResolverObject *object, const RealSpriteGroup *group)
static void NewGenericResolver (ResolverObject *res, bool ai_callback)
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.
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
void AmbientSoundEffectCallback (TileIndex tile)
 'Execute' the ambient sound effect callback.

Variables

static GenericCallbackList _gcl [GSF_END]

Detailed Description

Handling of generic feature callbacks.

Definition in file newgrf_generic.cpp.


Function Documentation

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

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

Parameters:
feature The feature for the callback.
file The GRF of the callback.
group The sprite group of the callback.

Definition at line 57 of file newgrf_generic.cpp.

References grfmsg(), and lengthof.

void AmbientSoundEffectCallback ( TileIndex  tile  ) 

'Execute' the ambient sound effect callback.

Parameters:
tile Tile the sound effect should be generated for.

Definition at line 234 of file newgrf_generic.cpp.

References CALLBACK_FAILED, Chance16R(), Clamp(), GB(), GetGenericCallbackResult(), GetTerrainType(), GetTileType(), GetTileZ(), GetWaterClass(), HasTileWaterClass(), IsTileType(), MP_CLEAR, MP_TREES, MP_WATER, PlayTileSound(), and TileHeight().

Referenced by AmbientSoundEffect().

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:
feature GRF Feature to call callback for.
cargo_type Cargotype 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] file Optionally 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 196 of file newgrf_generic.cpp.

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

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:
feature GRF Feature of callback
object pre-populated resolver object
param1_grfv7 callback_param1 for GRFs up to version 7.
param1_grfv8 callback_param1 for GRFs from version 8 on.
[out] file Optionally 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 156 of file newgrf_generic.cpp.

References CALLBACK_FAILED, lengthof, and SpriteGroup::Resolve().

Referenced by AmbientSoundEffectCallback(), and GetAiPurchaseCallbackResult().