OpenTTD Source 20241224-master-gf74b0cf984
SpriteGroup Struct Reference
Inheritance diagram for SpriteGroup:
Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_spritegroup_pool > CallbackResultSpriteGroup DeterministicSpriteGroup IndustryProductionSpriteGroup RandomizedSpriteGroup RealSpriteGroup ResultSpriteGroup TileLayoutSpriteGroup

Public Member Functions

virtual SpriteID GetResult () const
 
virtual uint8_t GetNumResults () const
 
virtual uint16_t GetCallbackResult () const
 
- Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_spritegroup_pool >
void * operator new (size_t size)
 Allocates space for new Titem.
 
void * operator new (size_t size, size_t index)
 Allocates space for new Titem with given index.
 
void * operator new (size_t, void *ptr)
 Allocates space for new Titem at given memory address.
 
void operator delete (void *p)
 Marks Titem as free.
 

Static Public Member Functions

static const SpriteGroupResolve (const SpriteGroup *group, ResolverObject &object, bool top_level=true)
 ResolverObject (re)entry point.
 
- Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_spritegroup_pool >
static bool CanAllocateItem (size_t n=1)
 Helper functions so we can use PoolItem::Function() instead of _poolitem_pool.Function()
 
static bool CleaningPool ()
 Returns current state of pool cleaning - yes or no.
 
static bool IsValidID (size_t index)
 Tests whether given index can be used to get valid (non-nullptr) Titem.
 
static Titem * Get (size_t index)
 Returns Titem with given index.
 
static Titem * GetIfValid (size_t index)
 Returns Titem with given index.
 
static size_t GetPoolSize ()
 Returns first unused index.
 
static size_t GetNumItems ()
 Returns number of valid items in the pool.
 
static void PostDestructor (size_t index)
 Dummy function called after destructor of each member.
 
static Pool::IterateWrapper< Titem > Iterate (size_t from=0)
 Returns an iterable ensemble of all valid Titem.
 

Data Fields

uint32_t nfo_line
 
SpriteGroupType type
 
- Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_spritegroup_pool >
Tindex index
 Index of this pool item.
 

Protected Member Functions

 SpriteGroup (SpriteGroupType type)
 
virtual const SpriteGroupResolve (ResolverObject &object) const
 Base sprite group resolver.
 

Additional Inherited Members

- Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_spritegroup_pool >
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero > Pool
 Type of the pool this item is going to be part of.
 

Detailed Description

Definition at line 57 of file newgrf_spritegroup.h.

Constructor & Destructor Documentation

◆ SpriteGroup()

SpriteGroup::SpriteGroup ( SpriteGroupType  type)
inlineprotected

Definition at line 59 of file newgrf_spritegroup.h.

Member Function Documentation

◆ GetCallbackResult()

virtual uint16_t SpriteGroup::GetCallbackResult ( ) const
inlinevirtual

Definition at line 71 of file newgrf_spritegroup.h.

◆ GetNumResults()

virtual uint8_t SpriteGroup::GetNumResults ( ) const
inlinevirtual

Definition at line 70 of file newgrf_spritegroup.h.

◆ GetResult()

virtual SpriteID SpriteGroup::GetResult ( ) const
inlinevirtual

Definition at line 69 of file newgrf_spritegroup.h.

◆ Resolve() [1/2]

const SpriteGroup * SpriteGroup::Resolve ( const SpriteGroup group,
ResolverObject object,
bool  top_level = true 
)
static

ResolverObject (re)entry point.

This cannot be made a call to a virtual function because virtual functions do not like nullptr and checking for nullptr everywhere is more cumbersome than this little helper function.

Parameters
groupthe group to resolve for
objectinformation needed to resolve the group
top_leveltrue if this is a top-level SpriteGroup, false if used nested in another SpriteGroup.
Returns
the resolved group

Definition at line 34 of file newgrf_spritegroup.cpp.

References NewGRFProfiler::grffile, and Resolve().

◆ Resolve() [2/2]

Field Documentation

◆ nfo_line

uint32_t SpriteGroup::nfo_line

Definition at line 66 of file newgrf_spritegroup.h.

◆ type

SpriteGroupType SpriteGroup::type

Definition at line 67 of file newgrf_spritegroup.h.


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