OpenTTD
Data Structures | Public Member Functions | Private Attributes
SmallSet< Tdir, items > Struct Template Reference

Set containing 'items' items of 'tile and Tdir' No tree structure is used because it would cause slowdowns in most usual cases. More...

Data Structures

struct  SSdata
 Element of set. More...
 

Public Member Functions

 SmallSet (const char *name)
 Constructor - just set default values and 'name'.
 
void Reset ()
 Reset variables to default values.
 
bool Overflowed ()
 Returns value of 'overflowed'. More...
 
bool IsEmpty ()
 Checks for empty set. More...
 
bool IsFull ()
 Checks for full set. More...
 
uint Items ()
 Reads the number of items. More...
 
bool Remove (TileIndex tile, Tdir dir)
 Tries to remove first instance of given tile and dir. More...
 
bool IsIn (TileIndex tile, Tdir dir)
 Tries to find given tile and dir in the set. More...
 
bool Add (TileIndex tile, Tdir dir)
 Adds tile & dir into the set, checks for full set Sets the 'overflowed' flag if the set was full. More...
 
bool Get (TileIndex *tile, Tdir *dir)
 Reads the last added element into the set. More...
 

Private Attributes

uint n
 
bool overflowed
 
const char * name
 
struct SmallSet::SSdata data [items]
 

Detailed Description

template<typename Tdir, uint items>
struct SmallSet< Tdir, items >

Set containing 'items' items of 'tile and Tdir' No tree structure is used because it would cause slowdowns in most usual cases.

Definition at line 54 of file signal.cpp.

Member Function Documentation

◆ Add()

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Add ( TileIndex  tile,
Tdir  dir 
)
inline

Adds tile & dir into the set, checks for full set Sets the 'overflowed' flag if the set was full.

Parameters
tiletile
dirand dir to add
Returns
true iff the item could be added (set wasn't full)

Definition at line 154 of file signal.cpp.

References DEBUG, and SmallSet< Tdir, items >::IsFull().

Referenced by MaybeAddToTodoSet().

◆ Get()

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Get ( TileIndex tile,
Tdir *  dir 
)
inline

Reads the last added element into the set.

Parameters
tilepointer where tile is written to
dirpointer where dir is written to
Returns
false iff the set was empty

Definition at line 175 of file signal.cpp.

References _globset, _tbdset, and _tbuset.

Referenced by UpdateSignalsAroundSegment().

◆ IsEmpty()

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::IsEmpty ( )
inline

Checks for empty set.

Returns
is the set empty?

Definition at line 90 of file signal.cpp.

Referenced by UpdateSignalsInBuffer().

◆ IsFull()

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::IsFull ( )
inline

Checks for full set.

Returns
is the set full?

Definition at line 99 of file signal.cpp.

References lengthof.

Referenced by SmallSet< Tdir, items >::Add().

◆ IsIn()

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::IsIn ( TileIndex  tile,
Tdir  dir 
)
inline

Tries to find given tile and dir in the set.

Parameters
tiletile
dirand dir to find
Returns
true iff the tile & dir element was found

Definition at line 138 of file signal.cpp.

◆ Items()

template<typename Tdir, uint items>
uint SmallSet< Tdir, items >::Items ( )
inline

Reads the number of items.

Returns
current number of items

Definition at line 108 of file signal.cpp.

◆ Overflowed()

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Overflowed ( )
inline

Returns value of 'overflowed'.

Returns
did we try to overflow the set?

Definition at line 81 of file signal.cpp.

◆ Remove()

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Remove ( TileIndex  tile,
Tdir  dir 
)
inline

Tries to remove first instance of given tile and dir.

Parameters
tiletile
dirand dir to remove
Returns
element was found and removed

Definition at line 120 of file signal.cpp.

Referenced by CheckAddToTodoSet().


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