X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=Deeangband%2FGameWorld.h;h=b0795b2096f17cdaab4125ba58860f6d4373e223;hb=84b021f7c003f72f643b26cb00661b4848c7e0f2;hp=622d2ce8f7566b03e728b5a473c314509238c7e6;hpb=4ec6b8722e2e0131db4b176afba2f51b156202db;p=deeangband%2FDeeangband-new.git diff --git a/Deeangband/GameWorld.h b/Deeangband/GameWorld.h index 622d2ce..b0795b2 100644 --- a/Deeangband/GameWorld.h +++ b/Deeangband/GameWorld.h @@ -11,34 +11,46 @@ #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 ƒQ[ƒ€¢ŠE‚̃Nƒ‰ƒX @@ -48,139 +60,217 @@ namespace Deeangband private: //Ã“Iƒf[ƒ^ƒŠƒXƒg + std::map> airList; /*!<‘S‘å‹C’nŒ`ƒŠƒXƒg*/ + std::map> abilityList; /*!<‘S”­“®‹Z”\ƒŠƒXƒg*/ std::map> authorityList; /*!<‘SŒ ”\ƒŠƒXƒg*/ std::map> buildingList; /*!<‘SŽ{ÝƒŠƒXƒg*/ std::map> campList; /*!<‘Sw‰cƒŠƒXƒg*/ std::map> creatureTraitList; /*!<‘SƒNƒŠ[ƒ`ƒƒ[“Á«ƒŠƒXƒg*/ std::map> dungeonList; /*!<‘Sƒ_ƒ“ƒWƒ‡ƒ“ƒŠƒXƒg*/ std::map> effectList; /*!<‘SŒø‰Ê‘®«ƒŠƒXƒg*/ - std::map> featureList; /*!<‘S’nŒ`ƒŠƒXƒg*/ + std::map> floorList; /*!<‘S°’nŒ`ƒŠƒXƒg*/ std::map> fixedArtifactList; /*!<‘SŒÅ’èƒA[ƒeƒBƒtƒ@ƒNƒgƒŠƒXƒg*/ std::map> itemBaseList; /*!<‘SƒAƒCƒeƒ€ƒx[ƒXƒŠƒXƒg*/ std::map> itemEgoList; /*!<‘SƒAƒCƒeƒ€ƒGƒSƒŠƒXƒg*/ std::map> itemTraitList; /*!<‘SƒAƒCƒeƒ€“Á«ƒŠƒXƒg*/ std::map> karmaList; /*!<‘SƒJƒ‹ƒ}ƒŠƒXƒg*/ std::map> questList; /*!<‘SƒNƒGƒXƒg“Á«ƒŠƒXƒg*/ + std::map> spaceList; /*!<‘S‹óŠÔ’nŒ`ƒŠƒXƒg*/ std::map> skillList; /*!<‘SƒXƒLƒ‹ƒŠƒXƒg*/ std::map> speciesList; /*!<‘SƒNƒŠ[ƒ`ƒƒ[Ží•ÊƒŠƒXƒg*/ + std::map> startingClassList; /*!<‘SoŽ©ƒŠƒXƒg*/ + std::map> raceList; /*!<‘SŽí‘°ƒŠƒXƒg*/ std::map> trapBaseList; /*!<‘Sƒgƒ‰ƒbƒvƒx[ƒXŽí•ÊƒŠƒXƒg*/ //“®“Iƒf[ƒ^ƒŠƒXƒg std::map> itemList; /*!<‘SƒAƒCƒeƒ€ƒŠƒXƒg*/ - std::map> creatureList; /*!<‘SƒNƒŠ[ƒ`ƒƒ[ƒŠƒXƒg*/ - std::map> floorList; /*!<‘SƒtƒƒAƒŠƒXƒg*/ + CREATURE_LIST creatureList; /*!<‘SƒNƒŠ[ƒ`ƒƒ[ƒŠƒXƒg*/ + std::map> fieldList; /*!<‘SƒtƒƒAƒŠƒXƒg*/ std::map> trapList; /*!<‘Sƒgƒ‰ƒbƒvƒŠƒXƒg*/ - Creature *playerPtr; //!< ƒvƒŒƒCƒ„[ƒNƒŠ[ƒ`ƒƒ[ŽQÆƒ|ƒCƒ“ƒ^ + ID itemID; //!<‹ó‚«ƒAƒCƒeƒ€ID + ID creatureID; //!<‹ó‚«ƒNƒŠ[ƒ`ƒƒ[ID + ID fieldID; //!<‹ó‚«ƒtƒB[ƒ‹ƒhID + ID trapID; //!<‹ó‚«ƒgƒ‰ƒbƒvID + + std::vector> actionList; /*!<s“®‡ƒŠƒXƒg*/ + std::vector actionList2; /*!<s“®‡ƒŠƒXƒg*/ + std::vector actionList3; /*!<s“®‡ƒŠƒXƒg*/ + + CREATURE_IT playerIt; //!< ƒvƒŒƒCƒ„[ƒNƒŠ[ƒ`ƒƒ[ŽQÆƒ|ƒCƒ“ƒ^ GAME_TIME gameTime; //!<ƒQ[ƒ€ŽžŠÔ friend class boost::serialization::access; /*! - * @brief Œ ”\î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ‘å‹C’nŒ`î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è + */ + bool GameWorld::xmlSaveAir(void); + + /*! + * @brief ”­“®‹Z”\‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è + */ + bool GameWorld::xmlSaveAbility(void); + + /*! + * @brief Œ ”\î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveAuthority(void); /*! - * @brief Ž{Ýî•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief Ž{Ýî•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveBuilding(void); /*! - * @brief w‰cî•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief w‰cî•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveCamp(void); /*! - * @brief ƒ_ƒ“ƒWƒ‡ƒ“î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ƒNƒŠ[ƒ`ƒƒ[“Á«‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è + */ + bool GameWorld::xmlSaveCreatureTrait(void); + + /*! + * @brief ƒ_ƒ“ƒWƒ‡ƒ“î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveDungeon(void); /*! - * @brief Œø‰Ê‘®«î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief Œø‰Ê‘®«î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveEffect(void); /*! - * @brief ’nŒ`î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ’nŒ`î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ - bool GameWorld::xmlSaveFeature(void); + bool GameWorld::xmlSaveFloor(void); /*! - * @brief ŒÅ’èƒA[ƒeƒBƒtƒ@ƒNƒgî•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ŒÅ’èƒA[ƒeƒBƒtƒ@ƒNƒgî•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveFixedArtifact(void); /*! - * @brief ƒx[ƒXƒAƒCƒeƒ€î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ƒx[ƒXƒAƒCƒeƒ€î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveItemBase(void); /*! - * @brief ƒAƒCƒeƒ€ƒGƒSî•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ƒAƒCƒeƒ€ƒGƒSî•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveItemEgo(void); /*! - * @brief ƒAƒCƒeƒ€“Á«î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ƒAƒCƒeƒ€“Á«î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveItemTrait(void); /*! - * @brief ƒJƒ‹ƒ}î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ƒJƒ‹ƒ}î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveKarma(void); /*! - * @brief ƒNƒGƒXƒgî•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ƒNƒGƒXƒgî•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveQuest(void); /*! - * @brief ƒXƒLƒ‹î•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ƒNƒGƒXƒgî•ñ‚̃Z[ƒu + * @return ‘‚«ž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo ‘‚«ž‚ݏˆ—‚̃Gƒ‰[”»’è + */ + bool GameWorld::xmlSaveRace(void); + + /*! + * @brief ƒXƒLƒ‹î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveSkill(void); /*! - * @brief ƒNƒŠ[ƒ`ƒƒ[Ží•Êî•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief ‹óŠÔ’nŒ`î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è + */ + bool GameWorld::xmlSaveSpace(void); + + /*! + * @brief ƒNƒŠ[ƒ`ƒƒ[Ží•Êî•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ bool GameWorld::xmlSaveSpecie(void); /*! - * @brief ƒx[ƒXƒgƒ‰ƒbƒvî•ñ‚̃[ƒh - * @return “ǂݍž‚݂ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· - * @todo “ǂݍž‚ݏˆ—‚̃Gƒ‰[”»’è + * @brief oŽ©î•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è + */ + bool GameWorld::xmlSaveStartingClass(void); + + /*! + * @brief ƒx[ƒXƒgƒ‰ƒbƒvî•ñ‚̃Z[ƒu + * @return •Û‘¶‚ɐ¬Œ÷‚·‚ê‚ÎTRUE‚ð•Ô‚· + * @todo •Û‘¶ˆ—‚̃Gƒ‰[”»’è */ 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 ƒNƒ‰ƒX‚̃VƒŠƒAƒ‰ƒCƒY‚ðÝ’è‚·‚é * @param archive ƒA[ƒJƒCƒu‰»‚·‚éƒNƒ‰ƒX‚̃AƒhƒŒƒX @@ -196,7 +286,7 @@ namespace Deeangband 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); @@ -207,9 +297,10 @@ namespace Deeangband 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); } } @@ -217,17 +308,40 @@ namespace Deeangband public: /*! - * @brief GameWorldƒNƒ‰ƒX‚̃Rƒ“ƒXƒgƒ‰ƒNƒ^ - * @param gSurface ƒQ[ƒ€‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚Æ‚È‚é GameSurface ŽQÆ - */ + * @brief GameWorldƒNƒ‰ƒX‚̃Rƒ“ƒXƒgƒ‰ƒNƒ^ + * @param gSurface ƒQ[ƒ€‚̃Cƒ“ƒ^[ƒtƒFƒCƒX‚Æ‚È‚é GameSurface ŽQÆ + */ GameWorld::GameWorld(void); /*! - * @brief GameWorldƒNƒ‰ƒX‚̃fƒXƒgƒ‰ƒNƒ^ - */ + * @brief GameWorldƒNƒ‰ƒX‚̃fƒXƒgƒ‰ƒNƒ^ + */ GameWorld::~GameWorld(void); /*! + * @brief ƒQ[ƒ€¢ŠE‚̏‰Šú¶¬‚ðs‚¤ + */ + void GameWorld::Initialize(void); + + + /*! + * @brief ƒNƒŠ[ƒ`ƒƒ[‚𐶐¬‚µGameWorld’†‚̏”—v‘f‚ƘAŒg‚³‚¹‚é + * @param creatureTag ƒNƒŠ[ƒ`ƒƒ[ƒ^ƒO + * @return ¶¬‚ɐ¬Œ÷‚µ‚½ê‡true‚ð•Ô‚· + */ + bool GameWorld::GenerateCreature(std::map>::iterator& speciesIt); + + /*! + * @brief ƒNƒŠ[ƒ`ƒƒ[‚𐶐¬‚µGameWorld’†‚̏”—v‘f‚ƘAŒg‚³‚¹‚é + * @param creatureTag ƒNƒŠ[ƒ`ƒƒ[ƒ^ƒO + * @param fieldID ”z’uæƒtƒB[ƒ‹ƒhID + * @param x ”z’uæXÀ•W + * @param y ”z’uæYÀ•W + * @return ¶¬‚ɐ¬Œ÷‚µ‚½ê‡true‚ð•Ô‚· + */ + bool GameWorld::GenerateCreature(std::map>::iterator& speciesIt, std::map>::iterator& fieldIt, MAP_LENGTH x, MAP_LENGTH y); + + /*! * @brief GameWorld’†‚É‘¶Ý‚·‚錠”\‚ð•Ô‚· * @param tag Œ ”\‚̃^ƒO * @return Œ ”\‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B @@ -260,7 +374,7 @@ namespace Deeangband * @param tag ’nŒ`‚̃^ƒO * @return ’nŒ`‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B */ - Feature *GameWorld::GetFeature(TAG tag); + Floor *GameWorld::GetFloor(TAG tag); /*! * @brief GameWorld’†‚É‘¶Ý‚·‚éƒx[ƒXƒAƒCƒeƒ€‚ð•Ô‚· @@ -284,98 +398,110 @@ namespace Deeangband ItemTrait *GameWorld::GetItemTrait(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒJƒ‹ƒ}‚ð•Ô‚· - * @param tag ƒJƒ‹ƒ}‚̃^ƒO - * @return ƒJƒ‹ƒ}‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒJƒ‹ƒ}‚ð•Ô‚· + * @param tag ƒJƒ‹ƒ}‚̃^ƒO + * @return ƒJƒ‹ƒ}‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Karma *GameWorld::GetKarma(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒXƒLƒ‹‚ð•Ô‚· - * @param tag ƒXƒLƒ‹‚̃^ƒO - * @return ƒXƒLƒ‹‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒXƒLƒ‹‚ð•Ô‚· + * @param tag ƒXƒLƒ‹‚̃^ƒO + * @return ƒXƒLƒ‹‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Skill *GameWorld::GetSkill(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒXƒLƒ‹‚ð•Ô‚· - * @param tag ƒXƒLƒ‹‚̃^ƒO - * @return ƒXƒLƒ‹‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒXƒLƒ‹‚ð•Ô‚· + * @param tag ƒXƒLƒ‹‚̃^ƒO + * @return ƒXƒLƒ‹‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Species *GameWorld::GetSpecies(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒgƒ‰ƒbƒvŽí•Ê‚ð•Ô‚· - * @param tag ƒgƒ‰ƒbƒvŽí•Ê‚̃^ƒO - * @return ƒgƒ‰ƒbƒvŽí•Ê‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒgƒ‰ƒbƒvŽí•Ê‚ð•Ô‚· + * @param tag ƒgƒ‰ƒbƒvŽí•Ê‚̃^ƒO + * @return ƒgƒ‰ƒbƒvŽí•Ê‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ TrapBase *GameWorld::GetTrapBase(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éŽ{Ý‚ð•Ô‚· - * @param tag Ž{Ý‚̃^ƒO - * @return Ž{Ý‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éŽ{Ý‚ð•Ô‚· + * @param tag Ž{Ý‚̃^ƒO + * @return Ž{Ý‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Building *GameWorld::GetBuilding(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éw‰c‚ð•Ô‚· - * @param tag w‰c‚̃^ƒO - * @return w‰c‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éw‰c‚ð•Ô‚· + * @param tag w‰c‚̃^ƒO + * @return w‰c‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Camp *GameWorld::GetCamp(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒ_ƒ“ƒWƒ‡ƒ“‚ð•Ô‚· - * @param tag ƒ_ƒ“ƒWƒ‡ƒ“‚̃^ƒO - * @return ƒ_ƒ“ƒWƒ‡ƒ“‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒ_ƒ“ƒWƒ‡ƒ“‚ð•Ô‚· + * @param tag ƒ_ƒ“ƒWƒ‡ƒ“‚̃^ƒO + * @return ƒ_ƒ“ƒWƒ‡ƒ“‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Dungeon *GameWorld::GetDungeon(TAG tag); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒAƒCƒeƒ€‚ð•Ô‚· - * @param id ƒAƒCƒeƒ€‚ÌID - * @return ƒAƒCƒeƒ€‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒAƒCƒeƒ€‚ð•Ô‚· + * @param id ƒAƒCƒeƒ€‚ÌID + * @return ƒAƒCƒeƒ€‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Item *GameWorld::GetItem(ID id); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒtƒƒA‚ð•Ô‚· - * @param id ƒtƒƒA‚ÌID - * @return ƒtƒƒA‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ - Floor *GameWorld::GetFloor(ID id); + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒtƒƒA‚ð•Ô‚· + * @param id ƒtƒƒA‚ÌID + * @return ƒtƒƒA‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ + Field *GameWorld::GetField(ID id); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒNƒŠ[ƒ`ƒƒ[‚ð•Ô‚· - * @param id ƒNƒŠ[ƒ`ƒƒ[‚ÌID - * @return ƒNƒŠ[ƒ`ƒƒ[‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒNƒŠ[ƒ`ƒƒ[‚ð•Ô‚· + * @param id ƒNƒŠ[ƒ`ƒƒ[‚ÌID + * @return ƒNƒŠ[ƒ`ƒƒ[‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Creature *GameWorld::GetCreature(ID id); /*! - * @brief GameWorld’†‚É‘¶Ý‚·‚éƒNƒGƒXƒg‚ð•Ô‚· - * @param tag ƒNƒGƒXƒg‚̃^ƒO - * @return ƒNƒGƒXƒg‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B - */ + * @brief GameWorld’†‚É‘¶Ý‚·‚é”­“®‹Z”\‚ð•Ô‚· + * @return ‘S”­“®‹Z”\‚̃ŠƒXƒg + */ + std::map> *GameWorld::GetAbilityList(void); + + /*! + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒNƒŠ[ƒ`ƒƒ[‚ð•Ô‚· + * @return ‘SƒNƒŠ[ƒ`ƒƒ[‚̃ŠƒXƒg + */ + CREATURE_LIST *GameWorld::GetCreatureList(void); + + /*! + * @brief GameWorld’†‚É‘¶Ý‚·‚éƒNƒGƒXƒg‚ð•Ô‚· + * @param tag ƒNƒGƒXƒg‚̃^ƒO + * @return ƒNƒGƒXƒg‚ÌŽQÆƒ|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¯‚ê‚ÎNULL‚ð•Ô‚·B + */ Quest *GameWorld::GetQuest(TAG tag); /*! - * @brief ƒQ[ƒ€ŽžŠÔ‚ð•Ô‚· - * @return ƒQ[ƒ€ŽžŠÔ - */ + * @brief ƒQ[ƒ€ŽžŠÔ‚ð•Ô‚· + * @return ƒQ[ƒ€ŽžŠÔ + */ GAME_TIME GameWorld::GetGameTime(void); /*! - * @brief XMLƒVƒŠƒAƒ‰ƒCƒY‚É‚æ‚éƒQ[ƒ€ƒf[ƒ^•Û‘¶ˆ— - * @return ‚È‚µ - */ + * @brief XMLƒVƒŠƒAƒ‰ƒCƒY‚É‚æ‚éƒQ[ƒ€ƒf[ƒ^•Û‘¶ˆ— + * @return ‚È‚µ + */ bool GameWorld::XMLSave(void); /*! - * @brief XMLƒfƒVƒŠƒAƒ‰ƒCƒY‚É‚æ‚éƒQ[ƒ€ƒf[ƒ^“Ǎžˆ— - * @return ‚È‚µ - */ + * @brief XMLƒfƒVƒŠƒAƒ‰ƒCƒY‚É‚æ‚éƒQ[ƒ€ƒf[ƒ^“Ǎžˆ— + * @return ‚È‚µ + */ void GameWorld::XMLLoad(void); /*! @@ -388,7 +514,40 @@ namespace Deeangband * @brief ƒvƒŒƒCƒ„[ƒNƒŠ[ƒ`ƒƒ[‚ð•Ô‚· * @return ƒvƒŒƒCƒ„[ƒNƒŠ[ƒ`ƒƒ[‚ÌŽQÆƒ|ƒCƒ“ƒ^ */ - Creature *GameWorld::GetPlayerCreature(void); + CREATURE_IT GameWorld::GetPlayerCreature(void); + + /*! + * @brief s“®‡ƒŠƒXƒg‚ð•Ô‚· + * @return s“®‡ƒŠƒXƒg + */ + ACTION_LIST *GameWorld::GetActionList(void); + + /*! + * @brief Žw’èƒtƒB[ƒ‹ƒh‹y‚эÀ•W‚É‘¶Ý‚·‚éƒNƒŠ[ƒ`ƒƒ[‚ª‚¢‚é‚©‚ð”»•Ê‚µƒNƒŠ[ƒ`ƒƒ[‚ð•Ô‚·B + * @param fieldID ƒtƒB[ƒ‹ƒhID + * @param positionPtr À•Wƒ|ƒCƒ“ƒ^ + * @param ‘¶Ý‚·‚éƒNƒŠ[ƒ`ƒƒ[‚̃|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¢ê‡NULLB + */ + Creature *GameWorld::GetCreatureFromPosition(ID fieldID, Coordinates *positionPtr); + + /*! + * @brief Žw’èƒtƒB[ƒ‹ƒh‹y‚эÀ•W‚É‘¶Ý‚·‚é’nŒ`î•ñ‚ð•Ô‚·B + * @param fieldID ƒtƒB[ƒ‹ƒhID + * @param positionPtr À•Wƒ|ƒCƒ“ƒ^ + * @param ‘¶Ý‚·‚éƒNƒŠ[ƒ`ƒƒ[‚̃|ƒCƒ“ƒ^A‘¶Ý‚µ‚È‚¢ê‡NULLB + */ + Floor *GameWorld::GetFloorFromPosition(ID fieldID, Coordinates *positionPtr); + + std::map> *GameWorld::GetFloorList(void); + + std::map> *GameWorld::GetSpeciesList(void); + + /*! + * @brief ŽžŠÔŒo‰ßˆ—‚ðs‚¢AŽŸ‚̃AƒNƒVƒ‡ƒ“ƒIƒuƒWƒFƒNƒg‚ð•Ô‚·B + * @return s“®‡ƒŠƒXƒg + */ + HaveGameTime *GameWorld::GetNextActionObject(void); + };