OpenTTD Source 20241224-master-gf74b0cf984
Subsidy Struct Reference

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

#include <subsidy_base.h>

Inheritance diagram for Subsidy:
Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_subsidy_pool >

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.
 
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, 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, INVALID_CARGO for invalid subsidy.
 
uint16_t 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 (SourceType::Industry or SourceType::Town)
 
SourceType dst_type
 Destination of subsidised path (SourceType::Industry or SourceType::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()
 
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-nullptr) 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.
 
static Pool::IterateWrapper< Titem > Iterate (size_t from=0)
 Returns an iterable ensemble of all valid Titem.
 

Detailed Description

Struct about subsidies, offered and awarded.

Definition at line 22 of file subsidy_base.h.

Constructor & Destructor Documentation

◆ Subsidy()

Subsidy::Subsidy ( )
inline

We need an (empty) constructor so struct isn't zeroed (as C++ standard states)

Definition at line 34 of file subsidy_base.h.

◆ ~Subsidy()

Subsidy::~Subsidy ( )
inline

(Empty) destructor has to be defined else operator delete might be called with nullptr parameter

Definition at line 39 of file subsidy_base.h.

Member Function Documentation

◆ AwardTo()

◆ 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().

Field Documentation

◆ awarded

CompanyID Subsidy::awarded

Subsidy is awarded to this company; INVALID_COMPANY if it's not awarded to anyone.

Definition at line 25 of file subsidy_base.h.

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

◆ cargo_type

CargoID Subsidy::cargo_type

Cargo type involved in this subsidy, INVALID_CARGO for invalid subsidy.

Definition at line 23 of file subsidy_base.h.

Referenced by CreateSubsidy(), SubsidyListWindow::DrawWidget(), and SetupSubsidyDecodeParam().

◆ dst

SourceID Subsidy::dst

Index of destination. Either TownID or IndustryID.

Definition at line 29 of file subsidy_base.h.

Referenced by CreateSubsidy(), and SetupSubsidyDecodeParam().

◆ dst_type

SourceType Subsidy::dst_type

Destination of subsidised path (SourceType::Industry or SourceType::Town)

Definition at line 27 of file subsidy_base.h.

Referenced by CreateSubsidy(), and SetupSubsidyDecodeParam().

◆ remaining

uint16_t Subsidy::remaining

Remaining months when this subsidy is valid.

Definition at line 24 of file subsidy_base.h.

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

◆ src

SourceID Subsidy::src

Index of source. Either TownID or IndustryID.

Definition at line 28 of file subsidy_base.h.

Referenced by CreateSubsidy(), and SetupSubsidyDecodeParam().

◆ src_type

SourceType Subsidy::src_type

Source of subsidised path (SourceType::Industry or SourceType::Town)

Definition at line 26 of file subsidy_base.h.

Referenced by CreateSubsidy(), and SetupSubsidyDecodeParam().


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