OSDN Git Service

[Modify] 色々怪しいがビルドは通るところまで。 / Various suspicious but the build passes...
[deeangband/Deeangband-new.git] / Deeangband / Species.h
1 /*!
2 * @file Species.h
3 * @brief \83Q\81[\83\80\92\86\82Ì\83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\83v\83\8d\83g\83^\83C\83v
4 * @date 2014/02/01
5 * @author Deskull
6 * 2014 Sikabane Works.
7 */
8
9 #include "stdafx.h"
10 #include "GameElement.h"
11 #include "BaseStatusTable.h"
12 #include "HaveSize.h"
13 #include "HaveSymbol.h"
14
15 #pragma once
16
17 namespace Deeangband
18 {
19
20         /*!
21         * @class Species
22         * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\83N\83\89\83X
23         */
24         class Species : public GameElement, public HaveSymbol, public HaveSize
25         {
26
27         private:
28
29                 SOUL baseSoul; //!< \8aî\96{\83\\83E\83\8b\97Ê
30
31                 FEED baseFeed; //!< \8aî\96{\8e \97{\92l
32                 LEVEL divineLevel; //!< \8aî\96{\90_\90«\83\8c\83x\83\8b
33
34                 TAG baseCamp; //!< \8aî\96{\8f\8a\91®\90w\89c
35
36                 BaseStatusTable baseStatus; //!< \8aî\96{\83X\83e\81[\83^\83X
37
38                 std::map<TAG, SKILL_EXP> skillExpList; //!< \83X\83L\83\8b\8co\8c±\92l\83\8a\83X\83g
39
40                 NUMBER currentCreationNumber; //!< \8c»\8dÝ\90\90¬\90\94
41                 NUMBER currentDeadNumber; //!< \8c»\8dÝ\8e\80\96S\90\94
42                 NUMBER maxCreationNumber; //!< \8dÅ\91å\90\90¬\90\94
43
44                 TAG baseFirstRace; //!< \8aî\96{\8eí\91°\83^\83O1
45                 TAG baseSecondRace; //!< \8aî\96{\8eí\91°\83^\83O2
46
47                 std::vector<TAG> authorityTags; //!< \8c \94\\83^\83O\94z\97ñ
48
49                 template<class Archive> void serialize(Archive &archive, const unsigned int version) 
50                 {
51                         if(version >= 0)
52                         {
53                                 archive & BOOST_SERIALIZATION_BASE_OBJECT_NVP(GameElement);
54                                 archive & BOOST_SERIALIZATION_BASE_OBJECT_NVP(HaveSymbol);
55                                 archive & BOOST_SERIALIZATION_BASE_OBJECT_NVP(HaveSize);
56                         }
57                 }
58
59         public:
60
61                 /*! 
62                 * @brief Species\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^
63                 */
64                 Species::Species(void);
65
66                 /*! 
67                 * @brief Species\83N\83\89\83X\83f\83X\83g\83\89\83N\83^
68                 */
69                 Species::~Species(void);
70
71                 /*! 
72                 * @brief \83f\81[\83^\8f\89\8aú\89»
73                 */
74                 void Species::WipeData(void);
75
76                 /*! 
77                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\8aî\96{\83\\83E\83\8b\97Ê\82ð\8bA\82·
78                 * @return \83\\83E\83\8b\97Ê
79                 */
80                 SOUL Species::GetBaseSoul(void);
81
82                 /*! 
83                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\8aî\96{\8e \97{\93x\82ð\95Ô\82·
84                 * @return \8aî\96{\8e \97{\93x
85                 */
86                 FEED Species::GetBaseFeed(void);
87
88                 /*! 
89                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\83X\83L\83\8b\8aî\96{\8co\8c±\92l\82ð\95Ô\82·
90                 * @param tag \8eæ\93¾\82µ\82½\82¢\83X\83L\83\8b\82Ì\83^\83O
91                 * @return \8aY\93\96\83X\83L\83\8b\82Ì\8aî\96{\8co\8c±\92l\81A\91S\82­\82Ì\96¢\8co\8c±\82È\82ç\82Î0\82ð\95Ô\82·
92                 */
93                 SKILL_EXP Species::GetSkillExp(TAG tag);
94
95                 /*! 
96                 * @brief \83N\83\8a\81[\83`\83\83\81[\8eí\95Ê\82Ì\8aî\96{\8f\8a\91®\90w\89c\82ð\95Ô\82·
97                 * @return \8aî\96{\8f\8a\91®\90w\89c\82Ì\83^\83O
98                 */
99                 TAG Species::GetBaseCampTAG(void);
100
101                 /*! 
102                 * @brief \8f\8a\8e\9d\8c \94\\82Ì\88ê\97\97\82ð\95Ô\82·
103                 * @return \8f\8a\8e\9d\8c \94\\88ê\97\97\82Ìvector
104                 */
105                 std::vector<TAG> GetAuthorityTags(void);
106
107                 /*! 
108                 * @brief \91æ\88ê\8eí\91°\82Ì\83^\83O\82ð\95Ô\82·
109                 * @return \91æ\88ê\8eí\91°\82Ì\83^\83O
110                 */
111                 TAG GetFirstRaceTag(void);
112
113                 /*! 
114                 * @brief \91æ\93ñ\8eí\91°\82Ì\83^\83O\82ð\95Ô\82·
115                 * @return \91æ\93ñ\8eí\91°\82Ì\83^\83O
116                 */
117                 TAG GetSecondtRaceTag(void);
118
119         };
120
121 }
122