OpenTTD Source: src/house.h File Reference

OpenTTD Source 12.2

Data Structures | Enumerations | Functions | Variables
house.h File Reference
`#include "cargo_type.h"`
`#include "date_type.h"`
`#include "house_type.h"`
`#include "newgrf_animation_type.h"`
`#include "newgrf_commons.h"`

Go to the source code of this file.

## Data Structures
struct | HouseSpec

## Enumerations
enum | BuildingFlags { TILE_NO_FLAG = 0, TILE_SIZE_1x1 = 1U << 0, TILE_NOT_SLOPED = 1U << 1, TILE_SIZE_2x1 = 1U << 2, TILE_SIZE_1x2 = 1U << 3, TILE_SIZE_2x2 = 1U << 4, BUILDING_IS_ANIMATED = 1U << 5, BUILDING_IS_CHURCH = 1U << 6, BUILDING_IS_STADIUM = 1U << 7, BUILDING_HAS_1_TILE = TILE_SIZE_1x1 | TILE_SIZE_2x1 | TILE_SIZE_1x2 | TILE_SIZE_2x2, BUILDING_HAS_2_TILES = TILE_SIZE_2x1 | TILE_SIZE_1x2 | TILE_SIZE_2x2, BUILDING_2_TILES_X = TILE_SIZE_2x1 | TILE_SIZE_2x2, BUILDING_2_TILES_Y = TILE_SIZE_1x2 | TILE_SIZE_2x2, BUILDING_HAS_4_TILES = TILE_SIZE_2x2 }
enum | HouseZonesBits { HZB_BEGIN = 0, HZB_TOWN_EDGE = 0, HZB_TOWN_OUTSKIRT, HZB_TOWN_OUTER_SUBURB, HZB_TOWN_INNER_SUBURB, HZB_TOWN_CENTRE, HZB_END }
enum | HouseZones { HZ_NOZNS = 0x0000, HZ_ZON1 = 1U << HZB_TOWN_EDGE, HZ_ZON2 = 1U << HZB_TOWN_OUTSKIRT, HZ_ZON3 = 1U << HZB_TOWN_OUTER_SUBURB, HZ_ZON4 = 1U << HZB_TOWN_INNER_SUBURB, HZ_ZON5 = 1U << HZB_TOWN_CENTRE, HZ_ZONALL = 0x001F, HZ_SUBARTC_ABOVE = 0x0800, HZ_TEMP = 0x1000, HZ_SUBARTC_BELOW = 0x2000, HZ_SUBTROPIC = 0x4000, HZ_TOYLND = 0x8000, HZ_CLIMALL = 0xF800 }
enum | HouseExtraFlags { NO_EXTRA_FLAG = 0, BUILDING_IS_HISTORICAL = 1U << 0, BUILDING_IS_PROTECTED = 1U << 1, SYNCHRONISED_CALLBACK_1B = 1U << 2, CALLBACK_1A_RANDOM_BITS = 1U << 3 }

## Functions
static HouseID | GetTranslatedHouseID (HouseID hid)
| Do HouseID translation for NewGRFs. More...

## Variables
static const byte | TOWN_HOUSE_COMPLETED = 3
| Simple value that indicates the house has reached the final stage of construction.
static const HouseID | NUM_HOUSES_PER_GRF = 255
| Number of supported houses per NewGRF; limited to 255 to allow extending Action3 with an extended byte later on.
static const uint | HOUSE_NO_CLASS = 0
static const HouseID | NEW_HOUSE_OFFSET = 110
| Offset for new houses.
static const HouseID | NUM_HOUSES = 512
| Total number of houses.
static const HouseID | INVALID_HOUSE_ID = 0xFFFF
static const uint | HOUSE_NUM_ACCEPTS = 16
| Max number of cargoes accepted by a tile.
static const uint | HOUSE_CLASS_MAX = NUM_HOUSES - NEW_HOUSE_OFFSET + 1
| There can only be as many classes as there are new houses, plus one for NO_CLASS, as the original houses don't have classes.

## Detailed Description

definition of HouseSpec and accessors

Definition in file house.h.

## Enumeration Type Documentation

## ◆ HouseExtraFlags

enum HouseExtraFlags

Enumerator
BUILDING_IS_HISTORICAL | this house will only appear during town generation in random games, thus the historical
BUILDING_IS_PROTECTED | towns and AI will not remove this house, while human players will be able to
SYNCHRONISED_CALLBACK_1B | synchronized callback 1B will be performed, on multi tile houses
CALLBACK_1A_RANDOM_BITS | callback 1A needs random bits

Definition at line 88 of file house.h.

## ◆ HouseZones

enum HouseZones

Enumerator
HZ_NOZNS | Bit Value Meaning. 0 This is just to get rid of zeros, meaning none
HZ_ZON1 | 0..4 1,2,4,8,10 which town zones the building can be built in, Zone1 been the further suburb
HZ_ZON5 | center of town
HZ_ZONALL | 1F This is just to englobe all above types at once
HZ_SUBARTC_ABOVE | 11 800 can appear in sub-arctic climate above the snow line
HZ_TEMP | 12 1000 can appear in temperate climate
HZ_SUBARTC_BELOW | 13 2000 can appear in sub-arctic climate below the snow line
HZ_SUBTROPIC | 14 4000 can appear in subtropical climate
HZ_TOYLND | 15 8000 can appear in toyland climate
HZ_CLIMALL | Bitmask of all climate bits.

Definition at line 71 of file house.h.

## Function Documentation

## ◆ GetTranslatedHouseID()

static HouseID GetTranslatedHouseID | ( | HouseID | hid | ) |
| inlinestatic

Do HouseID translation for NewGRFs.

Parameters

  hid | the HouseID to get the override for.

Returns
  the HouseID to actually work with.

Definition at line 140 of file house.h.

References HouseSpec::grf_prop, and GRFFileProps::override.

Referenced by GetHouseType().