OpenTTD Source 20241224-master-gf74b0cf984
newgrf_house.h File Reference

Functions related to NewGRF houses. More...

#include "newgrf_callbacks.h"
#include "tile_cmd.h"
#include "house_type.h"
#include "newgrf_spritegroup.h"
#include "newgrf_town.h"

Go to the source code of this file.

Data Structures

struct  HouseScopeResolver
 Scope resolver for houses. More...
 
struct  HouseResolverObject
 Resolver object to be used for houses (feature 07 spritegroups). More...
 
struct  HouseClassMapping
 Makes class IDs unique to each GRF file. More...
 

Enumerations

enum  HouseTrigger { HOUSE_TRIGGER_TILE_LOOP = 0x01 , HOUSE_TRIGGER_TILE_LOOP_TOP = 0x02 }
 

Functions

void ResetHouseClassIDs ()
 
HouseClassID AllocateHouseClassID (uint8_t grf_class_id, uint32_t grfid)
 
void InitializeBuildingCounts ()
 Initialise global building counts and all town building counts.
 
void InitializeBuildingCounts (Town *t)
 Initialise building counts for a town.
 
void IncreaseBuildingCount (Town *t, HouseID house_id)
 IncreaseBuildingCount() Increase the count of a building when it has been added by a town.
 
void DecreaseBuildingCount (Town *t, HouseID house_id)
 DecreaseBuildingCount() Decrease the number of a building when it is deleted.
 
std::span< const uint > GetBuildingHouseIDCounts ()
 Get read-only span of total HouseID building counts.
 
void DrawNewHouseTile (TileInfo *ti, HouseID house_id)
 
void AnimateNewHouseTile (TileIndex tile)
 
void AnimateNewHouseConstruction (TileIndex tile)
 
uint16_t GetHouseCallback (CallbackID callback, uint32_t param1, uint32_t param2, HouseID house_id, Town *town, TileIndex tile, bool not_yet_constructed=false, uint8_t initial_random_bits=0, CargoTypes watched_cargo_triggers=0, int view=0)
 
void WatchedCargoCallback (TileIndex tile, CargoTypes trigger_cargoes)
 Run watched cargo accepted callback for a house.
 
bool CanDeleteHouse (TileIndex tile)
 
bool NewHouseTileLoop (TileIndex tile)
 
void TriggerHouse (TileIndex t, HouseTrigger trigger)
 

Detailed Description

Functions related to NewGRF houses.

Definition in file newgrf_house.h.

Enumeration Type Documentation

◆ HouseTrigger

enum HouseTrigger

Definition at line 112 of file newgrf_house.h.

Function Documentation

◆ AllocateHouseClassID()

HouseClassID AllocateHouseClassID ( uint8_t  grf_class_id,
uint32_t  grfid 
)

Definition at line 137 of file newgrf_house.cpp.

◆ AnimateNewHouseConstruction()

void AnimateNewHouseConstruction ( TileIndex  tile)

Definition at line 602 of file newgrf_house.cpp.

◆ AnimateNewHouseTile()

void AnimateNewHouseTile ( TileIndex  tile)

Definition at line 594 of file newgrf_house.cpp.

◆ CanDeleteHouse()

bool CanDeleteHouse ( TileIndex  tile)

Definition at line 611 of file newgrf_house.cpp.

◆ DecreaseBuildingCount()

void DecreaseBuildingCount ( Town t,
HouseID  house_id 
)

DecreaseBuildingCount() Decrease the number of a building when it is deleted.

Parameters
tThe town that the building was built in
house_idThe id of the house being removed

Definition at line 209 of file newgrf_house.cpp.

References TownCache::building_counts, Town::cache, HouseSpec::class_id, and HouseSpec::Get().

Referenced by DoClearTownHouseHelper().

◆ DrawNewHouseTile()

void DrawNewHouseTile ( TileInfo ti,
HouseID  house_id 
)

Definition at line 553 of file newgrf_house.cpp.

◆ GetBuildingHouseIDCounts()

std::span< const uint > GetBuildingHouseIDCounts ( )

Get read-only span of total HouseID building counts.

Returns
span of HouseID building counts.

Definition at line 179 of file newgrf_house.cpp.

Referenced by HousePickerCallbacks::FillUsedItems().

◆ GetHouseCallback()

uint16_t GetHouseCallback ( CallbackID  callback,
uint32_t  param1,
uint32_t  param2,
HouseID  house_id,
Town town,
TileIndex  tile,
bool  not_yet_constructed = false,
uint8_t  initial_random_bits = 0,
CargoTypes  watched_cargo_triggers = 0,
int  view = 0 
)

Definition at line 518 of file newgrf_house.cpp.

◆ IncreaseBuildingCount()

void IncreaseBuildingCount ( Town t,
HouseID  house_id 
)

IncreaseBuildingCount() Increase the count of a building when it has been added by a town.

Parameters
tThe town that the building is being built in
house_idThe id of the house being added

Definition at line 190 of file newgrf_house.cpp.

References TownCache::building_counts, Town::cache, HouseSpec::class_id, and HouseSpec::Get().

Referenced by ClearMakeHouseTile(), and RebuildTownCaches().

◆ InitializeBuildingCounts() [1/2]

void InitializeBuildingCounts ( )

◆ InitializeBuildingCounts() [2/2]

void InitializeBuildingCounts ( Town t)

Initialise building counts for a town.

Parameters
tTown cache to initialise.

Definition at line 152 of file newgrf_house.cpp.

References TownCache::building_counts, Town::cache, and HouseSpec::Specs().

◆ NewHouseTileLoop()

bool NewHouseTileLoop ( TileIndex  tile)

Definition at line 639 of file newgrf_house.cpp.

◆ ResetHouseClassIDs()

void ResetHouseClassIDs ( )

Definition at line 129 of file newgrf_house.cpp.

◆ TriggerHouse()

void TriggerHouse ( TileIndex  t,
HouseTrigger  trigger 
)

Definition at line 729 of file newgrf_house.cpp.

◆ WatchedCargoCallback()

void WatchedCargoCallback ( TileIndex  tile,
CargoTypes  trigger_cargoes 
)

Run watched cargo accepted callback for a house.

Parameters
tileHouse tile.
trigger_cargoesTriggering cargo types.
Precondition
IsTileType(t, MP_HOUSE)

Definition at line 754 of file newgrf_house.cpp.

References HouseSpec::building_flags, DoWatchedCargoCallback(), HouseSpec::Get(), GetHouseNorthPart(), GetHouseType(), IsTileType(), MP_HOUSE, TileAddXY(), and HouseSpec::watched_cargoes.

Referenced by TriggerWatchedCargoCallbacks().