#ifndef GAMESTATE_H
#define GAMESTATE_H

#include <types.h>
#include "GameTypes.h"
#include "Difficulty.h"

// Indicates if the game is currently running within the game loop.
extern u8 gameRunning;

// The score for the whole game session.
extern u16 gameScore;

// The score including the progress for the current level.
extern u16 levelScore;

// The number of lives that the player has.
extern u8 playerLives;

// Indicates the state of the level (or game) and whether it has ended (including success or failure).
extern u8 levelState;

// Indicates if the hud is redrawn on the screen.
extern u8 hudRedraw;

// Indicates whether the player is being redrawn on the screen.
extern u8 playerRedraw;

// The current room that the player is in.
extern u8 currentRoom;
extern u8 currentRoomX;
extern u8 currentRoomY;

// Indicates the player has recently changed rooms.
extern u8 roomChange;

// Indicates whether the game was started using a pass code.
extern u8 passcodeUsed;

// Resets state values for the start of a new game session.
void resetGameSessionState();

#endif