OSDN Git Service

インクルードファイル指定と未使用変数警告の修正。 / Fix loading include files and unused value warnings,
[deeangband/Deeangband-new.git] / Deeangband / GameWorld.h
1 /*!
2 * @file GameWorld.h
3 * @brief \83Q\81[\83\80\90¢\8aE\82Ì\83v\83\8d\83g\83^\83C\83v\90é\8c¾
4 * @date 2013/02/01
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 "Air.h"
15 #include "Ability.h"
16 #include "Authority.h"
17 #include "Building.h"
18 #include "Camp.h"
19 #include "Creature.h"
20 #include "CreatureTrait.h"
21 #include "Dungeon.h"
22 #include "Effect.h"
23 #include "Floor.h"
24 #include "FixedArtifact.h"
25 #include "GameMessage.h"
26 #include "ItemBase.h"
27 #include "ItemEgo.h"
28 #include "ItemTrait.h"
29 #include "Karma.h"
30 #include "Lore.h"
31 #include "Quest.h"
32 #include "Race.h"
33 #include "Space.h"
34 #include "Skill.h"
35 #include "Species.h"
36 #include "StartingClass.h"
37 #include "TrapBase.h"
38
39 #include "Item.h"
40 #include "Creature.h"
41 #include "Field.h"
42 #include "Trap.h"
43
44 BOOST_CLASS_VERSION(GameWorld, 1);
45
46 namespace Deeangband
47 {
48 #include "EngineTypedef.h"
49
50         /*!
51         * @class GameWorld
52         * @brief \83Q\81[\83\80\90¢\8aE\82Ì\83N\83\89\83X
53         */
54         class GameWorld
55         {
56         private:
57
58                 //\90Ã\93I\83f\81[\83^\83\8a\83X\83g
59                 std::map<TAG, boost::shared_ptr<Air>> airList;                      /*!<\91S\91å\8bC\92n\8c`\83\8a\83X\83g*/
60                 std::map<TAG, boost::shared_ptr<Ability>> abilityList;              /*!<\91S\94­\93®\8bZ\94\\83\8a\83X\83g*/
61                 std::map<TAG, boost::shared_ptr<Authority>> authorityList;          /*!<\91S\8c \94\\83\8a\83X\83g*/
62                 std::map<TAG, boost::shared_ptr<Building>> buildingList;            /*!<\91S\8e{\90Ý\83\8a\83X\83g*/
63                 std::map<TAG, boost::shared_ptr<Camp>> campList;                    /*!<\91S\90w\89c\83\8a\83X\83g*/
64                 std::map<TAG, boost::shared_ptr<CreatureTrait>> creatureTraitList;  /*!<\91S\83N\83\8a\81[\83`\83\83\81[\93Á\90«\83\8a\83X\83g*/
65                 std::map<TAG, boost::shared_ptr<Dungeon>> dungeonList;              /*!<\91S\83_\83\93\83W\83\87\83\93\83\8a\83X\83g*/
66                 std::map<TAG, boost::shared_ptr<Effect>> effectList;                /*!<\91S\8cø\89Ê\91®\90«\83\8a\83X\83g*/
67                 std::map<TAG, boost::shared_ptr<Floor>> floorList;                  /*!<\91S\8f°\92n\8c`\83\8a\83X\83g*/
68                 std::map<TAG, boost::shared_ptr<FixedArtifact>> fixedArtifactList;  /*!<\91S\8cÅ\92è\83A\81[\83e\83B\83t\83@\83N\83g\83\8a\83X\83g*/
69                 std::map<TAG, boost::shared_ptr<ItemBase>> itemBaseList;            /*!<\91S\83A\83C\83e\83\80\83x\81[\83X\83\8a\83X\83g*/
70                 std::map<TAG, boost::shared_ptr<ItemEgo>> itemEgoList;              /*!<\91S\83A\83C\83e\83\80\83G\83S\83\8a\83X\83g*/
71                 std::map<TAG, boost::shared_ptr<ItemTrait>> itemTraitList;          /*!<\91S\83A\83C\83e\83\80\93Á\90«\83\8a\83X\83g*/
72                 std::map<TAG, boost::shared_ptr<Karma>> karmaList;                  /*!<\91S\83J\83\8b\83}\83\8a\83X\83g*/
73                 std::map<TAG, boost::shared_ptr<Quest>> questList;                  /*!<\91S\83N\83G\83X\83g\93Á\90«\83\8a\83X\83g*/
74                 std::map<TAG, boost::shared_ptr<Space>> spaceList;                  /*!<\91S\8bó\8aÔ\92n\8c`\83\8a\83X\83g*/
75                 std::map<TAG, boost::shared_ptr<Skill>> skillList;                  /*!<\91S\83X\83L\83\8b\83\8a\83X\83g*/
76                 std::map<TAG, boost::shared_ptr<Species>> speciesList;              /*!<\91S\83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\83\8a\83X\83g*/
77                 std::map<TAG, boost::shared_ptr<StartingClass>> startingClassList;  /*!<\91S\8fo\8e©\83\8a\83X\83g*/
78                 std::map<TAG, boost::shared_ptr<Race>> raceList;                    /*!<\91S\8eí\91°\83\8a\83X\83g*/
79                 std::map<TAG, boost::shared_ptr<TrapBase>> trapBaseList;            /*!<\91S\83g\83\89\83b\83v\83x\81[\83X\8eí\95Ê\83\8a\83X\83g*/
80
81                 //\93®\93I\83f\81[\83^\83\8a\83X\83g
82                 std::map<ID, boost::shared_ptr<Item>> itemList;                    /*!<\91S\83A\83C\83e\83\80\83\8a\83X\83g*/
83                 CREATURE_LIST creatureList;     /*!<\91S\83N\83\8a\81[\83`\83\83\81[\83\8a\83X\83g*/
84                 std::map<ID, boost::shared_ptr<Field>> fieldList;                  /*!<\91S\83t\83\8d\83A\83\8a\83X\83g*/
85                 std::map<ID, boost::shared_ptr<Trap>> trapList;                    /*!<\91S\83g\83\89\83b\83v\83\8a\83X\83g*/
86
87                 ID itemID;     //!<\8bó\82«\83A\83C\83e\83\80ID
88                 ID creatureID; //!<\8bó\82«\83N\83\8a\81[\83`\83\83\81[ID
89                 ID fieldID;    //!<\8bó\82«\83t\83B\81[\83\8b\83hID
90                 ID trapID;     //!<\8bó\82«\83g\83\89\83b\83vID
91
92                 std::vector<boost::shared_ptr<HaveGameTime>> actionList; /*!<\8ds\93®\8f\87\83\8a\83X\83g*/
93
94                 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^
95                 GAME_TIME gameTime; //!<\83Q\81[\83\80\8e\9e\8aÔ
96
97                 friend class boost::serialization::access;
98
99                 /*!
100                 * @brief \91å\8bC\92n\8c`\8fî\95ñ\82Ì\83Z\81[\83u
101                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
102                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
103                 */
104                 bool GameWorld::xmlSaveAir(void);
105
106                 /*!
107                 * @brief \94­\93®\8bZ\94\\82Ì\83Z\81[\83u
108                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
109                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
110                 */
111                 bool GameWorld::xmlSaveAbility(void);
112
113                 /*!
114                 * @brief \8c \94\\8fî\95ñ\82Ì\83Z\81[\83u
115                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
116                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
117                 */
118                 bool GameWorld::xmlSaveAuthority(void);
119
120                 /*!
121                 * @brief \8e{\90Ý\8fî\95ñ\82Ì\83Z\81[\83u
122                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
123                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
124                 */
125                 bool GameWorld::xmlSaveBuilding(void);
126
127                 /*!
128                 * @brief \90w\89c\8fî\95ñ\82Ì\83Z\81[\83u
129                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
130                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
131                 */
132                 bool GameWorld::xmlSaveCamp(void);
133
134                 /*!
135                 * @brief \83N\83\8a\81[\83`\83\83\81[\93Á\90«\82Ì\83Z\81[\83u
136                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
137                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
138                 */
139                 bool GameWorld::xmlSaveCreatureTrait(void);
140
141                 /*!
142                 * @brief \83_\83\93\83W\83\87\83\93\8fî\95ñ\82Ì\83Z\81[\83u
143                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
144                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
145                 */
146                 bool GameWorld::xmlSaveDungeon(void);
147
148                 /*!
149                 * @brief \8cø\89Ê\91®\90«\8fî\95ñ\82Ì\83Z\81[\83u
150                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
151                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
152                 */
153                 bool GameWorld::xmlSaveEffect(void);
154
155                 /*!
156                 * @brief \92n\8c`\8fî\95ñ\82Ì\83Z\81[\83u
157                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
158                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
159                 */
160                 bool GameWorld::xmlSaveFloor(void);
161
162                 /*!
163                 * @brief \8cÅ\92è\83A\81[\83e\83B\83t\83@\83N\83g\8fî\95ñ\82Ì\83Z\81[\83u
164                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
165                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
166                 */
167                 bool GameWorld::xmlSaveFixedArtifact(void);
168
169                 /*!
170                 * @brief \83x\81[\83X\83A\83C\83e\83\80\8fî\95ñ\82Ì\83Z\81[\83u
171                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
172                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
173                 */
174                 bool GameWorld::xmlSaveItemBase(void);
175
176                 /*!
177                 * @brief \83A\83C\83e\83\80\83G\83S\8fî\95ñ\82Ì\83Z\81[\83u
178                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
179                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
180                 */
181                 bool GameWorld::xmlSaveItemEgo(void);
182
183                 /*!
184                 * @brief \83A\83C\83e\83\80\93Á\90«\8fî\95ñ\82Ì\83Z\81[\83u
185                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
186                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
187                 */
188                 bool GameWorld::xmlSaveItemTrait(void);
189
190                 /*!
191                 * @brief \83J\83\8b\83}\8fî\95ñ\82Ì\83Z\81[\83u
192                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
193                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
194                 */
195                 bool GameWorld::xmlSaveKarma(void);
196
197                 /*!
198                 * @brief \83N\83G\83X\83g\8fî\95ñ\82Ì\83Z\81[\83u
199                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
200                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
201                 */
202                 bool GameWorld::xmlSaveQuest(void);
203
204                 /*!
205                 * @brief \83N\83G\83X\83g\8fî\95ñ\82Ì\83Z\81[\83u
206                 * @return \8f\91\82«\8d\9e\82Ý\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
207                 * @todo \8f\91\82«\8d\9e\82Ý\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
208                 */
209                 bool GameWorld::xmlSaveRace(void);
210
211                 /*!
212                 * @brief \83X\83L\83\8b\8fî\95ñ\82Ì\83Z\81[\83u
213                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
214                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
215                 */
216                 bool GameWorld::xmlSaveSkill(void);
217
218                 /*!
219                 * @brief \8bó\8aÔ\92n\8c`\8fî\95ñ\82Ì\83Z\81[\83u
220                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
221                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
222                 */
223                 bool GameWorld::xmlSaveSpace(void);
224
225                 /*!
226                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\8fî\95ñ\82Ì\83Z\81[\83u
227                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
228                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
229                 */
230                 bool GameWorld::xmlSaveSpecie(void);
231
232                 /*!
233                 * @brief \8fo\8e©\8fî\95ñ\82Ì\83Z\81[\83u
234                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
235                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
236                 */
237                 bool GameWorld::xmlSaveStartingClass(void);
238
239                 /*!
240                 * @brief \83x\81[\83X\83g\83\89\83b\83v\8fî\95ñ\82Ì\83Z\81[\83u
241                 * @return \95Û\91\82É\90¬\8c÷\82·\82ê\82ÎTRUE\82ð\95Ô\82·
242                 * @todo \95Û\91\8f\88\97\9d\82Ì\83G\83\89\81[\94»\92è
243                 */
244                 bool GameWorld::xmlSaveTrapBase(void);
245
246                 bool GameWorld::xmlLoadAir(void);
247                 bool GameWorld::xmlLoadAbility(void);
248                 bool GameWorld::xmlLoadAuthority(void);
249                 bool GameWorld::xmlLoadBuilding(void);
250                 bool GameWorld::xmlLoadCamp(void);
251                 bool GameWorld::xmlLoadCreatureTrait(void);
252                 bool GameWorld::xmlLoadDungeon(void);
253                 bool GameWorld::xmlLoadEffect(void);
254                 bool GameWorld::xmlLoadFloor(void);
255                 bool GameWorld::xmlLoadFixedArtifact(void);
256                 bool GameWorld::xmlLoadItemBase(void);
257                 bool GameWorld::xmlLoadItemEgo(void);
258                 bool GameWorld::xmlLoadItemTrait(void);
259                 bool GameWorld::xmlLoadKarma(void);
260                 bool GameWorld::xmlLoadQuest(void);
261                 bool GameWorld::xmlLoadRace(void);
262                 bool GameWorld::xmlLoadSpace(void);
263                 bool GameWorld::xmlLoadSkill(void);
264                 bool GameWorld::xmlLoadSpecie(void);
265                 bool GameWorld::xmlLoadStartingClass(void);
266                 bool GameWorld::xmlLoadTrapBase(void);
267
268                 /*!
269                 * @brief \83N\83\89\83X\82Ì\83V\83\8a\83A\83\89\83C\83Y\82ð\90Ý\92è\82·\82é
270                 * @param archive \83A\81[\83J\83C\83u\89»\82·\82é\83N\83\89\83X\82Ì\83A\83h\83\8c\83X
271                 * @param version \83t\83@\83C\83\8b\83o\81[\83W\83\87\83\93
272                 * @return XMLSerialize\83e\83\93\83v\83\8c\81[\83g
273                 */
274                 template<class Archive> void serialize(Archive &archive, const unsigned int version) 
275                 {
276                         if(version >= 0)
277                         {
278                                 archive & boost::serialization::make_nvp("Authorities", authorityList);
279                                 archive & boost::serialization::make_nvp("Buildings", buildingList);
280                                 archive & boost::serialization::make_nvp("Camps", campList);
281                                 archive & boost::serialization::make_nvp("Dungeons", dungeonList);
282                                 archive & boost::serialization::make_nvp("Effects", effectList);
283                                 archive & boost::serialization::make_nvp("Floors", floorList);
284                                 archive & boost::serialization::make_nvp("FixedArtifacts", fixedArtifactList);
285                                 archive & boost::serialization::make_nvp("ItemBases", itemBaseList);
286                                 archive & boost::serialization::make_nvp("ItemEgos", itemEgoList);
287                                 archive & boost::serialization::make_nvp("ItemTraits", itemTraitList);
288                                 archive & boost::serialization::make_nvp("Karmas", karmaList);
289                                 archive & boost::serialization::make_nvp("Quests", questList);
290                                 archive & boost::serialization::make_nvp("Skills", skillList);
291                                 archive & boost::serialization::make_nvp("Species", speciesList);
292                                 archive & boost::serialization::make_nvp("TrapBases", trapBaseList);
293
294                                 archive & boost::serialization::make_nvp("Authorities", authorityList);
295                                 archive & boost::serialization::make_nvp("Creatures", creatureList);
296                                 archive & boost::serialization::make_nvp("Items", itemList);
297                                 archive & boost::serialization::make_nvp("Fields", fieldList);
298                                 archive & boost::serialization::make_nvp("Traps", trapList);
299                         }
300                 }
301
302         public:
303
304                 /*!
305                 * @brief GameWorld\83N\83\89\83X\82Ì\83R\83\93\83X\83g\83\89\83N\83^
306                 * @param gSurface \83Q\81[\83\80\82Ì\83C\83\93\83^\81[\83t\83F\83C\83X\82Æ\82È\82é GameSurface \8eQ\8fÆ
307                 */
308                 GameWorld::GameWorld(void);
309
310                 /*!
311                 * @brief GameWorld\83N\83\89\83X\82Ì\83f\83X\83g\83\89\83N\83^
312                 */
313                 GameWorld::~GameWorld(void);
314
315                 /*!
316                 * @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é
317                 * @param creatureTag \83N\83\8a\81[\83`\83\83\81[\83^\83O
318                 * @return \90\90¬\82É\90¬\8c÷\82µ\82½\8fê\8d\87true\82ð\95Ô\82·
319                 */
320                 bool GameWorld::GenerateCreature(TAG creatureTag);
321
322                 /*!
323                 * @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é
324                 * @param creatureTag \83N\83\8a\81[\83`\83\83\81[\83^\83O
325                 * @param fieldID \94z\92u\90æ\83t\83B\81[\83\8b\83hID
326                 * @param x \94z\92u\90æX\8dÀ\95W
327                 * @param y \94z\92u\90æY\8dÀ\95W
328                 * @return \90\90¬\82É\90¬\8c÷\82µ\82½\8fê\8d\87true\82ð\95Ô\82·
329                 */
330                 bool GameWorld::GenerateCreature(TAG creatureTag, ID fieldID, int x, int y);
331
332                 /*!
333                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\8c \94\\82ð\95Ô\82·
334                 * @param tag \8c \94\\82Ì\83^\83O
335                 * @return \8c \94\\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
336                 */
337                 Authority *GameWorld::GetAuthority(TAG tag);
338
339                 /*!
340                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\93Á\90«\82ð\95Ô\82·
341                 * @param tag \83N\83\8a\81[\83`\83\83\81[\93Á\90«\82Ì\83^\83O
342                 * @return \83N\83\8a\81[\83`\83\83\81[\93Á\90«\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
343                 */
344                 CreatureTrait *GameWorld::GetCreatureTrait(TAG tag);
345
346                 /*!
347                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\8cø\89Ê\91®\90«\82ð\95Ô\82·
348                 * @param tag \8cø\89Ê\91®\90«\82Ì\83^\83O
349                 * @return \8cø\89Ê\91®\90«\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
350                 */
351                 Effect *GameWorld::GetEffect(TAG tag);
352
353                 /*!
354                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\8cÅ\92è\83A\81[\83e\83B\83t\83@\83N\83g\82ð\95Ô\82·
355                 * @param tag \8cø\89Ê\91®\90«\82Ì\83^\83O
356                 * @return \8cÅ\92è\83A\81[\83e\83B\83t\83@\83N\83g\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
357                 */
358                 FixedArtifact *GameWorld::GetFixedArtifact(TAG tag);
359
360                 /*!
361                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\92n\8c`\82ð\95Ô\82·
362                 * @param tag \92n\8c`\82Ì\83^\83O
363                 * @return \92n\8c`\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
364                 */
365                 Floor *GameWorld::GetFloor(TAG tag);
366
367                 /*!
368                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83x\81[\83X\83A\83C\83e\83\80\82ð\95Ô\82·
369                 * @param tag \83x\81[\83X\83A\83C\83e\83\80\82Ì\83^\83O
370                 * @return \83x\81[\83X\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
371                 */
372                 ItemBase *GameWorld::GetItemBase(TAG tag);
373
374                 /*!
375                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83A\83C\83e\83\80\83G\83S\82ð\95Ô\82·
376                 * @param tag \83A\83C\83e\83\80\83G\83S\82Ì\83^\83O
377                 * @return \83A\83C\83e\83\80\83G\83S\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
378                 */
379                 ItemEgo *GameWorld::GetItemEgo(TAG tag);
380
381                 /*!
382                 * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83A\83C\83e\83\80\93Á\90«\82ð\95Ô\82·
383                 * @param tag \83A\83C\83e\83\80\93Á\90«\82Ì\83^\83O
384                 * @return \83A\83C\83e\83\80\93Á\90«\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
385                 */
386                 ItemTrait *GameWorld::GetItemTrait(TAG tag);
387
388                 /*!
389                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83J\83\8b\83}\82ð\95Ô\82·
390                  * @param tag \83J\83\8b\83}\82Ì\83^\83O
391                  * @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
392                  */
393                 Karma *GameWorld::GetKarma(TAG tag);
394
395                 /*!
396                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83X\83L\83\8b\82ð\95Ô\82·
397                  * @param tag \83X\83L\83\8b\82Ì\83^\83O
398                  * @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
399                  */
400                 Skill *GameWorld::GetSkill(TAG tag);
401
402                 /*!
403                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83X\83L\83\8b\82ð\95Ô\82·
404                  * @param tag \83X\83L\83\8b\82Ì\83^\83O
405                  * @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
406                  */
407                 Species *GameWorld::GetSpecies(TAG tag);
408
409                 /*!
410                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83g\83\89\83b\83v\8eí\95Ê\82ð\95Ô\82·
411                  * @param tag \83g\83\89\83b\83v\8eí\95Ê\82Ì\83^\83O
412                  * @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
413                  */
414                 TrapBase *GameWorld::GetTrapBase(TAG tag);
415
416                 /*!
417                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\8e{\90Ý\82ð\95Ô\82·
418                  * @param tag \8e{\90Ý\82Ì\83^\83O
419                  * @return \8e{\90Ý\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
420                  */
421                 Building *GameWorld::GetBuilding(TAG tag);
422
423                 /*!
424                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\90w\89c\82ð\95Ô\82·
425                  * @param tag \90w\89c\82Ì\83^\83O
426                  * @return \90w\89c\82Ì\8eQ\8fÆ\83|\83C\83\93\83^\81A\91\8dÝ\82µ\82È\82¯\82ê\82ÎNULL\82ð\95Ô\82·\81B
427                  */
428                 Camp *GameWorld::GetCamp(TAG tag);
429
430                 /*!
431                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83_\83\93\83W\83\87\83\93\82ð\95Ô\82·
432                  * @param tag \83_\83\93\83W\83\87\83\93\82Ì\83^\83O
433                  * @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
434                  */
435                 Dungeon *GameWorld::GetDungeon(TAG tag);
436
437                 /*!
438                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83A\83C\83e\83\80\82ð\95Ô\82·
439                  * @param id \83A\83C\83e\83\80\82ÌID
440                  * @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
441                  */
442                 Item *GameWorld::GetItem(ID id);
443
444                 /*!
445                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83t\83\8d\83A\82ð\95Ô\82·
446                  * @param id \83t\83\8d\83A\82ÌID
447                  * @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
448                  */
449                 Field *GameWorld::GetField(ID id);
450
451                 /*!
452                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·
453                  * @param id \83N\83\8a\81[\83`\83\83\81[\82ÌID
454                  * @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
455                  */
456                 Creature *GameWorld::GetCreature(ID id);
457
458                 /*!
459                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\94­\93®\8bZ\94\\82ð\95Ô\82·
460                  * @return \91S\94­\93®\8bZ\94\\82Ì\83\8a\83X\83g
461                  */
462                 std::map<TAG, boost::shared_ptr<Ability>> *GameWorld::GetAbilityList(void);
463
464                 /*!
465                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·
466                  * @return \91S\83N\83\8a\81[\83`\83\83\81[\82Ì\83\8a\83X\83g
467                  */
468                 CREATURE_LIST *GameWorld::GetCreatureList(void);
469
470                 /*!
471                  * @brief GameWorld\92\86\82É\91\8dÝ\82·\82é\83N\83G\83X\83g\82ð\95Ô\82·
472                  * @param tag \83N\83G\83X\83g\82Ì\83^\83O
473                  * @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
474                  */
475                 Quest *GameWorld::GetQuest(TAG tag);
476
477                 /*!
478                  * @brief \83Q\81[\83\80\8e\9e\8aÔ\82ð\95Ô\82·
479                  * @return \83Q\81[\83\80\8e\9e\8aÔ
480                  */
481                 GAME_TIME GameWorld::GetGameTime(void);
482
483                 /*!
484                  * @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
485                  * @return \82È\82µ
486                  */
487                 bool GameWorld::XMLSave(void);
488
489                 /*!
490                  * @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
491                  * @return \82È\82µ
492                  */
493                 void GameWorld::XMLLoad(void);
494
495                 /*!
496                  * @brief \91Î\89\9e\82µ\82½ID\82Ì\83N\83\8a\81[\83`\83\83\81[\82ð\83\8a\83X\83g\82©\82ç\8f\9c\8aO\82·\82é
497                  * @return \82È\82µ
498                  */
499                 void GameWorld::WipeCreature(ID id);
500
501                 /*!
502                  * @brief \83v\83\8c\83C\83\84\81[\83N\83\8a\81[\83`\83\83\81[\82ð\95Ô\82·
503                  * @return \83v\83\8c\83C\83\84\81[\83N\83\8a\81[\83`\83\83\81[\82Ì\8eQ\8fÆ\83|\83C\83\93\83^
504                  */
505                 CREATURE_IT GameWorld::GetPlayerCreature(void);
506
507                 /*!
508                  * @brief \8ds\93®\8f\87\83\8a\83X\83g\82ð\95Ô\82·
509                  * @return \8ds\93®\8f\87\83\8a\83X\83g
510                  */
511                 ACTION_LIST *GameWorld::GetActionList(void);
512
513                 /*!
514                  * @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
515                  * @param fieldID \83t\83B\81[\83\8b\83hID
516                  * @param positionPtr \8dÀ\95W\83|\83C\83\93\83^
517                  * @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
518                  */
519                 Creature *GameWorld::GetCreatureFromPosition(ID fieldID, Coordinates *positionPtr);
520
521                 /*!
522                  * @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
523                  * @param fieldID \83t\83B\81[\83\8b\83hID
524                  * @param positionPtr \8dÀ\95W\83|\83C\83\93\83^
525                  * @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
526                  */
527                 Floor *GameWorld::GetFloorFromPosition(ID fieldID, Coordinates *positionPtr);
528
529                 std::map<TAG, boost::shared_ptr<Floor>> *GameWorld::GetFloorList(void);
530
531                 std::map<TAG, boost::shared_ptr<Species>> *GameWorld::GetSpeciesList(void);
532
533         };
534
535 }