OSDN Git Service

ゲーム時間経過処理を実装中 / Implementing game time processing.
[deeangband/Deeangband-new.git] / Deeangband / GameWorld.h
index dd79428..b0795b2 100644 (file)
 #include "stdafx.h"
 #include "Deeangband.h"
 
-#include "Air.h"
-#include "Ability.h"
-#include "Authority.h"
-#include "Building.h"
-#include "Camp.h"
-#include "Creature.h"
-#include "CreatureTrait.h"
-#include "Dungeon.h"
-#include "Effect.h"
-#include "Floor.h"
-#include "FixedArtifact.h"
-#include "GameMessage.h"
-#include "ItemBase.h"
-#include "ItemEgo.h"
-#include "ItemTrait.h"
-#include "Karma.h"
-#include "Quest.h"
-#include "Race.h"
-#include "Space.h"
-#include "Skill.h"
-#include "Species.h"
-#include "StartingClass.h"
-#include "TrapBase.h"
-
-#include "Item.h"
-#include "Creature.h"
-#include "Field.h"
-#include "Trap.h"
-
 BOOST_CLASS_VERSION(GameWorld, 1);
 
 namespace Deeangband
 {
 
+       class Air;
+       class Ability;
+       class Authority;
+       class Building;
+       class Camp;
+       class CreatureTrait;
+
+       class Creature;
+       class Dungeon;
+       class Effect;
+       class Floor;
+
+       class Field;
+       class FixedArtifact;
+       class GameMessage;
+       class Item;
+       class ItemBase;
+       class ItemEgo;
+       class ItemTrait;
+       class Karma;
+       class Lore;
+       class Quest;
+       class Race;
+       class Space;
+       class Skill;
+       class Species;
+       class StartingClass;
+       class Trap;
+       class TrapBase;
+
+       class Coordinates;
+       class HaveGameTime;
+
+#include "EngineTypedef.h"
+
        /*!
        * @class GameWorld
        * @brief \83Q\81[\83\80\90¢\8aE\82Ì\83N\83\89\83X
@@ -78,7 +84,7 @@ namespace Deeangband
 
                //\93®\93I\83f\81[\83^\83\8a\83X\83g
                std::map<ID, boost::shared_ptr<Item>> itemList;                    /*!<\91S\83A\83C\83e\83\80\83\8a\83X\83g*/
-               std::map<ID, boost::shared_ptr<Creature>> creatureList;            /*!<\91S\83N\83\8a\81[\83`\83\83\81[\83\8a\83X\83g*/
+               CREATURE_LIST creatureList;     /*!<\91S\83N\83\8a\81[\83`\83\83\81[\83\8a\83X\83g*/
                std::map<ID, boost::shared_ptr<Field>> fieldList;                  /*!<\91S\83t\83\8d\83A\83\8a\83X\83g*/
                std::map<ID, boost::shared_ptr<Trap>> trapList;                    /*!<\91S\83g\83\89\83b\83v\83\8a\83X\83g*/
 
@@ -88,8 +94,10 @@ namespace Deeangband
                ID trapID;     //!<\8bó\82«\83g\83\89\83b\83vID
 
                std::vector<boost::shared_ptr<HaveGameTime>> actionList; /*!<\8ds\93®\8f\87\83\8a\83X\83g*/
+               std::vector<Creature *> actionList2; /*!<\8ds\93®\8f\87\83\8a\83X\83g*/
+               std::vector<HaveGameTime*> actionList3; /*!<\8ds\93®\8f\87\83\8a\83X\83g*/
 
-               Creature *playerPtr; //!< \83v\83\8c\83C\83\84\81[\83N\83\8a\81[\83`\83\83\81[\8eQ\8fÆ\83|\83C\83\93\83^
+               CREATURE_IT playerIt; //!< \83v\83\8c\83C\83\84\81[\83N\83\8a\81[\83`\83\83\81[\8eQ\8fÆ\83|\83C\83\93\83^
                GAME_TIME gameTime; //!<\83Q\81[\83\80\8e\9e\8aÔ
 
                friend class boost::serialization::access;
@@ -300,22 +308,28 @@ namespace Deeangband
        public:
 
                /*!
-               * @brief GameWorld\83N\83\89\83X\82Ì\83R\83\93\83X\83g\83\89\83N\83^
-               * @param gSurface \83Q\81[\83\80\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\82Æ\82È\82é GameSurface \8eQ\8fÆ
-               */
+                * @brief GameWorld\83N\83\89\83X\82Ì\83R\83\93\83X\83g\83\89\83N\83^
+                * @param gSurface \83Q\81[\83\80\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\82Æ\82È\82é GameSurface \8eQ\8fÆ
+                */
                GameWorld::GameWorld(void);
 
                /*!
-               * @brief GameWorld\83N\83\89\83X\82Ì\83f\83X\83g\83\89\83N\83^
-               */
+                * @brief GameWorld\83N\83\89\83X\82Ì\83f\83X\83g\83\89\83N\83^
+                */
                GameWorld::~GameWorld(void);
 
                /*!
+                * @brief \83Q\81[\83\80\90¢\8aE\82Ì\8f\89\8aú\90\90¬\82ð\8ds\82¤
+                */
+               void GameWorld::Initialize(void);
+
+
+               /*!
                * @brief \83N\83\8a\81[\83`\83\83\81[\82ð\90\90¬\82µGameWorld\92\86\82Ì\8f\94\97v\91f\82Æ\98A\8cg\82³\82¹\82é
                * @param creatureTag \83N\83\8a\81[\83`\83\83\81[\83^\83O
                * @return \90\90¬\82É\90¬\8c÷\82µ\82½\8fê\8d\87true\82ð\95Ô\82·
                */
-               bool GameWorld::GenerateCreature(TAG creatureTag);
+               bool GameWorld::GenerateCreature(std::map<TAG, boost::shared_ptr<Species>>::iterator& speciesIt);
 
                /*!
                * @brief \83N\83\8a\81[\83`\83\83\81[\82ð\90\90¬\82µGameWorld\92\86\82Ì\8f\94\97v\91f\82Æ\98A\8cg\82³\82¹\82é
@@ -325,7 +339,7 @@ namespace Deeangband
                * @param y \94z\92u\90æY\8dÀ\95W
                * @return \90\90¬\82É\90¬\8c÷\82µ\82½\8fê\8d\87true\82ð\95Ô\82·
                */
-               bool GameWorld::GenerateCreature(TAG creatureTag, ID fieldID, int x, int y);
+               bool GameWorld::GenerateCreature(std::map<TAG, boost::shared_ptr<Species>>::iterator& speciesIt, std::map<ID, boost::shared_ptr<Field>>::iterator& fieldIt, MAP_LENGTH x, MAP_LENGTH y);
 
                /*!
                * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\8c \94\\82ð\95Ô\82·
@@ -463,7 +477,7 @@ namespace Deeangband
                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·
                 * @return \91S\83N\83\8a\81[\83`\83\83\81[\82Ì\83\8a\83X\83g
                 */
-               std::map<ID, boost::shared_ptr<Creature>> *GameWorld::GetCreatureList(void);
+               CREATURE_LIST *GameWorld::GetCreatureList(void);
 
                /*!
                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83N\83G\83X\83g\82ð\95Ô\82·
@@ -500,13 +514,13 @@ namespace Deeangband
                 * @brief \83v\83\8c\83C\83\84\81[\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·
                 * @return \83v\83\8c\83C\83\84\81[\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
                 */
-               Creature *GameWorld::GetPlayerCreature(void);
+               CREATURE_IT GameWorld::GetPlayerCreature(void);
 
                /*!
                 * @brief \8ds\93®\8f\87\83\8a\83X\83g\82ð\95Ô\82·
                 * @return \8ds\93®\8f\87\83\8a\83X\83g
                 */
-               std::vector<boost::shared_ptr<HaveGameTime>>* GameWorld::GetActionList(void);
+               ACTION_LIST *GameWorld::GetActionList(void);
 
                /*!
                 * @brief \8ew\92è\83t\83B\81[\83\8b\83h\8by\82Ñ\8dÀ\95W\82É\91\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82ª\82¢\82é\82©\82ð\94»\95Ê\82µ\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·\81B
@@ -528,6 +542,13 @@ namespace Deeangband
 
                std::map<TAG, boost::shared_ptr<Species>> *GameWorld::GetSpeciesList(void);
 
+               /*!
+                * @brief \8e\9e\8aÔ\8co\89ß\8f\88\97\9d\82ð\8ds\82¢\81A\8e\9f\82Ì\83A\83N\83V\83\87\83\93\83I\83u\83W\83F\83N\83g\82ð\95Ô\82·\81B
+                * @return \8ds\93®\8f\87\83\8a\83X\83g
+                */
+               HaveGameTime *GameWorld::GetNextActionObject(void);
+
+
        };
 
 }
\ No newline at end of file