10#define TILE_SEQ_LINE(sz, img) { 0, 0, 0, 16, 16, sz, {img, PAL_NONE} },
11#define TILE_SEQ_END() { (int8_t)0x80, 0, 0, 0, 0, 0, {0, 0} }
18 { 7, 7, 0, 2, 2, 70, {SPR_TRANSMITTER, PAL_NONE}},
23 { 4, 4, 0, 7, 7, 61, {SPR_LIGHTHOUSE, PAL_NONE}},
38 { { SPR_FLAT_2_THIRD_GRASS_TILE, PAL_NONE }, _object_transmitter_seq },
39 { { SPR_FLAT_2_THIRD_GRASS_TILE, PAL_NONE }, _object_lighthouse_seq },
40 { { SPR_CONCRETE_GROUND, PAL_NONE }, _object_statue_seq },
41 { { SPR_FLAT_BARE_LAND, PAL_NONE }, _object_owned_land_seq },
93#define TILE_SPRITE_LINE(img, dtss) { {img | (1 << PALETTE_MODIFIER_COLOUR), PAL_NONE}, dtss },
96 TILE_SPRITE_LINE(SPR_TINYHQ_NORTH, _object_nothing)
97 TILE_SPRITE_LINE(SPR_TINYHQ_WEST, _object_nothing)
98 TILE_SPRITE_LINE(SPR_TINYHQ_EAST, _object_nothing)
99 TILE_SPRITE_LINE(SPR_TINYHQ_SOUTH, _object_nothing)
101 TILE_SPRITE_LINE(SPR_SMALLHQ_NORTH, _object_nothing)
102 TILE_SPRITE_LINE(SPR_SMALLHQ_WEST, _object_nothing)
103 TILE_SPRITE_LINE(SPR_SMALLHQ_EAST, _object_nothing)
104 TILE_SPRITE_LINE(SPR_SMALLHQ_SOUTH, _object_nothing)
106 TILE_SPRITE_LINE(SPR_MEDIUMHQ_NORTH, _object_hq_medium_north)
107 TILE_SPRITE_LINE(SPR_MEDIUMHQ_WEST, _object_hq_medium_west)
108 TILE_SPRITE_LINE(SPR_MEDIUMHQ_EAST, _object_hq_medium_east)
109 TILE_SPRITE_LINE(SPR_MEDIUMHQ_SOUTH, _object_nothing)
111 TILE_SPRITE_LINE(SPR_LARGEHQ_NORTH_GROUND, _object_hq_large_north)
112 TILE_SPRITE_LINE(SPR_LARGEHQ_WEST_GROUND, _object_hq_large_west)
113 TILE_SPRITE_LINE(SPR_LARGEHQ_EAST_GROUND, _object_hq_large_east)
114 TILE_SPRITE_LINE(SPR_LARGEHQ_SOUTH, _object_nothing)
116 TILE_SPRITE_LINE(SPR_HUGEHQ_NORTH_GROUND, _object_hq_huge_north)
117 TILE_SPRITE_LINE(SPR_HUGEHQ_WEST_GROUND, _object_hq_huge_west)
118 TILE_SPRITE_LINE(SPR_HUGEHQ_EAST_GROUND, _object_hq_huge_east)
119 TILE_SPRITE_LINE(SPR_HUGEHQ_SOUTH, _object_nothing)
122#undef TILE_SPRITE_LINE
124#define M(name, size, build_cost_multiplier, clear_cost_multiplier, height, climate, gen_amount, flags) {{INVALID_OBJECT_CLASS, 0}, GRFFilePropsBase<2>(), {0, 0, 0, 0}, name, climate, size, build_cost_multiplier, clear_cost_multiplier, TimerGameCalendar::Date{}, CalendarTime::MAX_DATE + 1, flags, ObjectCallbackMasks{}, height, 1, gen_amount}
131#define T LandscapeType::Temperate
132#define A LandscapeType::Arctic
133#define S LandscapeType::Tropic
134#define Y LandscapeType::Toyland
137 M(STR_LAI_OBJECT_DESCRIPTION_TRANSMITTER, 0x11, 0, 0, 10,
LandscapeTypes({T,A,S }), 15,
ObjectFlags({
ObjectFlag::CannotRemove,
ObjectFlag::OnlyInScenedit})),
138 M(STR_LAI_OBJECT_DESCRIPTION_LIGHTHOUSE, 0x11, 0, 0, 8,
LandscapeTypes({T,A }), 8,
ObjectFlags({
ObjectFlag::CannotRemove,
ObjectFlag::OnlyInScenedit,
ObjectFlag::ScaleByWater})),
139 M(STR_TOWN_BUILDING_NAME_STATUE_1, 0x11, 0, 0, 5,
LandscapeTypes({T,S,A,Y}), 0,
ObjectFlags({
ObjectFlag::CannotRemove,
ObjectFlag::OnlyInGame,
ObjectFlag::OnlyInScenedit})),
140 M(STR_LAI_OBJECT_DESCRIPTION_COMPANY_OWNED_LAND, 0x11, 10, 10, 0,
LandscapeTypes({T,S,A,Y}), 0,
ObjectFlags({
ObjectFlag::Autoremove,
ObjectFlag::OnlyInGame,
ObjectFlag::ClearIncome,
ObjectFlag::HasNoFoundation})),
141 M(STR_LAI_OBJECT_DESCRIPTION_COMPANY_HEADQUARTERS, 0x22, 0, 0, 7,
LandscapeTypes({T,S,A,Y}), 0,
ObjectFlags({
ObjectFlag::CannotRemove,
ObjectFlag::OnlyInGame})),
@ Autoremove
Object get automatically removed (like "owned land").
@ CannotRemove
Object can not be removed.
@ OnlyInScenedit
Object can only be constructed in the scenario editor.
@ OnlyInGame
Object can only be built in game.
@ HasNoFoundation
Do not display foundations when on a slope.
@ ScaleByWater
Object count is roughly scaled by water amount at edges.
@ ClearIncome
When object is cleared a positive income is generated instead of a cost.
const ObjectSpec _original_objects[]
Specification of the original object structures.
#define M(x)
Helper for creating a bitset of slopes.
static constexpr uint8_t PALETTE_MODIFIER_COLOUR
this bit is set when a recolouring process is in action
A tile child sprite and palette to draw for stations etc, with 3D bounding box.
Ground palette sprite of a tile, together with its sprite layout.
Allow incrementing of ObjectClassID variables.