#ifndef GAME_H
#define GAME_H

#include <cpctelera.h>
#include "Dialog.h"
#include "GameState.h"
#include "Enemy.h"
#include "Hud.h"
#include "Keys.h"
#include "Map.h"
#include "Palette.h"
#include "Player.h"
#include "Sound.h"

// Runs the full game session and manages the levels in the game.
void runGameSession();

// Runs the game and the game loop.
void runGame();

// Read input from the player.
void readInput();

// Displays the contents of the game on the screen as it changes.
void drawGame();

// This is where the processing of all the game logic happens.
void gameLogic();

// Logic for updating the water cells for the chasing gesture water (if it is in the level).
void logicWater();

// Display a screen that lets you select the level for debugging purposes.
void debugLevelSelector();

// Generate a 5 letter pass code for a given map number.
void generatePasscode(u8 mapNumber, u8* code);

#endif