OSDN Git Service

Add ItemTemplate class.
authorDeskull <deskull@users.sourceforge.jp>
Fri, 4 Apr 2014 14:31:44 +0000 (23:31 +0900)
committerDeskull <deskull@users.sourceforge.jp>
Fri, 4 Apr 2014 14:31:44 +0000 (23:31 +0900)
Deeangband/Deeangband.vcxproj
Deeangband/ItemTemplate.cpp [new file with mode: 0644]
Deeangband/ItemTemplate.h [new file with mode: 0644]

index c475860..1c5967b 100644 (file)
@@ -99,6 +99,7 @@
     <ClInclude Include="GameCampaign.h" />
     <ClInclude Include="GameSurfaceSDL.h" />
     <ClInclude Include="ItemBase.h" />
+    <ClInclude Include="ItemTemplate.h" />
     <ClInclude Include="ItemTrait.h" />
     <ClInclude Include="Karma.h" />
     <ClInclude Include="ProbabilityTable.h" />
     <ClCompile Include="CreatureTrait.cpp" />
     <ClCompile Include="GameSurfaceSDL.cpp" />
     <ClCompile Include="ItemBase.cpp" />
+    <ClCompile Include="ItemTemplate.cpp" />
     <ClCompile Include="ItemTrait.cpp" />
     <ClCompile Include="Karma.cpp" />
     <ClCompile Include="ProbabilityTable.cpp" />
diff --git a/Deeangband/ItemTemplate.cpp b/Deeangband/ItemTemplate.cpp
new file mode 100644 (file)
index 0000000..b4dd445
--- /dev/null
@@ -0,0 +1,48 @@
+/*!
+ * @file ItemTemplate.cpp
+ * @brief \83A\83C\83e\83\80\83e\83\93\83v\83\8c\81[\83g\82ð\92è\8b`\82·\82é
+ * @date 2014/04/04
+ * @author Deskull
+ * 2014 Sikabane Works.
+ */
+
+
+#include "stdafx.h"
+#include "ItemTemplate.h"
+
+ItemTemplate::ItemTemplate(ID id, TAG tag, GameWorld *gameWorld) : GameElement(id, tag, gameWorld)
+{
+       this->SetDammyData();
+}
+
+ItemTemplate::ItemTemplate(void)
+{
+       this->SetDammyData();
+}
+
+ItemTemplate::~ItemTemplate(void)
+{
+}
+
+void ItemTemplate::SetDammyData(void)
+{
+       this->weight = 0;
+}
+
+bool ItemTemplate::TakeEffect(Effect *effectPtr, POWER amount)
+{
+       if(effectPtr)
+       {
+               amount = 0;
+       }
+       return true;
+}
+
+void ItemTemplate::XMLSave(std::string filename)
+{
+       ItemTemplate ItemTemplate = *this;
+       std::ofstream ofs(filename);
+    assert(ofs);
+    boost::archive::xml_oarchive oa(ofs);
+       oa << BOOST_SERIALIZATION_NVP(ItemTemplate);
+}
diff --git a/Deeangband/ItemTemplate.h b/Deeangband/ItemTemplate.h
new file mode 100644 (file)
index 0000000..a219760
--- /dev/null
@@ -0,0 +1,104 @@
+/*!
+ * @file ItemTemplate.h
+ * @brief \83A\83C\83e\83\80\82Ì\83X\83e\81[\83^\83X\83e\83\93\83v\83\8c\81[\83g
+ * @date 2014/04/04
+ * @author Deskull
+ * 2014 Sikabane Works.
+ */
+
+#pragma once
+
+#include "stdafx.h"
+#include "Deeangband.h"
+
+#include "Dice.h"
+#include "Effect.h"
+#include "GameElement.h"
+#include "SavingTable.h"
+
+/*!
+ * @class ItemTemplate
+ * @brief \83A\83C\83e\83\80\82Ì\83N\83\89\83X
+ */
+class ItemTemplate : public GameElement
+{
+private:
+
+       Dice baseDamage; //!< \83x\81[\83X\83_\83\81\81[\83W\82Ì\83_\83C\83X
+       WEIGHT weight; //!< \83A\83C\83e\83\80\82Ì\8fd\97Ê
+       SavingTable baseSaving; //!< \8aî\96{\83Z\81[\83r\83\93\83O\8fC\90³
+       SavingTable plusSaving; //!< \92Ç\89Á\83Z\81[\83r\83\93\83O\8fC\90³
+
+       friend class boost::serialization::access;
+
+       /*!
+        * @brief \83N\83\89\83X\82Ì\83V\83\8a\83A\83\89\83C\83Y\89»\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
+        * @param version \83f\81[\83^\83o\81[\83W\83\87\83\93
+        * @return XMLSerialize\83e\83\93\83v\83\8c\81[\83g
+        */
+       template<class Archive> void serialize(Archive &archive, const unsigned int version) 
+       {
+               if(version >= 0)
+               {
+                       archive & BOOST_SERIALIZATION_NVP(baseDamage);
+                       archive & BOOST_SERIALIZATION_NVP(weight);
+                       archive & BOOST_SERIALIZATION_NVP(baseSaving);
+                       archive & BOOST_SERIALIZATION_NVP(plusSaving);
+               }
+       }
+
+public:
+
+       /*! 
+        * @brief ItemTemplate\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^(GameElement\83\81\83\93\83o\91Î\89\9e)
+        * @param id GameElement\82ÌID
+        * @param tag GameElement\82Ì\83^\83O
+        * @param gameWorld \8f\8a\91®\8c³gameWorld\8eQ\8fÆ\83|\83C\83\93\83^
+        */
+       ItemTemplate::ItemTemplate(ID id, TAG tag, GameWorld *gameWorld);
+
+       /*! 
+        * @brief ItemTemplate\83N\83\89\83X\83R\83\93\83X\83g\83\89\83N\83^
+        */
+       ItemTemplate::ItemTemplate(void);
+
+       /*! 
+        * @brief ItemTemplate\83N\83\89\83X\83f\83X\83g\83\89\83N\83^
+        */
+       ItemTemplate::~ItemTemplate(void);
+
+       /*! 
+        * @brief \83_\83~\81[\83f\81[\83^\82É\82æ\82é\8f\89\8aú\89»
+        * @return \82È\82µ
+        */
+       void ItemTemplate::SetDammyData(void);
+
+       /*! \8eó\82¯\82½\8cø\89Ê\82ð\8f\88\97\9d\82·\82é */
+       bool ItemTemplate::TakeEffect(Effect *effectPtr, POWER amount);
+
+       /*! \8aî\96{\91\95\8db\8fC\90³\82ð\95Ô\82· */
+       AC ItemTemplate::GetBaseAC(void);
+
+       /*! \92Ç\89Á\91\95\8db\8fC\90³\82ð\95Ô\82· */
+       AC ItemTemplate::GetPlusAC(void);
+
+       /*! \8aî\96{\89ñ\94ð\8fC\90³\82ð\95Ô\82· */
+       EV ItemTemplate::GetBaseEV(void);
+
+       /*! \92Ç\89Á\89ñ\94ð\8fC\90³\82ð\95Ô\82· */
+       EV ItemTemplate::GetPlusEV(void);
+
+       /*! \8aî\96{\88Ó\8eu\8fC\90³\82ð\95Ô\82· */
+       VO ItemTemplate::GetBaseVO(void);
+
+       /*! \92Ç\89Á\88Ó\8eu\8fC\90³\82ð\95Ô\82· */
+       VO ItemTemplate::GetPlusVO(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µ
+        */
+       void ItemTemplate::XMLSave(std::string filename);
+
+};