OSDN Git Service

Fix serialization of Species class.
authorDeskull <desull@users.sourceforge.jp>
Mon, 23 Jun 2014 11:54:04 +0000 (20:54 +0900)
committerDeskull <desull@users.sourceforge.jp>
Mon, 23 Jun 2014 11:54:04 +0000 (20:54 +0900)
Deeangband/GameWorld.cpp
Deeangband/Species.h
lib-Vanilla/Specie.xml

index b415793..8ec2e62 100644 (file)
@@ -25,10 +25,6 @@ namespace Deeangband
                fieldID = 0;
 
                GameWorld::GenerateCreature("VANILLA_STIGMATIC");
-               speciesList.emplace("DAMMY1", boost::make_shared<Species>());
-               speciesList.emplace("DAMMY2", boost::make_shared<Species>());
-               speciesList.emplace("DAMMY3", boost::make_shared<Species>());
-               speciesList.emplace("DAMMY4", boost::make_shared<Species>());
                fieldList.emplace(0, boost::make_shared<Field>(dungeonList.find("VANILLA_WOMB"), 1));
 
 
index ede4829..d062ab4 100644 (file)
@@ -47,18 +47,22 @@ namespace Deeangband
                std::vector<TAG> authorityTags; //!< \8c \94\\83^\83O\94z\97ñ
 
                friend class boost::serialization::access;
-               template<class Archive> void serialize(Archive &archive, const unsigned int) 
+               template<class Archive> void serialize(Archive &archive, const unsigned int version
                {
-                       archive & boost::serialization::make_nvp("Name", name);
-                       archive & boost::serialization::make_nvp("BaseFirstRace", baseFirstRace);
-                       archive & boost::serialization::make_nvp("BaseSecondRace", baseSecondRace);
-                       archive & boost::serialization::make_nvp("BaseSoul", baseSoul);
-                       archive & boost::serialization::make_nvp("AverageHeight", height);
-                       archive & boost::serialization::make_nvp("AverageWeight", weight);
-                       archive & boost::serialization::make_nvp("BaseFeed", baseFeed);
-                       archive & boost::serialization::make_nvp("DivineLevel", divineLevel);
-                       archive & boost::serialization::make_nvp("BaseCamp", baseCamp);
-                       archive & boost::serialization::make_nvp("BaseStatus", baseStatus);
+                       if(version >= 0)
+                       {
+                               archive & BOOST_SERIALIZATION_BASE_OBJECT_NVP(GameElement);
+                               archive & boost::serialization::make_nvp("Name", name);
+                               archive & boost::serialization::make_nvp("BaseFirstRace", baseFirstRace);
+                               archive & boost::serialization::make_nvp("BaseSecondRace", baseSecondRace);
+                               archive & boost::serialization::make_nvp("BaseSoul", baseSoul);
+                               archive & boost::serialization::make_nvp("AverageHeight", height);
+                               archive & boost::serialization::make_nvp("AverageWeight", weight);
+                               archive & boost::serialization::make_nvp("BaseFeed", baseFeed);
+                               archive & boost::serialization::make_nvp("DivineLevel", divineLevel);
+                               archive & boost::serialization::make_nvp("BaseCamp", baseCamp);
+                               archive & boost::serialization::make_nvp("BaseStatus", baseStatus);
+                       }
                }
 
        public:
index 3a92ed4..3e40e80 100644 (file)
@@ -2,28 +2,33 @@
 <!DOCTYPE boost_serialization>
 <boost_serialization signature="serialization::archive" version="10">
 <Species class_id="0" tracking_level="0" version="0">
-       <count>5</count>
+       <count>6</count>
        <item_version>0</item_version>
        <item class_id="1" tracking_level="0" version="0">
-               <first>VANILLA_RAVING_LUNATIC</first>
+               <first>DAMMY1</first>
                <second class_id="2" tracking_level="0" version="1">
-                       <px class_id="3" tracking_level="1" version="10" object_id="_0">
-                               <Name>\82í\82ß\82­\83L\83`\83K\83C</Name>
-                               <BaseFirstRace>VARIABLE</BaseFirstRace>
-                               <BaseSecondRace>VARIABLE</BaseSecondRace>
-                               <BaseSoul>12</BaseSoul>
+                       <px class_id="3" tracking_level="1" version="11" object_id="_0">
+                               <GameElement class_id="4" tracking_level="0" version="10">
+                                       <Name></Name>
+                                       <Description></Description>
+                                       <ValidGenerated>0</ValidGenerated>
+                               </GameElement>
+                               <Name></Name>
+                               <BaseFirstRace></BaseFirstRace>
+                               <BaseSecondRace></BaseSecondRace>
+                               <BaseSoul>100</BaseSoul>
                                <AverageHeight>160</AverageHeight>
                                <AverageWeight>50</AverageWeight>
                                <BaseFeed>20000</BaseFeed>
                                <DivineLevel>-1</DivineLevel>
                                <BaseCamp>VARIABLE</BaseCamp>
-                               <BaseStatus class_id="4" tracking_level="0" version="10">
+                               <BaseStatus class_id="5" tracking_level="0" version="10">
                                        <STR>8</STR>
-                                       <INT>7</INT>
-                                       <WIS>7</WIS>
-                                       <DEX>6</DEX>
-                                       <CON>7</CON>
-                                       <CHA>5</CHA>
+                                       <INT>8</INT>
+                                       <WIS>8</WIS>
+                                       <DEX>8</DEX>
+                                       <CON>8</CON>
+                                       <CHA>8</CHA>
                                </BaseStatus>
                        </px>
                </second>
                <first>DAMMY2</first>
                <second>
                        <px class_id_reference="3" object_id="_1">
+                               <GameElement>
+                                       <Name></Name>
+                                       <Description></Description>
+                                       <ValidGenerated>0</ValidGenerated>
+                               </GameElement>
                                <Name></Name>
                                <BaseFirstRace></BaseFirstRace>
                                <BaseSecondRace></BaseSecondRace>
                <first>DAMMY3</first>
                <second>
                        <px class_id_reference="3" object_id="_2">
+                               <GameElement>
+                                       <Name></Name>
+                                       <Description></Description>
+                                       <ValidGenerated>0</ValidGenerated>
+                               </GameElement>
                                <Name></Name>
                                <BaseFirstRace></BaseFirstRace>
                                <BaseSecondRace></BaseSecondRace>
                <first>DAMMY4</first>
                <second>
                        <px class_id_reference="3" object_id="_3">
+                               <GameElement>
+                                       <Name></Name>
+                                       <Description></Description>
+                                       <ValidGenerated>0</ValidGenerated>
+                               </GameElement>
                                <Name></Name>
                                <BaseFirstRace></BaseFirstRace>
                                <BaseSecondRace></BaseSecondRace>
                </second>
        </item>
        <item>
-               <first>VANILLA_STIGMATIC</first>
+               <first>VANILLA_RAVING_LUNATIC</first>
                <second>
                        <px class_id_reference="3" object_id="_4">
+                               <GameElement>
+                                       <Name>\82í\82ß\82­\83L\83`\83K\83C</Name>
+                                       <Description></Description>
+                                       <ValidGenerated>0</ValidGenerated>
+                               </GameElement>
+                               <Name>\82í\82ß\82­\83L\83`\83K\83C</Name>
+                               <BaseFirstRace>VARIABLE</BaseFirstRace>
+                               <BaseSecondRace>VARIABLE</BaseSecondRace>
+                               <BaseSoul>12</BaseSoul>
+                               <AverageHeight>160</AverageHeight>
+                               <AverageWeight>50</AverageWeight>
+                               <BaseFeed>20000</BaseFeed>
+                               <DivineLevel>-1</DivineLevel>
+                               <BaseCamp>VARIABLE</BaseCamp>
+                               <BaseStatus>
+                                       <STR>8</STR>
+                                       <INT>7</INT>
+                                       <WIS>7</WIS>
+                                       <DEX>6</DEX>
+                                       <CON>7</CON>
+                                       <CHA>5</CHA>
+                               </BaseStatus>
+                       </px>
+               </second>
+       </item>
+       <item>
+               <first>VANILLA_STIGMATIC</first>
+               <second>
+                       <px class_id_reference="3" object_id="_5">
+                               <GameElement>
+                                       <Name>\81\80\88ó\8eÒ\81r</Name>
+                                       <Description></Description>
+                                       <ValidGenerated>0</ValidGenerated>
+                               </GameElement>
                                <Name>\81\80\88ó\8eÒ\81r</Name>
                                <BaseFirstRace>VARIABLE</BaseFirstRace>
                                <BaseSecondRace>VARIABLE</BaseSecondRace>