OSDN Git Service

List of GameMessage was moved to GameLogger class.
[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                 gameLogger = new GameLogger();
22
23                 gameSurface->SetField(gameWorld->GetField(0));
24                 gameSurface->SetSideStatusCreature(gameWorld->GetCreature(0));
25                 this->gameLogger->PutLog("GameEngine\8aJ\8en");
26                 Direction::Initialize();
27         }
28
29         PLAY_EXIT_CODE GameEngine::PlayLoop(void)
30         {
31                 GAME_COMMAND commandID;
32                 PLAY_EXIT_CODE code = PLAY_EXIT_NONE;
33                 gameSurface->Redraw();
34
35                 while(code == PLAY_EXIT_NONE)
36                 {
37                         commandID = gameSurface->GetCommand();
38                         code = DoGameCommand(commandID);
39                 }
40
41                 return PLAY_EXIT_QUIT;
42         }
43
44         PLAY_EXIT_CODE GameEngine::DoGameCommand(GAME_COMMAND command)
45         {
46                 Creature *playerPtr = gameWorld->GetPlayerCreature();
47
48                 switch(command)
49                 {
50                 case GAME_COMMAND_VIEW_PLAYER_STATUS:
51                         gameSurface->ViewCreatureStatus(gameWorld->GetCreature(0));
52                         break;
53                 case GAME_COMMAND_REDRAW:
54                         gameSurface->Redraw();
55                         break;
56                 case GAME_COMMAND_DEBUG_XML_SAVE:
57                         gameWorld->XMLSave();
58                         gameSurface->SystemMessage("XML\82É\95Û\91\82µ\82Ü\82µ\82½\81B");
59                         break;
60                 case GAME_COMMAND_DEBUG_XML_LOAD:
61                         gameSurface->Redraw();
62                         gameWorld->XMLLoad();
63                         gameSurface->SystemMessage("XML\82©\82ç\8cÄ\82Ñ\8fo\82µ\82Ü\82µ\82½\81B");
64                         break;
65                 case GAME_COMMAND_EXIT:
66                         return PLAY_EXIT_QUIT;
67                         break;
68                 case GAME_COMMAND_NORTH:
69                         playerPtr->Walk(this->gameLogger, DIRECTION_NORTH);
70                         break;
71                 case GAME_COMMAND_NORTH_EAST:
72                         playerPtr->Walk(this->gameLogger, DIRECTION_NORTH_EAST);
73                         break;
74                 case GAME_COMMAND_EAST:
75                         playerPtr->Walk(this->gameLogger, DIRECTION_EAST);
76                         break;
77                 case GAME_COMMAND_SOUTH_EAST:
78                         playerPtr->Walk(this->gameLogger, DIRECTION_SOUTH_EAST);
79                         break;
80                 case GAME_COMMAND_SOUTH:
81                         playerPtr->Walk(this->gameLogger, DIRECTION_SOUTH);
82                         break;
83                 case GAME_COMMAND_SOUTH_WEST:
84                         playerPtr->Walk(this->gameLogger, DIRECTION_SOUTH_WEST);
85                         break;
86                 case GAME_COMMAND_WEST:
87                         playerPtr->Walk(this->gameLogger, DIRECTION_WEST);
88                         break;
89                 case GAME_COMMAND_NORTH_WEST:
90                         playerPtr->Walk(this->gameLogger, DIRECTION_NORTH_WEST);
91                         break;
92                 }
93                 return PLAY_EXIT_NONE;
94         }
95 }