# 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...

## 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 'oveflowed'.
bool | IsEmpty ()
| Checks for empty set.
bool | IsFull ()
| Checks for full set.
uint | Items ()
| Reads the number of items.
bool | Remove (TileIndex tile, Tdir dir)
| Tries to remove first instance of given tile and dir.
bool | IsIn (TileIndex tile, Tdir dir)
| Tries to find given tile and dir in the set.
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.
bool | Get (TileIndex *tile, Tdir *dir)
| Reads the last added element into the set.

## Private Attributes

uint | n
bool | overflowed
const char * | name
struct SmallSet::SSdata | data [items]
| Element of set.

## Data Structures

struct | SSdata
| Element of set. More...

## 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

template<typename Tdir, uint items>

bool SmallSet< Tdir, items >::Overflowed | ( |  | ) | `[inline]`

Returns value of 'oveflowed'.

Returns:
  did we try to overflow the set?

Definition at line 81 of file signal.cpp.

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.

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 SmallSet< Tdir, items >::data, and lengthof.

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

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.

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.

References SmallSet< Tdir, items >::data.

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 elemnt was found

Definition at line 138 of file signal.cpp.

References SmallSet< Tdir, items >::data.

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 SmallSet< Tdir, items >::data, SmallSet< Tdir, items >::SSdata::dir, SmallSet< Tdir, items >::IsFull(), and SmallSet< Tdir, items >::SSdata::tile.

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 SmallSet< Tdir, items >::data, SmallSet< Tdir, items >::SSdata::dir, and SmallSet< Tdir, items >::SSdata::tile.

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

- src/signal.cpp