From 2504eb908b039ddb0724581aad53e5ee4334f511 Mon Sep 17 00:00:00 2001 From: twanvl Date: Tue, 19 Dec 2006 22:16:29 +0000 Subject: [PATCH] fixed: GetMember works on values without save_value git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@130 0fc631ac-6414-0410-93d0-97cfa31319b6 --- src/data/field/choice.cpp | 2 +- src/data/field/color.cpp | 2 +- src/data/field/image.cpp | 2 +- src/data/field/symbol.cpp | 2 +- src/data/field/text.cpp | 2 +- src/util/io/get_member.hpp | 2 ++ src/util/io/reader.hpp | 2 ++ src/util/io/writer.hpp | 1 + 8 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/data/field/choice.cpp b/src/data/field/choice.cpp index df7adfbb..7f86c900 100644 --- a/src/data/field/choice.cpp +++ b/src/data/field/choice.cpp @@ -226,5 +226,5 @@ bool ChoiceValue::update(Context& ctx) { } IMPLEMENT_REFLECTION_NAMELESS(ChoiceValue) { - if (fieldP->save_value) REFLECT_NAMELESS(value); + if (fieldP->save_value || tag.scripting()) REFLECT_NAMELESS(value); } diff --git a/src/data/field/color.cpp b/src/data/field/color.cpp index 83c62f2b..0f341d57 100644 --- a/src/data/field/color.cpp +++ b/src/data/field/color.cpp @@ -82,5 +82,5 @@ bool ColorValue::update(Context& ctx) { } IMPLEMENT_REFLECTION_NAMELESS(ColorValue) { - if (fieldP->save_value) REFLECT_NAMELESS(value); + if (fieldP->save_value || tag.scripting()) REFLECT_NAMELESS(value); } diff --git a/src/data/field/image.cpp b/src/data/field/image.cpp index f1435c11..3de71dd8 100644 --- a/src/data/field/image.cpp +++ b/src/data/field/image.cpp @@ -36,5 +36,5 @@ String ImageValue::toString() const { } IMPLEMENT_REFLECTION_NAMELESS(ImageValue) { - if (fieldP->save_value) REFLECT_NAMELESS(filename); + if (fieldP->save_value || tag.scripting()) REFLECT_NAMELESS(filename); } diff --git a/src/data/field/symbol.cpp b/src/data/field/symbol.cpp index 31943beb..98a9cc1c 100644 --- a/src/data/field/symbol.cpp +++ b/src/data/field/symbol.cpp @@ -46,5 +46,5 @@ String SymbolValue::toString() const { } IMPLEMENT_REFLECTION_NAMELESS(SymbolValue) { - if (fieldP->save_value) REFLECT_NAMELESS(filename); + if (fieldP->save_value || tag.scripting()) REFLECT_NAMELESS(filename); } diff --git a/src/data/field/text.cpp b/src/data/field/text.cpp index f43cb9b5..b28ec44b 100644 --- a/src/data/field/text.cpp +++ b/src/data/field/text.cpp @@ -99,5 +99,5 @@ bool TextValue::update(Context& ctx) { } IMPLEMENT_REFLECTION_NAMELESS(TextValue) { - if (fieldP->save_value) REFLECT_NAMELESS(value); + if (fieldP->save_value || tag.scripting()) REFLECT_NAMELESS(value); } diff --git a/src/util/io/get_member.hpp b/src/util/io/get_member.hpp index 8b16fa36..62004a71 100644 --- a/src/util/io/get_member.hpp +++ b/src/util/io/get_member.hpp @@ -27,6 +27,7 @@ class GetDefaultMember { public: /// Tell the reflection code we are not reading inline bool reading() const { return false; } + inline bool scripting() const { return true; } inline bool isComplex() const { return false; } inline void addAlias(int, const Char*, const Char*) {} inline void handleAppVersion() {} // no effect @@ -67,6 +68,7 @@ class GetMember : private GetDefaultMember { /// Tell the reflection code we are not reading inline bool reading() const { return false; } + inline bool scripting() const { return true; } inline bool isComplex() const { return false; } inline void addAlias(int, const Char*, const Char*) {} inline void handleAppVersion() {} // no effect diff --git a/src/util/io/reader.hpp b/src/util/io/reader.hpp index 7d88e841..25aa3e99 100644 --- a/src/util/io/reader.hpp +++ b/src/util/io/reader.hpp @@ -46,6 +46,8 @@ class Reader { /// Tell the reflection code we are reading inline bool reading() const { return true; } + /// Tell the reflection code we are not related to scripting + inline bool scripting() const { return false; } /// Is the thing currently being read 'complex', i.e. does it have children inline bool isComplex() const { return value.empty(); } /// Add a as an alias for b, all keys a will be replaced with b, only if file_app_version < end_version diff --git a/src/util/io/writer.hpp b/src/util/io/writer.hpp index e61904ba..1ac302ab 100644 --- a/src/util/io/writer.hpp +++ b/src/util/io/writer.hpp @@ -30,6 +30,7 @@ class Writer { /// Tell the reflection code we are not reading inline bool reading() const { return false; } + inline bool scripting() const { return false; } inline bool isComplex() const { return false; } inline void addAlias(int, const Char*, const Char*) {}