#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
//\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*/
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;
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é
* @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·
* @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·
* @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
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