00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifdef __cplusplus
00024
00025 # ifndef OGS_CORE_SIZE_H
00026 # define OGS_CORE_SIZE_H
00027
00028 # include <ogs/core/Modifier.h>
00029 # include <ogs/core/Namespace.h>
00030
00031 OGS_BEGIN_CORE_NAMESPACE
00032
00037 class Size {
00038 public:
00040 enum Type {
00042 FINE = 'F',
00044 DIMINUITIVE = 'D',
00046 TINY = 'T',
00048 SMALL = 'S',
00050 MEDIUM = 'M',
00052 LARGE = 'L',
00053
00054 #undef HUGE
00055
00056 HUGE = 'H',
00058 GARGANTUAN = 'G',
00060 COLLOSAL = 'C'
00061 };
00062
00063 Size (Type type = MEDIUM);
00064 Type getType () const;
00065 Modifier& getDefenseModifier ();
00066
00067 private:
00068 Type type;
00069 Modifier defenseModifier;
00070
00071 bool isValid (Type type);
00072 };
00073
00079 inline Size::Size (Type type) {
00080 this->type = type;
00081 }
00082
00088 inline Size::Type Size::getType () const {
00089 return (this->type);
00090 }
00091
00097 inline Modifier& Size::getDefenseModifier () {
00098 return (this->defenseModifier);
00099 }
00100
00101 OGS_END_CORE_NAMESPACE
00102
00103 # endif
00104
00105 #endif
00106