OpenTTD Source 20250508-master-g6680169251
GrfProcessingState Struct Reference

Temporary data during loading of GRFs. More...

#include <newgrf_internal.h>

Data Structures

struct  SpriteSet
 Definition of a single Action1 spriteset. More...
 

Public Member Functions

void ClearDataForNextFile ()
 Clear temporary data before processing the next file in the current loading stage.
 
void AddSpriteSets (uint8_t feature, SpriteID first_sprite, uint first_set, uint numsets, uint numents)
 Records new spritesets.
 
bool HasValidSpriteSets (uint8_t feature) const
 Check whether there are any valid spritesets for a feature.
 
bool IsValidSpriteSet (uint8_t feature, uint set) const
 Check whether a specific set is defined.
 
SpriteID GetSprite (uint8_t feature, uint set) const
 Returns the first sprite of a spriteset.
 
uint GetNumEnts (uint8_t feature, uint set) const
 Returns the number of sprites in a spriteset.
 

Data Fields

GrfLoadingStage stage
 Current loading stage.
 
SpriteID spriteid
 First available SpriteID for loading realsprites.
 
SpriteFilefile
 File of currently processed GRF file.
 
GRFFilegrffile
 Currently processed GRF file.
 
GRFConfiggrfconfig
 Config of the currently processed GRF file.
 
uint32_t nfo_line
 Currently processed pseudo sprite number in the GRF.
 
int skip_sprites
 Number of pseudo sprites to skip before processing the next one. (-1 to skip to end of file)
 
std::array< const SpriteGroup *, MAX_SPRITEGROUP+1 > spritegroups {}
 

Private Attributes

std::map< uint, SpriteSetspritesets [GSF_END]
 Currently referenceable spritesets.
 

Detailed Description

Temporary data during loading of GRFs.

Definition at line 49 of file newgrf_internal.h.

Member Function Documentation

◆ AddSpriteSets()

void GrfProcessingState::AddSpriteSets ( uint8_t  feature,
SpriteID  first_sprite,
uint  first_set,
uint  numsets,
uint  numents 
)
inline

Records new spritesets.

Parameters
featureGrfSpecFeature the set is defined for.
first_spriteSpriteID of the first sprite in the set.
first_setFirst spriteset to define.
numsetsNumber of sets to define.
numentsNumber of sprites per set to define.

Definition at line 98 of file newgrf_internal.h.

References GrfProcessingState::SpriteSet::num_sprites, and GrfProcessingState::SpriteSet::sprite.

◆ ClearDataForNextFile()

void GrfProcessingState::ClearDataForNextFile ( )
inline

Clear temporary data before processing the next file in the current loading stage.

Definition at line 78 of file newgrf_internal.h.

Referenced by LoadNewGRF(), and LoadNewGRFFileFromFile().

◆ GetNumEnts()

uint GrfProcessingState::GetNumEnts ( uint8_t  feature,
uint  set 
) const
inline

Returns the number of sprites in a spriteset.

Parameters
featureGrfSpecFeature to query.
setSet to query.
Returns
Number of sprites in the set.

Definition at line 151 of file newgrf_internal.h.

References IsValidSpriteSet().

Referenced by CreateGroupFromGroupID(), and ReadSpriteLayoutSprite().

◆ GetSprite()

SpriteID GrfProcessingState::GetSprite ( uint8_t  feature,
uint  set 
) const
inline

Returns the first sprite of a spriteset.

Parameters
featureGrfSpecFeature to query.
setSet to query.
Returns
First sprite of the set.

Definition at line 139 of file newgrf_internal.h.

References IsValidSpriteSet().

Referenced by CreateGroupFromGroupID(), and ReadSpriteLayoutSprite().

◆ HasValidSpriteSets()

bool GrfProcessingState::HasValidSpriteSets ( uint8_t  feature) const
inline

Check whether there are any valid spritesets for a feature.

Parameters
featureGrfSpecFeature to check.
Returns
true if there are any valid sets.
Note
Spritesets with zero sprites are valid to allow callback-failures.

Definition at line 114 of file newgrf_internal.h.

◆ IsValidSpriteSet()

bool GrfProcessingState::IsValidSpriteSet ( uint8_t  feature,
uint  set 
) const
inline

Check whether a specific set is defined.

Parameters
featureGrfSpecFeature to check.
setSet to check.
Returns
true if the set is valid.
Note
Spritesets with zero sprites are valid to allow callback-failures.

Definition at line 127 of file newgrf_internal.h.

Referenced by CreateGroupFromGroupID(), GetNumEnts(), GetSprite(), and ReadSpriteLayoutSprite().

Field Documentation

◆ file

SpriteFile* GrfProcessingState::file

File of currently processed GRF file.

Definition at line 66 of file newgrf_internal.h.

Referenced by DefineGotoLabel(), ImportGRFSound(), LoadFontGlyph(), LoadGRFSound(), and LoadNewGRFFileFromFile().

◆ grfconfig

◆ grffile

◆ nfo_line

uint32_t GrfProcessingState::nfo_line

Currently processed pseudo sprite number in the GRF.

Definition at line 69 of file newgrf_internal.h.

Referenced by DefineGotoLabel(), DisableGrf(), GrfMsgI(), LoadFontGlyph(), LoadNewGRFFileFromFile(), and ParamSet().

◆ skip_sprites

int GrfProcessingState::skip_sprites

Number of pseudo sprites to skip before processing the next one. (-1 to skip to end of file)

Definition at line 72 of file newgrf_internal.h.

Referenced by DisableGrf(), GRFUnsafe(), LoadNewGRFFileFromFile(), ParamSet(), ReadSpriteLayout(), SkipAct12(), and StationChangeInfo().

◆ spritegroups

std::array<const SpriteGroup *, MAX_SPRITEGROUP + 1> GrfProcessingState::spritegroups {}

Definition at line 75 of file newgrf_internal.h.

◆ spriteid

SpriteID GrfProcessingState::spriteid

First available SpriteID for loading realsprites.

Definition at line 63 of file newgrf_internal.h.

Referenced by CreateGroupFromGroupID(), LoadFontGlyph(), LoadNewGRF(), and ParamSet().

◆ spritesets

std::map<uint, SpriteSet> GrfProcessingState::spritesets[GSF_END]
private

Currently referenceable spritesets.

Definition at line 58 of file newgrf_internal.h.

◆ stage

GrfLoadingStage GrfProcessingState::stage

Current loading stage.

Definition at line 62 of file newgrf_internal.h.

Referenced by LoadNewGRF(), and ParamSet().


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