OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

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 NULL parameter
bool | IsAwarded () const
| Tests whether this subsidy has been awarded to someone.
void | AwardTo (CompanyID company)
| Marks subsidy as awarded, creates news and AI event.
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.
void * | operator new (size_t size, size_t index)
| Allocates space for new Titem with given index.
void * | operator new (size_t size, void *ptr)
| Allocates space for new Titem at given memory address.
void | operator delete (void *p)
| Marks Titem as free.

## Data Fields
CargoID | cargo_type
| Cargo type involved in this subsidy, CT_INVALID for invalid subsidy.
byte | remaining
| Remaining months when this subsidy is valid.
CompanyByte | awarded
| Subsidy is awarded to this company; INVALID_COMPANY if it's not awarded to anyone.
SourceTypeByte | src_type
| Source of subsidised path (ST_INDUSTRY or ST_TOWN)
SourceTypeByte | 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
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()
static bool | CleaningPool ()
| Returns current state of pool cleaning - yes or no.
static bool | IsValidID (size_t index)
| Tests whether given index can be used to get valid (non-NULL) Titem.
static Titem * | Get (size_t index)
| Returns Titem with given index.
static Titem * | GetIfValid (size_t index)
| Returns Titem with given index.
static size_t | GetPoolSize ()
| Returns first unused index.
static size_t | GetNumItems ()
| Returns number of valid items in the pool.
static void | PostDestructor (size_t index)
| Dummy function called after destructor of each member.

## Detailed Description

Struct about subsidies, offered and awarded.

Definition at line 24 of file subsidy_base.h.

## Member Function Documentation

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, AddNewsItem(), AI::BroadcastNewEvent(), GameSettings::difficulty, InjectDParam(), InvalidateWindowData(), lastof, MAX_CHAR_LENGTH, MAX_LENGTH_COMPANY_NAME_CHARS, Game::NewEvent(), NF_NORMAL, NT_SUBSIDIES, SetDParam(), SetDParamStr(), SetupSubsidyDecodeParam(), stredup(), SUBSIDY_CONTRACT_MONTHS, DifficultySettings::subsidy_multiplier, and WC_SUBSIDIES_LIST.

Referenced by CheckSubsidised().

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

Tests whether this subsidy has been awarded to someone.

Returns
  is this subsidy awarded?

Definition at line 47 of file subsidy_base.h.

References awarded, and INVALID_COMPANY.

Referenced by CheckSubsidised(), SubsidyListWindow::CountLines(), SubsidyListWindow::DrawWidget(), SubsidyListWindow::OnClick(), and SubsidyMonthlyLoop().

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

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