OSDN Git Service

Add new command, GAME_COMMAND_DEBUG_XML_SAVE, GAME_COMMAND_DEBUG_XML_LOAD.
[deeangband/Deeangband-new.git] / Deeangband / GameEngine.cpp
1 /*!
2 * @file GameEngine.cpp
3 * @brief \83Q\81[\83\80\83G\83\93\83W\83\93\82Ì\8eÀ\91\95
4 * @date 2013/12/17
5 * @author Deskull
6 * 2014 Sikabane Works.
7 */
8
9 #pragma once
10
11 #include "stdafx.h"
12 #include "GameEngine.h"
13
14
15 namespace Deeangband
16 {
17         GameEngine::GameEngine()
18         {
19                 gameWorld = new GameWorld();
20                 gameSurface = new GameSurfaceSDL(gameWorld);
21                 gameSurface->SetFloor(gameWorld->GetFloor(0));
22         }
23
24         PLAY_EXIT_CODE GameEngine::PlayLoop(void)
25         {
26                 GAME_COMMAND commandID;
27                 PLAY_EXIT_CODE code = PLAY_EXIT_NONE;
28                 gameSurface->Redraw();
29
30                 while(code == PLAY_EXIT_NONE)
31                 {
32                         commandID = gameSurface->GetCommand();
33                         code = DoGameCommand(commandID);
34                 }
35
36                 return PLAY_EXIT_QUIT;
37         }
38
39         PLAY_EXIT_CODE GameEngine::DoGameCommand(GAME_COMMAND command)
40         {
41                 switch(command)
42                 {
43                 case GAME_COMMAND_VIEW_PLAYER_STATUS:
44                         gameSurface->ViewCreatureStatus(gameWorld->GetCreature(0));
45                         break;
46                 case GAME_COMMAND_REDRAW:
47                         gameSurface->Redraw();
48                         break;
49                 case GAME_COMMAND_DEBUG_XML_SAVE:
50                         gameWorld->XMLSave();
51                         break;
52                 case GAME_COMMAND_DEBUG_XML_LOAD:
53                         gameSurface->Redraw();
54                         gameWorld->XMLLoad();
55                         break;
56                 case GAME_COMMAND_EXIT:
57                         return PLAY_EXIT_QUIT;
58                         break;
59                 }
60                 return PLAY_EXIT_NONE;
61         }
62
63 }