OSDN Git Service

186ddd1f59cfd1cc7ddb4f69ef717a8115300b12
[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 "Direction.h"
16 #include "GameWorld.h"
17 #include "GameSurface.h"
18 #include "GameSurfaceSDL.h"
19
20
21 namespace Deeangband
22 {
23 #include "EngineTypedef.h"
24
25         class GameCampaign;
26         class GameLogger;
27
28         class GameEngine
29         {
30         private:
31                 GameWorld *gameWorld; //!< GameWorld\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
32                 GameSurface *gameSurface; //!< GameSurface\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
33                 GameLogger *gameLogger; //!< GameLogger\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
34                 boost::mutex mutex;
35
36
37         public:
38                 GameEngine::GameEngine();
39                 GameEngine::~GameEngine();
40
41                 /*!
42                  * @brief \95`\89æ\8f\88\97\9d\83\81\83C\83\93\83\8b\81[\83v
43                  * @return \82È\82µ
44                  */
45                 void GameEngine::DrawingLoop(void);
46
47                 /*!
48                  * @brief \83v\83\8c\83C\8f\88\97\9d\83\81\83C\83\93\83\8b\81[\83v
49                  * @return \83Q\81[\83\80\8fI\97¹\83R\81[\83h
50                  */
51                 PLAY_EXIT_CODE GameEngine::PlayLoop(void);
52
53                 /*!
54                  * @brief \83N\83\8a\81[\83`\83\83\81[\93¯\8em\82Ì\94\92\95º\90í\82ð\8f\88\92u\82·\82é
55                  * @param creaturePtr \8dU\8c\82\91¤\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
56                  * @param targetPtr \96Ú\95W\91¤\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
57                  * @return \88Ú\93®\82ª\94\92\95º\8f\88\97\9d\82ª\8ds\82í\82ê\82½\82çtrue
58                  */
59                 bool GameEngine::CombatCreatures(Creature *attackerPtr, Creature *targetPtr);
60
61                 /*!
62                  * @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é
63                  * @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
64                  */
65                 int GameEngine::ProcessDeadCreatures();
66
67         };
68 }