OpenTTD Source 20250220-master-gf89924a727
newgrf_badge.h File Reference

Functions related to NewGRF badges. More...

#include "dropdown_type.h"
#include "newgrf.h"
#include "newgrf_badge_type.h"
#include "newgrf_commons.h"
#include "strings_type.h"
#include "timer/timer_game_calendar.h"

Go to the source code of this file.

Data Structures

class  Badge
 
class  GUIBadgeClasses
 
struct  GUIBadgeClasses::Element
 
class  BadgeTextFilter
 

Functions

void ResetBadges ()
 Reset badges to the default state.
 
BadgeGetOrCreateBadge (std::string_view label)
 Register a badge label and return its global index.
 
void MarkBadgeSeen (BadgeID index, GrfSpecFeature feature)
 Mark a badge a seen (used) by a feature.
 
void AppendCopyableBadgeList (std::vector< BadgeID > &dst, std::span< const BadgeID > src, GrfSpecFeature feature)
 Append copyable badges from a list onto another.
 
void ApplyBadgeFeaturesToClassBadges ()
 Apply features from all badges to their badge classes.
 
BadgeGetBadge (BadgeID index)
 Get a badge if it exists.
 
BadgeGetBadgeByLabel (std::string_view label)
 Get a badge by label if it exists.
 
BadgeGetClassBadge (BadgeClassID class_index)
 Get the badge class of a badge label.
 
int DrawBadgeNameList (Rect r, std::span< const BadgeID > badges, GrfSpecFeature feature)
 Draw names for a list of badge labels.
 
void DrawBadgeColumn (Rect r, int column_group, const GUIBadgeClasses &badge_classes, std::span< const BadgeID > badges, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, PaletteID remap)
 Draw a badge column group.
 
uint32_t GetBadgeVariableResult (const struct GRFFile &grffile, std::span< const BadgeID > badges, uint32_t parameter)
 
std::unique_ptr< DropDownListItemMakeDropDownListBadgeItem (const std::shared_ptr< GUIBadgeClasses > &gui_classes, std::span< const BadgeID > badges, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, StringID str, int value, bool masked=false, bool shaded=false)
 
std::unique_ptr< DropDownListItemMakeDropDownListBadgeIconItem (const std::shared_ptr< GUIBadgeClasses > &gui_classes, std::span< const BadgeID > badges, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, const Dimension &dim, SpriteID sprite, PaletteID palette, StringID str, int value, bool masked=false, bool shaded=false)
 

Detailed Description

Functions related to NewGRF badges.

Definition in file newgrf_badge.h.

Function Documentation

◆ AppendCopyableBadgeList()

void AppendCopyableBadgeList ( std::vector< BadgeID > &  dst,
std::span< const BadgeID src,
GrfSpecFeature  feature 
)

Append copyable badges from a list onto another.

Badges must exist and be marked with the Copy flag.

Parameters
dstDestination badge list.
srcSource badge list.
featureFeature of list.

Definition at line 237 of file newgrf_badge.cpp.

References Copy, Badge::features, Badge::flags, GetBadge(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test().

Referenced by FinaliseEngineArray().

◆ ApplyBadgeFeaturesToClassBadges()

void ApplyBadgeFeaturesToClassBadges ( )

Apply features from all badges to their badge classes.

Definition at line 254 of file newgrf_badge.cpp.

References _badges, Badge::features, GetClassBadge(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set(), and Badges::specs.

Referenced by FinaliseBadges().

◆ DrawBadgeColumn()

void DrawBadgeColumn ( Rect  r,
int  column_group,
const GUIBadgeClasses badge_classes,
std::span< const BadgeID badges,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date >  introduction_date,
PaletteID  remap 
)

Draw a badge column group.

Parameters
rrect to draw within.
column_groupcolumn to draw.
badge_classesbadge classes.
badgesbadges to draw.
featurefeature being used.
introduction_dateintroduction date of item.
remappalette remap to for company-coloured badges.

Definition at line 482 of file newgrf_badge.cpp.

References _current_text_dir, Badge::class_index, GetBadge(), GetBadgeSprite(), Rect::Indent(), PalSpriteID::pal, SA_CENTER, WidgetDimensions::scaled, ScaleGUITrad(), PalSpriteID::sprite, TD_RTL, and Rect::WithWidth().

Referenced by BuildIndustryWindow::DrawWidget(), and PickerWindow::DrawWidget().

◆ DrawBadgeNameList()

int DrawBadgeNameList ( Rect  r,
std::span< const BadgeID badges,
GrfSpecFeature  feature 
)

◆ GetBadge()

Badge * GetBadge ( BadgeID  index)

Get a badge if it exists.

Parameters
indexIndex of badge.
Returns
Badge with specified index, or nullptr if it does not exist.

Definition at line 99 of file newgrf_badge.cpp.

References _badges, and Badges::specs.

Referenced by AppendCopyableBadgeList(), DrawBadgeColumn(), DrawBadgeNameList(), NewGRFInspectWindow::DrawMainPanelWidget(), GetClassBadge(), MarkBadgeSeen(), and UsedBadgeClasses::UsedBadgeClasses().

◆ GetBadgeByLabel()

Badge * GetBadgeByLabel ( std::string_view  label)

Get a badge by label if it exists.

Parameters
labelLabel of badge.
Returns
Badge with specified label, or nullptr if it does not exist.

Definition at line 110 of file newgrf_badge.cpp.

References _badges, Badge::label, and Badges::specs.

Referenced by FinaliseBadges().

◆ GetClassBadge()

Badge * GetClassBadge ( BadgeClassID  class_index)

Get the badge class of a badge label.

Parameters
labelLabel to get class of.
Returns
Badge class index of label.

Definition at line 123 of file newgrf_badge.cpp.

References _badges, Badges::classes, and GetBadge().

Referenced by ApplyBadgeFeaturesToClassBadges(), DrawBadgeNameList(), GUIBadgeClasses::GUIBadgeClasses(), and UsedBadgeClasses::UsedBadgeClasses().

◆ GetOrCreateBadge()

Badge & GetOrCreateBadge ( std::string_view  label)

Register a badge label and return its global index.

Parameters
labelBadge label to register.
Returns
Global index of the badge.

Definition at line 68 of file newgrf_badge.cpp.

References _badges, BADGE_CLASS_SEPARATOR, Badge::class_index, GetOrCreateBadge(), GetOrCreateBadgeClass(), Badge::label, and Badges::specs.

Referenced by GetOrCreateBadge().

◆ MakeDropDownListBadgeIconItem()

std::unique_ptr< DropDownListItem > MakeDropDownListBadgeIconItem ( const std::shared_ptr< GUIBadgeClasses > &  gui_classes,
std::span< const BadgeID badges,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date >  introduction_date,
const Dimension dim,
SpriteID  sprite,
PaletteID  palette,
StringID  str,
int  value,
bool  masked = false,
bool  shaded = false 
)

Definition at line 551 of file newgrf_badge.cpp.

◆ MakeDropDownListBadgeItem()

std::unique_ptr< DropDownListItem > MakeDropDownListBadgeItem ( const std::shared_ptr< GUIBadgeClasses > &  gui_classes,
std::span< const BadgeID badges,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date >  introduction_date,
StringID  str,
int  value,
bool  masked = false,
bool  shaded = false 
)

Definition at line 546 of file newgrf_badge.cpp.

◆ MarkBadgeSeen()

void MarkBadgeSeen ( BadgeID  index,
GrfSpecFeature  feature 
)

Mark a badge a seen (used) by a feature.

Definition at line 223 of file newgrf_badge.cpp.

References Badge::features, GetBadge(), and BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Set().

Referenced by ReadBadgeList().

◆ ResetBadges()

void ResetBadges ( )

Reset badges to the default state.

Definition at line 58 of file newgrf_badge.cpp.

References _badges.

Referenced by ResetNewGRFData().