OSDN Git Service

aa2e63ae533fade3f98d8e7129b34da803b0ffcf
[deeangband/Deeangband-new.git] / Deeangband / GameEngine.h
1 /*!
2  * @file GameEngine.h
3  * @brief \83Q\81[\83\80\83G\83\93\83W\83\93\82Ì\83v\83\8d\83g\83^\83C\83v\90é\8c¾
4  * @date 2013/04/13
5  * @author Deskull
6  * 2013-2014 Sikabane Works.
7  */
8
9 #pragma once
10
11 #include "stdafx.h"
12 #include "Deeangband.h"
13
14 #include "Coordinates.h"
15 #include "GameCampaign.h"
16 #include "Direction.h"
17 #include "GameWorld.h"
18 #include "GameSurface.h"
19 #include "GameSurfaceSDL.h"
20 #include "GameLogger.h"
21
22
23 namespace Deeangband
24 {
25 #include "EngineTypedef.h"
26
27         class GameEngine
28         {
29         private:
30                 GameWorld *gameWorld; //!< GameWorld\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
31                 GameSurface *gameSurface; //!< GameSurface\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
32                 GameLogger *gameLogger; //!< GameLogger\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
33
34                 /*!
35                  * @brief \8e\9f\82Ì\8f\88\97\9d\91Î\8fÛ\82ð\8eæ\93¾\82µ\81A\82»\82ê\82Ü\82Å\82Ì\83Q\81[\83\80\8e\9e\8aÔ\89Á\8eZ\82ð\8ds\82¤\81B
36                  * @return \8e\9f\82Ì\8f\88\97\9d\91Î\8fÛ
37                  */
38                 ACTION_IT GameEngine::toNextProcess(void);
39
40         public:
41                 GameEngine::GameEngine();
42
43                 /*!
44                  * @brief \83v\83\8c\83C\8f\88\97\9d\83\81\83C\83\93\83\8b\81[\83v
45                  * @return \83Q\81[\83\80\8fI\97¹\83R\81[\83h
46                  */
47                 PLAY_EXIT_CODE GameEngine::PlayLoop(void);
48
49                 /*!
50                  * @brief \8eó\82¯\8eæ\82Á\82½\83Q\81[\83\80\83R\83}\83\93\83h\82ð\8f\88\97\9d\82·\82é
51                  * @param command \8eÀ\8ds\82·\82é\83Q\81[\83\80\83R\83}\83\93\83h
52                  * @return \83Q\81[\83\80\8fI\97¹\83R\81[\83h
53                  */
54                 PLAY_EXIT_CODE GameEngine::DoGameCommand(GAME_COMMAND command);
55
56                 /*!
57                  * @brief \83N\83\8a\81[\83`\83\83\81[\82ð\8ew\92è\82Ì\95û\8cü\82É\95à\8ds\82³\82¹\82é
58                  * @param creaturePtr \83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
59                  * @param direction \95à\8ds\82·\82é\95û\8cü
60                  * @return \88Ú\93®\82ª\8eÀ\8dÛ\82É\8ds\82í\82ê\82½\82çtrue
61                  */
62                 bool GameEngine::WalkCreature(Creature *creaturePtr, DIRECTION direction);
63
64                 bool GameEngine::WalkCreature(CREATURE_IT creaturePtr, DIRECTION direction);
65
66                 /*!
67                  * @brief \83N\83\8a\81[\83`\83\83\81[\93¯\8em\82Ì\94\92\95º\90í\82ð\8f\88\92u\82·\82é
68                  * @param creaturePtr \8dU\8c\82\91¤\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
69                  * @param targetPtr \96Ú\95W\91¤\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
70                  * @return \88Ú\93®\82ª\94\92\95º\8f\88\97\9d\82ª\8ds\82í\82ê\82½\82çtrue
71                  */
72                 bool GameEngine::CombatCreatures(Creature *attackerPtr, Creature *targetPtr);
73
74                 /*!
75                  * @brief \83N\83\8a\81[\83`\83\83\81[\82Ì\8e\80\96S\8fó\91Ô\82ð\91\96\8d¸\81A\8f\88\97\9d\82·\82é
76                  * @return \8e\80\96S\8f\88\97\9d\82ð\8ds\82Á\82½\83N\83\8a\81[\83`\83\83\81[\82Ì\91\8d\90\94
77                  */
78                 int GameEngine::ProcessDeadCreatures();
79
80         };
81 }