OpenTTD Source: Subsidy Struct Reference

OpenTTD Source 13.2.1

Public Member Functions | Data Fields
Subsidy Struct Reference

Struct about subsidies, offered and awarded. More...

`#include <subsidy_base.h>`

Inheritance diagram for Subsidy:

## Public Member Functions
| Subsidy ()
| We need an (empty) constructor so struct isn't zeroed (as C++ standard states)
| ~Subsidy ()
| (Empty) destructor has to be defined else operator delete might be called with nullptr parameter
bool | IsAwarded () const
| Tests whether this subsidy has been awarded to someone. More...
void | AwardTo (CompanyID company)
| Marks subsidy as awarded, creates news and AI event. More...
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_subsidy_pool >
void * | operator new (size_t size)
| Allocates space for new Titem. More...
void * | operator new (size_t size, size_t index)
| Allocates space for new Titem with given index. More...
void * | operator new (size_t size, void *ptr)
| Allocates space for new Titem at given memory address. More...
void | operator delete (void *p)
| Marks Titem as free. More...

## Data Fields
CargoID | cargo_type
| Cargo type involved in this subsidy, CT_INVALID for invalid subsidy.
uint16 | remaining
| Remaining months when this subsidy is valid.
CompanyID | awarded
| Subsidy is awarded to this company; INVALID_COMPANY if it's not awarded to anyone.
SourceType | src_type
| Source of subsidised path (ST_INDUSTRY or ST_TOWN)
SourceType | dst_type
| Destination of subsidised path (ST_INDUSTRY or ST_TOWN)
SourceID | src
| Index of source. Either TownID or IndustryID.
SourceID | dst
| Index of destination. Either TownID or IndustryID.
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_subsidy_pool >
Tindex | index
| Index of this pool item.

## Additional Inherited Members
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_subsidy_pool >
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > | Pool
| Type of the pool this item is going to be part of.
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_subsidy_pool >
static bool | CanAllocateItem (size_t n=1)
| Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function() More...
static bool | CleaningPool ()
| Returns current state of pool cleaning - yes or no. More...
static bool | IsValidID (size_t index)
| Tests whether given index can be used to get valid (non-nullptr) Titem. More...
static Titem * | Get (size_t index)
| Returns Titem with given index. More...
static Titem * | GetIfValid (size_t index)
| Returns Titem with given index. More...
static size_t | GetPoolSize ()
| Returns first unused index. More...
static size_t | GetNumItems ()
| Returns number of valid items in the pool. More...
static void | PostDestructor (size_t index)
| Dummy function called after destructor of each member. More...
static Pool::IterateWrapper< Titem > | Iterate (size_t from=0)
| Returns an iterable ensemble of all valid Titem. More...

## Detailed Description

Struct about subsidies, offered and awarded.

Definition at line 22 of file subsidy_base.h.

## Member Function Documentation

## ◆ AwardTo()

void Subsidy::AwardTo | ( | CompanyID | company | ) |

Marks subsidy as awarded, creates news and AI event.

Parameters

  company | awarded company

Definition at line 40 of file subsidy.cpp.

References _settings_game, GameSettings::difficulty, MONTHS_IN_YEAR, SetDParam(), and DifficultySettings::subsidy_duration.

## ◆ IsAwarded()

bool Subsidy::IsAwarded | ( |  | ) | const
| inline

Tests whether this subsidy has been awarded to someone.

Returns
  is this subsidy awarded?

Definition at line 45 of file subsidy_base.h.

References INVALID_COMPANY.

Referenced by SubsidyListWindow::CountLines(), and SubsidyListWindow::DrawWidget().

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

- src/subsidy_base.h
- src/subsidy.cpp