OpenTTD Source: SpriteGroup Struct Reference

OpenTTD Source 15.3

Static Public Member Functions | Data Fields | Protected Member Functions
SpriteGroup Struct Referenceabstract
Inheritance diagram for SpriteGroup:

## Static Public Member Functions
static ResolverResult | Resolve (const SpriteGroup *group, ResolverObject &object, bool top_level=true)
| ResolverObject (re)entry point.
Static Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::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 (auto index)
| Tests whether given index can be used to get valid (non-nullptr) Titem.
static Titem * | Get (auto index)
| Returns Titem with given index.
static Titem * | GetIfValid (auto 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 = 0
Data Fields inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_spritegroup_pool >
Tindex | index
| Index of this pool item.

## Protected Member Functions
virtual ResolverResult | Resolve (ResolverObject &object) const =0
| Base sprite group resolver.

## Additional Inherited Members
Public Types inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_spritegroup_pool >
typedef struct Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache > | Pool
| Type of the pool this item is going to be part of.
Public Member Functions inherited from Pool< Titem, Tindex, Tgrowth_step, Tpool_type, Tcache >::PoolItem<&_spritegroup_pool >
void * | operator new (size_t size)
| Allocates space for new Titem.
void * | operator new (size_t size, Tindex 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, size_t size)
| Marks Titem as free.

## Detailed Description

Definition at line 47 of file newgrf_spritegroup.h.

## Constructor & Destructor Documentation

## ◆ SpriteGroup()

SpriteGroup::SpriteGroup | ( |  | ) |
| inlineprotected

Definition at line 49 of file newgrf_spritegroup.h.

## Member Function Documentation

## ◆ Resolve() [1/2]

ResolverResult 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

  group | the group to resolve for
  object | information needed to resolve the group
  top_level | true 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]

virtual ResolverResult SpriteGroup::Resolve | ( | ResolverObject & | object | ) | const
| protectedpure virtual

Base sprite group resolver.

Implemented in ResultSpriteGroup, TileLayoutSpriteGroup, IndustryProductionSpriteGroup, RealSpriteGroup, DeterministicSpriteGroup, RandomizedSpriteGroup, and CallbackResultSpriteGroup.

Referenced by Resolve(), RealSpriteGroup::Resolve(), DeterministicSpriteGroup::Resolve(), and RandomizedSpriteGroup::Resolve().

## Field Documentation

## ◆ nfo_line

uint32_t SpriteGroup::nfo_line = 0

Definition at line 56 of file newgrf_spritegroup.h.

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

- src/newgrf_spritegroup.h
- src/newgrf_spritegroup.cpp