Selecting a suitable game tile

Now, to find suitable tiles, we will generate random spawn coordinates. We know that all tiles with the TILE::FLOOR or TILE::FLOOR_ALT type are floor tiles. Therefore, we can select a tile at random and deduce if it's suitable for the spawning of an item.

To avoid having to do these checks ourselves, the project provides the Level::IsFloor function. It is quite self-explanatory; you can pass it a tile, or the indices of one, and it will return true if it's a floor tile. We'll use that from now on to check whether the tiles are valid for spawning an item.

Randomly selecting a tile

The first function that we'll look at is choosing a value from an underlying grid. In our case, the level data is described in a 2D array. ...

Get Procedural Content Generation for C++ Game Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.