diff options
Diffstat (limited to 'src/newgrf_callbacks.h')
-rw-r--r-- | src/newgrf_callbacks.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/newgrf_callbacks.h b/src/newgrf_callbacks.h index 22aecc649..348bfb6cc 100644 --- a/src/newgrf_callbacks.h +++ b/src/newgrf_callbacks.h @@ -37,10 +37,42 @@ enum CallbackID { CBID_TRAIN_ARTIC_ENGINE = 0x16, + /* Called (if appropriate bit in callback mask is set) to determine whether + * the house can be built on the specified tile. */ + CBID_HOUSE_ALLOW_CONSTRUCTION = 0x17, + CBID_VEHICLE_CARGO_SUFFIX = 0x19, + /* Called (if appropriate bit in callback mask is set) to determine + * the next animation frame. */ + CBID_HOUSE_ANIMATION_NEXT_FRAME = 0x1A, + + /* Called (if appropriate bit in callback mask is set) for periodically + * starting or stopping the animation. */ + CBID_HOUSE_ANIMATION_START_STOP = 0x1B, + + /* Called (if appropriate bit in callback mask is set) whenever the + * construction state of a house changes. */ + CBID_CONSTRUCTION_STATE_CHANGE = 0x1C, + CBID_TRAIN_ALLOW_WAGON_ATTACH = 0x1D, + /* Called (if appropriate bit in callback mask is set) to determine the + * colour of a town building. */ + CBID_BUILDING_COLOUR = 0x1E, + + /* Called (if appropriate bit in callback mask is set) to decide how much + * cargo a town building can accept. */ + CBID_HOUSE_CARGO_ACCEPTANCE = 0x1F, // not yet implemented + + /* Called (if appropriate bit in callback mask is set) to indicate + * how long the current animation frame should last. */ + CBID_HOUSE_ANIMATION_SPEED = 0x20, + + /* Called (if appropriate bit in callback mask is set) periodically to + * determine if a house should be destroyed. */ + CBID_HOUSE_DESTRUCTION = 0x21, + /* This callback is called from vehicle purchase lists. It returns a value to be * used as a custom string ID in the 0xD000 range. */ CBID_VEHICLE_ADDITIONAL_TEXT = 0x23, @@ -48,16 +80,28 @@ enum CallbackID { /* Called when building a station to customize the tile layout */ CBID_STATION_TILE_LAYOUT = 0x24, + /* Called (if appropriate bit in callback mask is set) to determine which + * cargoes a town building should accept. */ + CBID_HOUSE_ACCEPT_CARGO = 0x2A, // not yet implemented + /* Called to determine if a specific colour map should be used for a vehicle * instead of the default livery */ CBID_VEHICLE_COLOUR_MAPPING = 0x2D, + /* Called (if appropriate bit in callback mask is set) to determine how much + * cargo a town building produces. */ + CBID_HOUSE_PRODUCE_CARGO = 0x2E, // not yet implemented + /* Called when the player (or AI) tries to start or stop a vehicle. Mainly * used for preventing a vehicle from leaving the depot. */ CBID_VEHICLE_START_STOP_CHECK = 0x31, /* Called to play a special sound effect */ CBID_VEHICLE_SOUND_EFFECT = 0x33, + + /* Called (if appropriate bit in callback mask set) to determine whether a + * town building can be destroyed. */ + CBID_HOUSE_DENY_DESTRUCTION = 0x143, }; /** @@ -84,6 +128,23 @@ enum StationCallbackMask { }; /** + * Callback masks for houses. + */ +enum HouseCallbackMask { + CBM_HOUSE_ALLOW_CONSTRUCTION = 0, + CBM_ANIMATION_NEXT_FRAME = 1, + CBM_ANIMATION_START_STOP = 2, + CBM_CONSTRUCTION_STATE_CHANGE = 3, + CBM_BUILDING_COLOUR = 4, + CBM_CARGO_ACCEPTANCE = 5, + CBM_ANIMATION_SPEED = 6, + CBM_HOUSE_DESTRUCTION = 7, + CBM_HOUSE_ACCEPT_CARGO = 8, + CBM_HOUSE_PRODUCE_CARGO = 9, + CBM_HOUSE_DENY_DESTRUCTION = 10, +}; + +/** * Result of a failed callback. */ enum { |