OSDN Git Service

Add serialize version to some classes.
[deeangband/Deeangband-new.git] / Deeangband / SavingTable.h
1 /*!
2 * @file SavingTable.h
3 * @brief \83Q\81[\83\80\92\86\82Ì\83Z\81[\83r\83\93\83O\83e\81[\83u\83\8b\82Ì\83v\83\8d\83g\83^\83C\83v
4 * @date 2013/12/11
5 * @author Deskull
6 * 2013 Sikabane Works.
7 */
8
9 #pragma once
10
11 #include "stdafx.h"
12 #include "Deeangband.h"
13
14 namespace Deeangband
15 {
16
17         /*!
18         * @class SavingTable
19         * @brief \83Z\81[\83r\83\93\83O\83e\81[\83u\83\8b\83N\83\89\83X
20         */
21         class SavingTable
22         {
23         private:
24
25                 AC armor;    /*!< \91\95\8db\83Z\81[\83u\92l */
26                 EV evasion;  /*!< \89ñ\94ð\83Z\81[\83u\92l */
27                 VO volition; /*!< \88Ó\8ev\83Z\81[\83u\92l */
28
29                 friend class boost::serialization::access;
30                 template<class Archive> void serialize(Archive &archive, const unsigned int) 
31                 {
32                         archive & BOOST_SERIALIZATION_NVP(armor);
33                         archive & BOOST_SERIALIZATION_NVP(evasion);
34                         archive & BOOST_SERIALIZATION_NVP(volition);
35                 }
36
37         public:
38
39                 /*! 
40                 * @brief SavingTable\83N\83\89\83X\82Ì\83R\83\93\83X\83g\83\89\83N\83^
41                 * @param armor \91\95\8db\83Z\81[\83r\83\93\83O\92l
42                 * @param evasion \89ñ\94ð\83Z\81[\83r\83\93\83O\92l
43                 * @param volition \88Ó\8ev\83Z\81[\83r\83\93\83O\92l
44                 */
45                 SavingTable::SavingTable(BASE_STATUS armor, BASE_STATUS evasion, BASE_STATUS volition);
46
47                 SavingTable::SavingTable(void);
48
49                 SavingTable::~SavingTable(void);
50
51                 void SavingTable::Set(BASE_STATUS armor, BASE_STATUS evasion, BASE_STATUS volition);
52
53                 const AC SavingTable::GetArmor(void);
54
55                 const EV SavingTable::GetEvasion(void);
56
57                 const VO SavingTable::GetVolition(void);
58
59                 /*!
60                 * @brief +=\89\89\8eZ\8eq\82É\82æ\82é\8dÀ\95W\89Á\8eZ
61                 * @param obj \89Á\8eZ\8c³
62                 */
63                 SavingTable& SavingTable::operator+=(const SavingTable& obj);
64
65         };
66
67 }
68
69 BOOST_CLASS_VERSION(Deeangband::SavingTable, 10);