OpenTTD Source 20241224-master-gf74b0cf984
subsidy_func.h File Reference

Functions related to subsidies. More...

#include "core/geometry_type.hpp"
#include "station_type.h"
#include "company_type.h"
#include "cargo_type.h"
#include "news_type.h"
#include "subsidy_base.h"

Go to the source code of this file.

Functions

std::pair< NewsReferenceType, NewsReferenceTypeSetupSubsidyDecodeParam (const struct Subsidy *s, SubsidyDecodeParamType mode, uint parameter_offset=0)
 
void DeleteSubsidyWith (SourceType type, SourceID index)
 Delete the subsidies associated with a given cargo source type and id.
 
bool CheckSubsidised (CargoID cargo_type, CompanyID company, SourceType src_type, SourceID src, const Station *st)
 Tests whether given delivery is subsidised and possibly awards the subsidy to delivering company.
 
void RebuildSubsidisedSourceAndDestinationCache ()
 Perform a full rebuild of the subsidies cache.
 

Detailed Description

Functions related to subsidies.

Definition in file subsidy_func.h.

Function Documentation

◆ CheckSubsidised()

bool CheckSubsidised ( CargoID  cargo_type,
CompanyID  company,
SourceType  src_type,
SourceID  src,
const Station st 
)

Tests whether given delivery is subsidised and possibly awards the subsidy to delivering company.

Parameters
cargo_typetype of cargo
companycompany delivering the cargo
src_typetype of src
srcindex of source
ststation where the cargo is delivered to
Returns
is the delivery subsidised?

Definition at line 564 of file subsidy.cpp.

References Town::cache, Station::catchment_tiles, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_town_pool >::Get(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_industry_pool >::Get(), include(), Station::industries_near, Industry, INVALID_SOURCE, INVALID_TILE, IsTileType(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_subsidy_pool >::Iterate(), MP_HOUSE, TownCache::part_of_subsidy, POS_DST, POS_SRC, BaseStation::rect, and Town.

Referenced by DeliverGoods().

◆ DeleteSubsidyWith()

void DeleteSubsidyWith ( SourceType  type,
SourceID  index 
)

Delete the subsidies associated with a given cargo source type and id.

Parameters
typeCargo source type of the id.
indexId to remove.

Definition at line 151 of file subsidy.cpp.

References InvalidateWindowData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_subsidy_pool >::Iterate(), RebuildSubsidisedSourceAndDestinationCache(), and WC_SUBSIDIES_LIST.

Referenced by Town::~Town().

◆ RebuildSubsidisedSourceAndDestinationCache()