OpenTTD AI API: AIPriorityQueue Class Reference

OpenTTD AI API 12.2

Public Member Functions
AIPriorityQueue Class Reference

Class that creates a queue which keeps its items ordered by an item priority. More...

Inheritance diagram for AIPriorityQueue:

## Public Member Functions
bool | Insert (void *item, int64 priority)
| Add a single item to the queue. More...
void * | Pop ()
| Remove and return the item with the lowest priority. More...
void * | Peek ()
| Get the item with the lowest priority, keeping it in the queue. More...
bool | Exists (void *item)
| Check if an items is already included in the queue. More...
void | Clear ()
| Clear the queue, making Count() returning 0 and IsEmpty() returning true.
bool | IsEmpty ()
| Check if the queue is empty. More...
SQInteger | Count ()
| Returns the amount of items in the queue. More...

## Detailed Description

Class that creates a queue which keeps its items ordered by an item priority.

## Member Function Documentation

## ◆ Count()

SQInteger AIPriorityQueue::Count | ( |  | ) |

Returns the amount of items in the queue.

Returns
  amount of items in the queue.

## ◆ Exists()

bool AIPriorityQueue::Exists | ( | void * | item | ) |

Check if an items is already included in the queue.

Returns
  true if the items is already in the queue.

Note
  Performance is O(n), use only when absolutely required.

## ◆ Insert()

bool AIPriorityQueue::Insert | ( | void * | item,
|  | int64 | priority
| ) |  |

Add a single item to the queue.

Parameters

  item | The item to add. Can be any Squirrel type. Should be unique, otherwise it is ignored.
  priority | The priority to assign the item.

Returns
  True if the item was inserted, false if it was already in the queue.

## ◆ IsEmpty()

bool AIPriorityQueue::IsEmpty | ( |  | ) |

Check if the queue is empty.

Returns
  true if the queue is empty.

## ◆ Peek()

void* AIPriorityQueue::Peek | ( |  | ) |

Get the item with the lowest priority, keeping it in the queue.

Returns
  The item with the lowest priority. Returns null on an empty queue.

Precondition
  !IsEmpty()

## ◆ Pop()

void* AIPriorityQueue::Pop | ( |  | ) |

Remove and return the item with the lowest priority.

Returns
  The item with the lowest priority, removed from the queue. Returns null on an empty queue.

Precondition
  !IsEmpty()