OpenTTD Source 20250428-master-ga5578166bb
newgrf_badge.h File Reference

Functions related to NewGRF badges. More...

#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  UsedBadgeClasses
 Utility class to create a list of badge classes used by a feature. More...
 
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.
 
std::span< const BadgeGetBadges ()
 Get a read-only view of badges.
 
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.
 
uint32_t GetBadgeVariableResult (const struct GRFFile &grffile, std::span< const BadgeID > badges, uint32_t parameter)
 
PalSpriteID GetBadgeSprite (const Badge &badge, GrfSpecFeature feature, std::optional< TimerGameCalendar::Date > introduction_date, PaletteID remap)
 Get sprite for the given badge.
 

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 241 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 258 of file newgrf_badge.cpp.

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

Referenced by FinaliseBadges().

◆ 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 104 of file newgrf_badge.cpp.

References _badges, and Badges::specs.

Referenced by AppendCopyableBadgeList(), 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 115 of file newgrf_badge.cpp.

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

Referenced by FinaliseBadges().

◆ GetBadges()

std::span< const Badge > GetBadges ( )

Get a read-only view of badges.

Returns
Span of badges.

Definition at line 40 of file newgrf_badge.cpp.

References _badges, and Badges::specs.

Referenced by ApplyBadgeFeaturesToClassBadges(), and BadgeTextFilter::BadgeTextFilter().

◆ GetBadgeSprite()

PalSpriteID GetBadgeSprite ( const Badge badge,
GrfSpecFeature  feature,
std::optional< TimerGameCalendar::Date introduction_date,
PaletteID  remap 
)

Get sprite for the given badge.

Parameters
badgeBadge being queried.
featureGRF feature being used.
introduction_dateIntroduction date of the item, if it has one.
remapPalette remap to use if the flag is company-coloured.
Returns
Custom sprite to draw, or 0 if not available.

Definition at line 275 of file newgrf_badge.cpp.

References Badge::flags, SpriteGroup::Resolve(), BaseBitSet< Timpl, Tvalue_type, Tstorage, Tmask >::Test(), and UseCompanyColour.

◆ 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 128 of file newgrf_badge.cpp.

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

Referenced by ApplyBadgeFeaturesToClassBadges(), 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 73 of file newgrf_badge.cpp.

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

Referenced by GetOrCreateBadge().

◆ MarkBadgeSeen()

void MarkBadgeSeen ( BadgeID  index,
GrfSpecFeature  feature 
)

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

Definition at line 227 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 63 of file newgrf_badge.cpp.

References _badges.

Referenced by ResetNewGRFData().