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. Therefore, we simply need to generate a random column and a row index.
Tip
Remember that this range is the number of rows and columns - 1 as all indices start from 0. If we have a grid with 10 rows and columns, then they are numbered 0 to 9, and the...