#include "Main.h"
#include "Save.h"
int main()
{
int key_code = 0;
bool gameRun = true;
short *gameState = new short(1);
Player *player = 0;
Sector *sector = 0;
Save *save = new Save();
Display *display = new Display();
while (gameRun)
{
if (*gameState == 0)
{
if (_kbhit())
{
key_code = _getch();
switch (key_code)
{
case KeyCode::LEFT:
player->move(-1, 0, sector);
display->render(sector, player);
break;
case KeyCode::RIGHT:
player->move(1, 0, sector);
display->render(sector, player);
break;
case KeyCode::UP:
player->move(0, -1, sector);
display->render(sector, player);
break;
case KeyCode::DOWN:
player->move(0, 1, sector);
display->render(sector, player);
break;
case KeyCode::ESCAPE:
*gameState = 4;
break;
}
}
}
else if(*gameState == 1)
{
std::string playerName;
int menuOption = display->showHomePage(save);
switch (menuOption)
{
case 1: // Créer nouvelle partie
std::cin >> playerName;
player = new Player(playerName, 9, 3);
sector = new Sector("secteur1");
sector->loadMap(player, gameState);
save->saveGameFile(player, sector, true);
display->render(sector, player);
*gameState = 0;
break;
case 0: // Quitter
gameRun = false;
break;
default: // Charger partie
save->loadGameFile(&player, §or, gameState, menuOption - 2);
display->render(sector, player);
*gameState = 0;
break;
}
}
else if (*gameState == 4)
{
int menuOption = display->showInGameMenu();
switch (menuOption)
{
case 1:
display->render(sector, player);
*gameState = 0;
break;
case 2:
save->loadGameFile(&player, §or, gameState);
display->render(sector, player);
*gameState = 0;
break;
case 3:
save->saveGameFile(player, sector);
break;
case 0:
*gameState = 1;
break;
}
}
else
{
std::string playerName;
int menuOption = display->showSuccessPage(gameState);
switch (menuOption)
{
case 1: // Recommencer nouvelle partie (écrase la présente sauvegarde)
std::cin >> playerName;
*player = Player(playerName, 9, 3);
*sector = Sector("secteur1");
sector->loadMap(player, gameState);
save->saveGameFile(player, sector);
display->render(sector, player);
*gameState = 0;
break;
case 0: // Retour accueil
*gameState = 1;
break;
}
}
}
delete player;
delete sector;
delete save;
delete display;
delete gameState;
player = 0;
sector = 0;
save = 0;
display = 0;
gameState = 0;
return 0;
}