 /* '12 Game.h' */

 /* Plik standardowego nagłówka Windows  */
#include <windows.h>
 /* Plik standardowego nagłowka wejścia-wyjścia */
#include <stdio.h>
 /* Plik nagłówka strumienia pliku */
#include <fstream.h>

 /* Plik nagłówka ConLib */
#include "ConLib.h"
 /* Plik nagłówka CPlayer  */
#include "12 Player.h"

 /* Wyliczenie statusów gry */
enum GameStatus
{
 GameMainMenu     = 1,
 GameRunning      = 2,
 GamePaused       = 3,
 GameWon          = 4,
 GameLostLife     = 5,
 GameLost         = 6,
 GameExit         = 7,
 GameSplashScreen = 8
};

 /* Wyliczenie poziomów trudności */
enum GameDifficulty
{
 GameEasy         = 1,
 GameMedium       = 2,
 GameDifficult    = 3,
};

 /* Klasa bazowa gry */
class CGame
{
private:

  /* Informacje we/wy */
 ConLib *   m_Console;
 int        m_LastAction;

  /* Informacje o grze */
 int        m_GameStatus;
 COORD      m_Arena;
 CPlayer    m_Player;
 COORD *    m_Monsters;
 int        m_MonstersNumber;

public:

  /* Konstruktory / Destruktory */
 CGame ();
 CGame (ConLib * Console);
 ~CGame ();

  /* Pokazują odpowiednią informacje w zależności od statusu gry */
 void ShowSplash (void);
 void ShowMenu (void);
 void ShowGame (void);
 void ShowWon (void);
 void ShowLostLife (void);
 void ShowLost (void);
 void ShowExit (void);
 void Show (void);

  /* Przetwarzają turę w zależności od statusu gry */
 void ProcessSplash (void);
 void ProcessMenu (void);
 void ProcessGame (void);
 void ProcessWon (void);
 void ProcessLostLife (void);
 void ProcessLost (void);
 void ProcessExit (void);
 void Process (void);

  /* Ustawia inforacje o konsoli */
 void SetConsole (ConLib * Console);

  /* Metody klasy Game */
 void StartNewGame (int Difficulty);
 void EndGame (void);
 void CheckCollisions ();
 int GetAction (void);
 int GetStatus (void);
 void MoveMonsters (void);

  /* Metody do zapisu i odczytu gry */
	void Load (void);
	void Save (void);
};