Pushable walls give access to open/rectangular rooms. By looking at the list of blocks built while we were creating the rooms, we know the exit point of each of these rooms. Since we expect the player to come from the location of the root cell, we need to move at the position of the block's entry point. We use the root direction in conjunction with the width and height of the room to locate that point. Once found, we ensure that the cell behind where the pushable wall would be place is free of walls so the player has enough room to push it. When it is confirmed that the cell is free, the pushable wall is added. To ensure that the cell behind the wall is always free, the generator marks that cell. From that moment on, only a pushable wall can access that cell and nothing else, including moving encounters.
Move the mouse pointer over the image to view the map before the change.
|