# house.h File Reference

definition of HouseSpec and accessors More...

`#include "strings_type.h"`
`#include "cargo_type.h"`
`#include "economy_type.h"`
`#include "date_type.h"`
`#include "house_type.h"`

Go to the source code of this file.

## Data Structures

struct | HouseSpec

## Enumerations

enum | { HOUSE_NO_CLASS = 0, NEW_HOUSE_OFFSET = 110, HOUSE_MAX = 512, INVALID_HOUSE_ID = 0xFFFF, HOUSE_CLASS_MAX = HOUSE_MAX - NEW_HOUSE_OFFSET + 1 }

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 }
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

| assert_compile (HZB_END==5)
static HouseID | GetTranslatedHouseID (HouseID hid)
| Do HouseID translation for NewGRFs.

## Variables

static const byte | TOWN_HOUSE_COMPLETED = 3
| Simple value that indicates the house has reached the final stage of construction.

## Detailed Description

definition of HouseSpec and accessors

Definition in file house.h.

## Enumeration Type Documentation

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 83 of file house.h.

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

Definition at line 67 of file house.h.

## Function Documentation

static HouseID GetTranslatedHouseID | ( | HouseID | hid | ) | `[inline, static]`

Do HouseID translation for NewGRFs.

Parameters:

  | hid | the HouseID to get the override for.

Returns:
  the HouseID to actually work with.

Definition at line 145 of file house.h.

References HouseSpec::override.

Referenced by GetHouseType().

## Variable Documentation

const byte TOWN_HOUSE_COMPLETED = 3`[static]`

Simple value that indicates the house has reached the final stage of construction.

Definition at line 23 of file house.h.

Referenced by BuildTownHouse(), GetHouseBuildingStage(), IncHouseConstructionTick(), and MakeHouseTile().