OpenTTD Source 20241224-master-gee860a5c8e
league_cmd.cpp File Reference

Handling of league tables. More...

#include "stdafx.h"
#include "league_cmd.h"
#include "league_base.h"
#include "command_type.h"
#include "command_func.h"
#include "industry.h"
#include "story_base.h"
#include "town.h"
#include "window_func.h"
#include "core/pool_func.hpp"
#include "safeguards.h"

Go to the source code of this file.

Functions

bool IsValidLink (Link link)
 Checks whether a link is valid, i.e.
 
std::tuple< CommandCost, LeagueTableIDCmdCreateLeagueTable (DoCommandFlag flags, const std::string &title, const std::string &header, const std::string &footer)
 Create a new league table.
 
std::tuple< CommandCost, LeagueTableElementIDCmdCreateLeagueTableElement (DoCommandFlag flags, LeagueTableID table, int64_t rating, CompanyID company, const std::string &text, const std::string &score, LinkType link_type, LinkTargetID link_target)
 Create a new element in a league table.
 
CommandCost CmdUpdateLeagueTableElementData (DoCommandFlag flags, LeagueTableElementID element, CompanyID company, const std::string &text, LinkType link_type, LinkTargetID link_target)
 Update the attributes of a league table element.
 
CommandCost CmdUpdateLeagueTableElementScore (DoCommandFlag flags, LeagueTableElementID element, int64_t rating, const std::string &score)
 Update the score of a league table element.
 
CommandCost CmdRemoveLeagueTableElement (DoCommandFlag flags, LeagueTableElementID element)
 Remove a league table element.
 

Variables

LeagueTableElementPool _league_table_element_pool ("LeagueTableElement")
 
LeagueTablePool _league_table_pool ("LeagueTable")
 

Detailed Description

Handling of league tables.

Definition in file league_cmd.cpp.

Function Documentation

◆ CmdCreateLeagueTable()

std::tuple< CommandCost, LeagueTableID > CmdCreateLeagueTable ( DoCommandFlag  flags,
const std::string &  title,
const std::string &  header,
const std::string &  footer 
)

Create a new league table.

Parameters
flagstype of operation
titleTitle of the league table
headerText to show above the table
footerText to show below the table
Returns
the cost of this operation or an error

Definition at line 56 of file league_cmd.cpp.

References _current_company, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_league_table_pool >::CanAllocateItem(), CMD_ERROR, DC_EXEC, LeagueTable::footer, LeagueTable::header, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_LEAGUE_TABLE, OWNER_DEITY, and LeagueTable::title.

◆ CmdCreateLeagueTableElement()

std::tuple< CommandCost, LeagueTableElementID > CmdCreateLeagueTableElement ( DoCommandFlag  flags,
LeagueTableID  table,
int64_t  rating,
CompanyID  company,
const std::string &  text,
const std::string &  score,
LinkType  link_type,
LinkTargetID  link_target 
)

Create a new element in a league table.

Parameters
flagstype of operation
tableId of the league table this element belongs to
ratingValue that elements are ordered by
companyCompany to show the color blob for or INVALID_COMPANY
textText of the element
scoreString representation of the score associated with the element
link_typeType of the referenced object
link_targetId of the referenced object
Returns
the cost of this operation or an error

Definition at line 86 of file league_cmd.cpp.

References _current_company, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_league_table_element_pool >::CanAllocateItem(), CMD_ERROR, LeagueTableElement::company, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem< Tpool >::index, INVALID_COMPANY, INVALID_LEAGUE_TABLE_ELEMENT, InvalidateWindowData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), IsValidLink(), LeagueTableElement::link, OWNER_DEITY, LeagueTableElement::rating, LeagueTableElement::score, LeagueTableElement::table, LeagueTableElement::text, and WC_COMPANY_LEAGUE.

◆ CmdRemoveLeagueTableElement()

CommandCost CmdRemoveLeagueTableElement ( DoCommandFlag  flags,
LeagueTableElementID  element 
)

Remove a league table element.

Parameters
flagstype of operation
elementId of the element to update
Returns
the cost of this operation or an error

Definition at line 164 of file league_cmd.cpp.

References _current_company, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_league_table_element_pool >::GetIfValid(), InvalidateWindowData(), OWNER_DEITY, and WC_COMPANY_LEAGUE.

◆ CmdUpdateLeagueTableElementData()

CommandCost CmdUpdateLeagueTableElementData ( DoCommandFlag  flags,
LeagueTableElementID  element,
CompanyID  company,
const std::string &  text,
LinkType  link_type,
LinkTargetID  link_target 
)

Update the attributes of a league table element.

Parameters
flagstype of operation
elementId of the element to update
companyCompany to show the color blob for or INVALID_COMPANY
textText of the element
link_typeType of the referenced object
link_targetId of the referenced object
Returns
the cost of this operation or an error

Definition at line 118 of file league_cmd.cpp.

References _current_company, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_league_table_element_pool >::GetIfValid(), INVALID_COMPANY, InvalidateWindowData(), Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_company_pool >::IsValidID(), IsValidLink(), OWNER_DEITY, and WC_COMPANY_LEAGUE.

◆ CmdUpdateLeagueTableElementScore()

CommandCost CmdUpdateLeagueTableElementScore ( DoCommandFlag  flags,
LeagueTableElementID  element,
int64_t  rating,
const std::string &  score 
)

Update the score of a league table element.

Parameters
flagstype of operation
elementId of the element to update
ratingValue that elements are ordered by
scoreString representation of the score associated with the element
Returns
the cost of this operation or an error

Definition at line 144 of file league_cmd.cpp.

References _current_company, CMD_ERROR, DC_EXEC, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_league_table_element_pool >::GetIfValid(), InvalidateWindowData(), OWNER_DEITY, and WC_COMPANY_LEAGUE.

◆ IsValidLink()