OpenTTD Source: ObjectSpec Struct Reference

OpenTTD Source 14.0-beta1

Public Member Functions | Static Public Member Functions | Data Fields
ObjectSpec Struct Reference

Allow incrementing of ObjectClassID variables. More...

`#include <newgrf_object.h>`

## Public Member Functions
bool | IsEnabled () const
| Test if this object is enabled. More...
Money | GetBuildCost () const
| Get the cost for building a structure of this type. More...
Money | GetClearCost () const
| Get the cost for clearing a structure of this type. More...
bool | IsEverAvailable () const
| Check whether the object might be available at some point in this game with the current game mode. More...
bool | WasEverAvailable () const
| Check whether the object was available at some point in the past or present in this game with the current game mode. More...
bool | IsAvailable () const
| Check whether the object is available at this time. More...
uint | Index () const
| Gets the index of this spec. More...

## Static Public Member Functions
static const std::vector< ObjectSpec > & | Specs ()
static size_t | Count ()
static const ObjectSpec * | Get (ObjectType index)
| Get the specification associated with a specific ObjectType. More...
static const ObjectSpec * | GetByTile (TileIndex tile)
| Get the specification associated with a tile. More...
static void | BindToClasses ()
| Tie all ObjectSpecs to their class.

## Data Fields
GRFFilePropsBase< 2 > | grf_prop
| Properties related the the grf file.
AnimationInfo | animation
| Information about the animation.
ObjectClassID | cls_id
| The class to which this spec belongs.
StringID | name
| The name for this object.
uint8_t | climate
| In which climates is this object available?
uint8_t | size
| The size of this objects; low nibble for X, high nibble for Y.
uint8_t | build_cost_multiplier
| Build cost multiplier per tile.
uint8_t | clear_cost_multiplier
| Clear cost multiplier per tile.
TimerGameCalendar::Date | introduction_date
| From when can this object be built.
TimerGameCalendar::Date | end_of_life_date
| When can't this object be built anymore.
ObjectFlags | flags
| Flags/settings related to the object.
uint16_t | callback_mask
| Bitmask of requested/allowed callbacks.
uint8_t | height
| The height of this structure, in heightlevels; max MAX_TILE_HEIGHT.
uint8_t | views
| The number of views.
uint8_t | generate_amount
| Number of objects which are attempted to be generated per 256^2 map during world generation.

## Detailed Description

Allow incrementing of ObjectClassID variables.

An object that isn't use for transport, industries or houses.

Note
  If you change this struct, adopt the initialization of default objects in table/object_land.h

Definition at line 60 of file newgrf_object.h.

## Member Function Documentation

## ◆ Get()

const ObjectSpec * ObjectSpec::Get | ( | ObjectType | index | ) |
| static

Get the specification associated with a specific ObjectType.

Parameters

  index | The object type to fetch.

Returns
  The specification.

Definition at line 50 of file newgrf_object.cpp.

References _object_specs, and NUM_OBJECTS.

Referenced by BuildObject(), CmdBuildObject(), CmdBuildObjectArea(), GetByTile(), and GetObjectIDAtOffset().

## ◆ GetBuildCost()

Money ObjectSpec::GetBuildCost | ( |  | ) | const
| inline

Get the cost for building a structure of this type.

Returns
  The cost for building.

Definition at line 89 of file newgrf_object.h.

References GetPrice().

## ◆ GetByTile()

const ObjectSpec * ObjectSpec::GetByTile | ( | TileIndex | tile | ) |
| static

Get the specification associated with a tile.

Parameters

  tile | The tile to fetch the data for.

Returns
  The specification.

Definition at line 65 of file newgrf_object.cpp.

References Get(), and GetObjectType().

Referenced by AnimateNewObjectTile(), NIHObject::GetGRFID(), NIHObject::GetSpec(), NIHObject::IsInspectable(), NIHObject::Resolve(), and UpdateObjectColours().

## ◆ GetClearCost()

Money ObjectSpec::GetClearCost | ( |  | ) | const
| inline

Get the cost for clearing a structure of this type.

Returns
  The cost for clearing.

Definition at line 95 of file newgrf_object.h.

References GetPrice().

## ◆ Index()

uint ObjectSpec::Index | ( |  | ) | const

Gets the index of this spec.

Returns
  The index.

Definition at line 103 of file newgrf_object.cpp.

References _object_specs.

## ◆ IsAvailable()

bool ObjectSpec::IsAvailable | ( |  | ) | const

Check whether the object is available at this time.

Returns
  true if it is available.

Definition at line 93 of file newgrf_object.cpp.

References TimerGameCalendar::date, end_of_life_date, introduction_date, and WasEverAvailable().

Referenced by BuildObjectWindow::SelectFirstAvailableObject().

## ◆ IsEnabled()

bool ObjectSpec::IsEnabled | ( |  | ) | const
| inline

Test if this object is enabled.

Returns
  True iff this object is enabled.

Definition at line 83 of file newgrf_object.h.

Referenced by IsEverAvailable().

## ◆ IsEverAvailable()

bool ObjectSpec::IsEverAvailable | ( |  | ) | const

Check whether the object might be available at some point in this game with the current game mode.

Returns
  true if it might be available.

Definition at line 74 of file newgrf_object.cpp.

References _settings_game, climate, flags, GameSettings::game_creation, HasBit(), IsEnabled(), and GameCreationSettings::landscape.

Referenced by WasEverAvailable().

## ◆ WasEverAvailable()

bool ObjectSpec::WasEverAvailable | ( |  | ) | const

Check whether the object was available at some point in the past or present in this game with the current game mode.

Returns
  true if it was ever or is available.

Definition at line 84 of file newgrf_object.cpp.

References TimerGameCalendar::date, introduction_date, and IsEverAvailable().

Referenced by IsAvailable().

The documentation for this struct was generated from the following files:

- src/newgrf_object.h
- src/newgrf_object.cpp