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

  tile | tile
  dir | and 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

  tile | pointer where tile is written to
  dir | pointer 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

  tile | tile
  dir | and 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

  tile | tile
  dir | and 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:

- src/signal.cpp