43 #define M_SHEET_PROPS_COPY(class_name) \
44 virtual void copy_to(rpgSheet_Props* ptarget){ \
45 class_name *ps = (class_name*) ptarget; \
57 virtual void copy_to(rpgSheet_Props* ptarget) = 0;
60 virtual void load(
class laPropertyList* pElement) = 0;
65 virtual void save(
class laFileParser *fp) { ASSERT(M_FALSE,
"Not Implemented"); };
74 virtual void reset() = 0;
77 virtual void apply(rpgSheet_Mods *pTarget) = 0;
83 virtual void load(
class laPropertyList* pElement) = 0;
88 #define M_SHEET_BEGIN(class_name, class_base) \
89 class class_name: public class_base { \
92 inline class_name##_Props* properties() { return (class_name##_Props*)_pProperties; }; \
93 inline class_name##_Mods* modifiers() { return (class_name##_Mods*)_pActiveModifiers; }; \
96 rpgSheet_Props* pp = NULL, rpgSheet_Props *ppc = NULL, rpgSheet_Mods *pm = NULL) \
98 pp? pp : new class_name##_Props(), \
99 ppc? ppc : new class_name##_Props(), \
100 pm? pm : new class_name##_Mods() ) \
103 #define M_SHEET_END }
110 rpgSheet_Props* _pProperties;
111 rpgSheet_Props* _pPropUnchanged;
114 rpgSheet_Mods* _pActiveModifiers;
118 M_BOOL bResetProperties;
122 rpgSheet(rpgSheet_Props* pp, rpgSheet_Props *ppc, rpgSheet_Mods *pm);
134 virtual void load(
class laPropertyList* pElement);
Interface for loadable objects.
Abstract RPG Properties Sheet.