#include "stdafx.h"
#include "Deeangband.h"
-#include "Authority.h"
-#include "Building.h"
-#include "Camp.h"
-#include "Creature.h"
-#include "CreatureTrait.h"
-#include "Dungeon.h"
-#include "Effect.h"
-#include "Feature.h"
-#include "FixedArtifact.h"
-#include "ItemBase.h"
-#include "ItemEgo.h"
-#include "ItemTrait.h"
-#include "Karma.h"
-#include "Quest.h"
-#include "Skill.h"
-#include "Species.h"
-#include "TrapBase.h"
-
-#include "Item.h"
-#include "Creature.h"
-#include "Floor.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
private:
//\90Ã\93I\83f\81[\83^\83\8a\83X\83g
+ std::map<TAG, boost::shared_ptr<Air>> airList; /*!<\91S\91å\8bC\92n\8c`\83\8a\83X\83g*/
+ std::map<TAG, boost::shared_ptr<Ability>> abilityList; /*!<\91S\94\93®\8bZ\94\\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Authority>> authorityList; /*!<\91S\8c \94\\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Building>> buildingList; /*!<\91S\8e{\90Ý\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Camp>> campList; /*!<\91S\90w\89c\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<CreatureTrait>> creatureTraitList; /*!<\91S\83N\83\8a\81[\83`\83\83\81[\93Á\90«\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Dungeon>> dungeonList; /*!<\91S\83_\83\93\83W\83\87\83\93\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Effect>> effectList; /*!<\91S\8cø\89Ê\91®\90«\83\8a\83X\83g*/
- std::map<TAG, boost::shared_ptr<Feature>> featureList; /*!<\91S\92n\8c`\83\8a\83X\83g*/
+ std::map<TAG, boost::shared_ptr<Floor>> floorList; /*!<\91S\8f°\92n\8c`\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<FixedArtifact>> fixedArtifactList; /*!<\91S\8cÅ\92è\83A\81[\83e\83B\83t\83@\83N\83g\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<ItemBase>> itemBaseList; /*!<\91S\83A\83C\83e\83\80\83x\81[\83X\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<ItemEgo>> itemEgoList; /*!<\91S\83A\83C\83e\83\80\83G\83S\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<ItemTrait>> itemTraitList; /*!<\91S\83A\83C\83e\83\80\93Á\90«\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Karma>> karmaList; /*!<\91S\83J\83\8b\83}\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Quest>> questList; /*!<\91S\83N\83G\83X\83g\93Á\90«\83\8a\83X\83g*/
+ std::map<TAG, boost::shared_ptr<Space>> spaceList; /*!<\91S\8bó\8aÔ\92n\8c`\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Skill>> skillList; /*!<\91S\83X\83L\83\8b\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<Species>> speciesList; /*!<\91S\83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\83\8a\83X\83g*/
+ std::map<TAG, boost::shared_ptr<StartingClass>> startingClassList; /*!<\91S\8fo\8e©\83\8a\83X\83g*/
+ std::map<TAG, boost::shared_ptr<Race>> raceList; /*!<\91S\8eí\91°\83\8a\83X\83g*/
std::map<TAG, boost::shared_ptr<TrapBase>> trapBaseList; /*!<\91S\83g\83\89\83b\83v\83x\81[\83X\8eí\95Ê\83\8a\83X\83g*/
//\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*/
- std::map<ID, boost::shared_ptr<Floor>> floorList; /*!<\91S\83t\83\8d\83A\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*/
- Creature *playerPtr; //!< \83v\83\8c\83C\83\84\81[\83N\83\8a\81[\83`\83\83\81[\8eQ\8fÆ\83|\83C\83\93\83^
+ ID itemID; //!<\8bó\82«\83A\83C\83e\83\80ID
+ ID creatureID; //!<\8bó\82«\83N\83\8a\81[\83`\83\83\81[ID
+ ID fieldID; //!<\8bó\82«\83t\83B\81[\83\8b\83hID
+ 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_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;
/*!
- * @brief \8c \94\\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \91å\8bC\92n\8c`\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ */
+ bool GameWorld::xmlSaveAir(void);
+
+ /*!
+ * @brief \94\93®\8bZ\94\\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ */
+ bool GameWorld::xmlSaveAbility(void);
+
+ /*!
+ * @brief \8c \94\\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveAuthority(void);
/*!
- * @brief \8e{\90Ý\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \8e{\90Ý\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveBuilding(void);
/*!
- * @brief \90w\89c\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \90w\89c\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveCamp(void);
/*!
- * @brief \83_\83\93\83W\83\87\83\93\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \83N\83\8a\81[\83`\83\83\81[\93Á\90«\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ */
+ bool GameWorld::xmlSaveCreatureTrait(void);
+
+ /*!
+ * @brief \83_\83\93\83W\83\87\83\93\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveDungeon(void);
/*!
- * @brief \8cø\89Ê\91®\90«\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \8cø\89Ê\91®\90«\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveEffect(void);
/*!
- * @brief \92n\8c`\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \92n\8c`\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
- bool GameWorld::xmlSaveFeature(void);
+ bool GameWorld::xmlSaveFloor(void);
/*!
- * @brief \8cÅ\92è\83A\81[\83e\83B\83t\83@\83N\83g\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \8cÅ\92è\83A\81[\83e\83B\83t\83@\83N\83g\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveFixedArtifact(void);
/*!
- * @brief \83x\81[\83X\83A\83C\83e\83\80\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \83x\81[\83X\83A\83C\83e\83\80\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveItemBase(void);
/*!
- * @brief \83A\83C\83e\83\80\83G\83S\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \83A\83C\83e\83\80\83G\83S\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveItemEgo(void);
/*!
- * @brief \83A\83C\83e\83\80\93Á\90«\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \83A\83C\83e\83\80\93Á\90«\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveItemTrait(void);
/*!
- * @brief \83J\83\8b\83}\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \83J\83\8b\83}\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveKarma(void);
/*!
- * @brief \83N\83G\83X\83g\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \83N\83G\83X\83g\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveQuest(void);
/*!
- * @brief \83X\83L\83\8b\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \83N\83G\83X\83g\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \8f\91\82«\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \8f\91\82«\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ */
+ bool GameWorld::xmlSaveRace(void);
+
+ /*!
+ * @brief \83X\83L\83\8b\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveSkill(void);
/*!
- * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \8bó\8aÔ\92n\8c`\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ */
+ bool GameWorld::xmlSaveSpace(void);
+
+ /*!
+ * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveSpecie(void);
/*!
- * @brief \83x\81[\83X\83g\83\89\83b\83v\8fî\95ñ\82Ì\83\8d\81[\83h
- * @return \93Ç\82Ý\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
- * @todo \93Ç\82Ý\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ * @brief \8fo\8e©\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
+ */
+ bool GameWorld::xmlSaveStartingClass(void);
+
+ /*!
+ * @brief \83x\81[\83X\83g\83\89\83b\83v\8fî\95ñ\82Ì\83Z\81[\83u
+ * @return \95Û\91¶\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
+ * @todo \95Û\91¶\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
*/
bool GameWorld::xmlSaveTrapBase(void);
+ bool GameWorld::xmlLoadAir(void);
+ bool GameWorld::xmlLoadAbility(void);
+ bool GameWorld::xmlLoadAuthority(void);
+ bool GameWorld::xmlLoadBuilding(void);
+ bool GameWorld::xmlLoadCamp(void);
+ bool GameWorld::xmlLoadCreatureTrait(void);
+ bool GameWorld::xmlLoadDungeon(void);
+ bool GameWorld::xmlLoadEffect(void);
+ bool GameWorld::xmlLoadFloor(void);
+ bool GameWorld::xmlLoadFixedArtifact(void);
+ bool GameWorld::xmlLoadItemBase(void);
+ bool GameWorld::xmlLoadItemEgo(void);
+ bool GameWorld::xmlLoadItemTrait(void);
+ bool GameWorld::xmlLoadKarma(void);
+ bool GameWorld::xmlLoadQuest(void);
+ bool GameWorld::xmlLoadRace(void);
+ bool GameWorld::xmlLoadSpace(void);
+ bool GameWorld::xmlLoadSkill(void);
+ bool GameWorld::xmlLoadSpecie(void);
+ bool GameWorld::xmlLoadStartingClass(void);
+ bool GameWorld::xmlLoadTrapBase(void);
+
/*!
* @brief \83N\83\89\83X\82Ì\83V\83\8a\83A\83\89\83C\83Y\82ð\90Ý\92è\82·\82é
* @param archive \83A\81[\83J\83C\83u\89»\82·\82é\83N\83\89\83X\82Ì\83A\83h\83\8c\83X
archive & boost::serialization::make_nvp("Camps", campList);
archive & boost::serialization::make_nvp("Dungeons", dungeonList);
archive & boost::serialization::make_nvp("Effects", effectList);
- archive & boost::serialization::make_nvp("Features", featureList);
+ archive & boost::serialization::make_nvp("Floors", floorList);
archive & boost::serialization::make_nvp("FixedArtifacts", fixedArtifactList);
archive & boost::serialization::make_nvp("ItemBases", itemBaseList);
archive & boost::serialization::make_nvp("ItemEgos", itemEgoList);
archive & boost::serialization::make_nvp("Species", speciesList);
archive & boost::serialization::make_nvp("TrapBases", trapBaseList);
+ archive & boost::serialization::make_nvp("Authorities", authorityList);
archive & boost::serialization::make_nvp("Creatures", creatureList);
archive & boost::serialization::make_nvp("Items", itemList);
- archive & boost::serialization::make_nvp("Floors", floorList);
+ archive & boost::serialization::make_nvp("Fields", fieldList);
archive & boost::serialization::make_nvp("Traps", trapList);
}
}
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(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 creatureTag \83N\83\8a\81[\83`\83\83\81[\83^\83O
+ * @param fieldID \94z\92u\90æ\83t\83B\81[\83\8b\83hID
+ * @param x \94z\92u\90æX\8dÀ\95W
+ * @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(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·
* @param tag \8c \94\\82Ì\83^\83O
* @return \8c \94\\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
* @param tag \92n\8c`\82Ì\83^\83O
* @return \92n\8c`\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
*/
- Feature *GameWorld::GetFeature(TAG tag);
+ Floor *GameWorld::GetFloor(TAG tag);
/*!
* @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83x\81[\83X\83A\83C\83e\83\80\82ð\95Ô\82·
ItemTrait *GameWorld::GetItemTrait(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83J\83\8b\83}\82ð\95Ô\82·
- * @param tag \83J\83\8b\83}\82Ì\83^\83O
- * @return \83J\83\8b\83}\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83J\83\8b\83}\82ð\95Ô\82·
+ * @param tag \83J\83\8b\83}\82Ì\83^\83O
+ * @return \83J\83\8b\83}\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Karma *GameWorld::GetKarma(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83X\83L\83\8b\82ð\95Ô\82·
- * @param tag \83X\83L\83\8b\82Ì\83^\83O
- * @return \83X\83L\83\8b\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83X\83L\83\8b\82ð\95Ô\82·
+ * @param tag \83X\83L\83\8b\82Ì\83^\83O
+ * @return \83X\83L\83\8b\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Skill *GameWorld::GetSkill(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83X\83L\83\8b\82ð\95Ô\82·
- * @param tag \83X\83L\83\8b\82Ì\83^\83O
- * @return \83X\83L\83\8b\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83X\83L\83\8b\82ð\95Ô\82·
+ * @param tag \83X\83L\83\8b\82Ì\83^\83O
+ * @return \83X\83L\83\8b\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Species *GameWorld::GetSpecies(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83g\83\89\83b\83v\8eí\95Ê\82ð\95Ô\82·
- * @param tag \83g\83\89\83b\83v\8eí\95Ê\82Ì\83^\83O
- * @return \83g\83\89\83b\83v\8eí\95Ê\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83g\83\89\83b\83v\8eí\95Ê\82ð\95Ô\82·
+ * @param tag \83g\83\89\83b\83v\8eí\95Ê\82Ì\83^\83O
+ * @return \83g\83\89\83b\83v\8eí\95Ê\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
TrapBase *GameWorld::GetTrapBase(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\8e{\90Ý\82ð\95Ô\82·
- * @param tag \8e{\90Ý\82Ì\83^\83O
- * @return \8e{\90Ý\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\8e{\90Ý\82ð\95Ô\82·
+ * @param tag \8e{\90Ý\82Ì\83^\83O
+ * @return \8e{\90Ý\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Building *GameWorld::GetBuilding(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\90w\89c\82ð\95Ô\82·
- * @param tag \90w\89c\82Ì\83^\83O
- * @return \90w\89c\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\90w\89c\82ð\95Ô\82·
+ * @param tag \90w\89c\82Ì\83^\83O
+ * @return \90w\89c\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Camp *GameWorld::GetCamp(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83_\83\93\83W\83\87\83\93\82ð\95Ô\82·
- * @param tag \83_\83\93\83W\83\87\83\93\82Ì\83^\83O
- * @return \83_\83\93\83W\83\87\83\93\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83_\83\93\83W\83\87\83\93\82ð\95Ô\82·
+ * @param tag \83_\83\93\83W\83\87\83\93\82Ì\83^\83O
+ * @return \83_\83\93\83W\83\87\83\93\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Dungeon *GameWorld::GetDungeon(TAG tag);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83A\83C\83e\83\80\82ð\95Ô\82·
- * @param id \83A\83C\83e\83\80\82ÌID
- * @return \83A\83C\83e\83\80\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83A\83C\83e\83\80\82ð\95Ô\82·
+ * @param id \83A\83C\83e\83\80\82ÌID
+ * @return \83A\83C\83e\83\80\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Item *GameWorld::GetItem(ID id);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83t\83\8d\83A\82ð\95Ô\82·
- * @param id \83t\83\8d\83A\82ÌID
- * @return \83t\83\8d\83A\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
- Floor *GameWorld::GetFloor(ID id);
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83t\83\8d\83A\82ð\95Ô\82·
+ * @param id \83t\83\8d\83A\82ÌID
+ * @return \83t\83\8d\83A\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
+ Field *GameWorld::GetField(ID id);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·
- * @param id \83N\83\8a\81[\83`\83\83\81[\82ÌID
- * @return \83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·
+ * @param id \83N\83\8a\81[\83`\83\83\81[\82ÌID
+ * @return \83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Creature *GameWorld::GetCreature(ID id);
/*!
- * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83N\83G\83X\83g\82ð\95Ô\82·
- * @param tag \83N\83G\83X\83g\82Ì\83^\83O
- * @return \83N\83G\83X\83g\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
- */
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\94\93®\8bZ\94\\82ð\95Ô\82·
+ * @return \91S\94\93®\8bZ\94\\82Ì\83\8a\83X\83g
+ */
+ std::map<TAG, boost::shared_ptr<Ability>> *GameWorld::GetAbilityList(void);
+
+ /*!
+ * @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
+ */
+ CREATURE_LIST *GameWorld::GetCreatureList(void);
+
+ /*!
+ * @brief GameWorld\92\86\82É\91¶\8dÝ\82·\82é\83N\83G\83X\83g\82ð\95Ô\82·
+ * @param tag \83N\83G\83X\83g\82Ì\83^\83O
+ * @return \83N\83G\83X\83g\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
+ */
Quest *GameWorld::GetQuest(TAG tag);
/*!
- * @brief \83Q\81[\83\80\8e\9e\8aÔ\82ð\95Ô\82·
- * @return \83Q\81[\83\80\8e\9e\8aÔ
- */
+ * @brief \83Q\81[\83\80\8e\9e\8aÔ\82ð\95Ô\82·
+ * @return \83Q\81[\83\80\8e\9e\8aÔ
+ */
GAME_TIME GameWorld::GetGameTime(void);
/*!
- * @brief XML\83V\83\8a\83A\83\89\83C\83Y\82É\82æ\82é\83Q\81[\83\80\83f\81[\83^\95Û\91¶\8f\88\97\9d
- * @return \82È\82µ
- */
+ * @brief XML\83V\83\8a\83A\83\89\83C\83Y\82É\82æ\82é\83Q\81[\83\80\83f\81[\83^\95Û\91¶\8f\88\97\9d
+ * @return \82È\82µ
+ */
bool GameWorld::XMLSave(void);
/*!
- * @brief XML\83f\83V\83\8a\83A\83\89\83C\83Y\82É\82æ\82é\83Q\81[\83\80\83f\81[\83^\93Ç\8d\9e\8f\88\97\9d
- * @return \82È\82µ
- */
+ * @brief XML\83f\83V\83\8a\83A\83\89\83C\83Y\82É\82æ\82é\83Q\81[\83\80\83f\81[\83^\93Ç\8d\9e\8f\88\97\9d
+ * @return \82È\82µ
+ */
void GameWorld::XMLLoad(void);
/*!
* @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
+ */
+ 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
+ * @param fieldID \83t\83B\81[\83\8b\83hID
+ * @param positionPtr \8dÀ\95W\83|\83C\83\93\83^
+ * @param \91¶\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82Ì\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¢\8fê\8d\87NULL\81B
+ */
+ Creature *GameWorld::GetCreatureFromPosition(ID fieldID, Coordinates *positionPtr);
+
+ /*!
+ * @brief \8ew\92è\83t\83B\81[\83\8b\83h\8by\82Ñ\8dÀ\95W\82É\91¶\8dÝ\82·\82é\92n\8c`\8fî\95ñ\82ð\95Ô\82·\81B
+ * @param fieldID \83t\83B\81[\83\8b\83hID
+ * @param positionPtr \8dÀ\95W\83|\83C\83\93\83^
+ * @param \91¶\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82Ì\83|\83C\83\93\83^\81A\91¶\8dÝ\82µ\82È\82¢\8fê\8d\87NULL\81B
+ */
+ Floor *GameWorld::GetFloorFromPosition(ID fieldID, Coordinates *positionPtr);
+
+ std::map<TAG, boost::shared_ptr<Floor>> *GameWorld::GetFloorList(void);
+
+ 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);
+
};