Game settings loading is now deferred until the game is fully loading.

This allows auto replaces to be properly loaded from the game file.


git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@1295 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
coppro
2009-01-07 00:20:10 +00:00
parent 018b6a6c6b
commit cf4aea531d
4 changed files with 57 additions and 49 deletions
+5 -1
View File
@@ -81,7 +81,11 @@ GameSettings::GameSettings()
{}
void GameSettings::initDefaults(const Game& game) {
if (initialized) return;
// Defer initialization until the game is fully loaded.
// This prevents data that needs to be initialized from
// being accessed from the new set window, but removes
// the need to load the entire file, which takes too long.
if (initialized || !game.isFullyLoaded()) return;
initialized = true;
// init auto_replaces, copy from game file
FOR_EACH_CONST(ar, game.auto_replaces) {
+6 -6
View File
@@ -23,15 +23,15 @@ DECLARE_POINTER_TYPE(AutoReplace);
class WordListWord : public IntrusivePtrBase<WordListWord> {
public:
WordListWord();
String name; ///< Name of the list / the word
bool line_below; ///< Line below in the list?
bool is_prefix; ///< Is this a prefix before other words?
vector<WordListWordP> words; ///< Sublist
OptionalScript script; ///< Generate words using a script
inline bool isGroup() const { return !words.empty(); }
DECLARE_REFLECTION();
};
@@ -47,15 +47,15 @@ class WordList : public WordListWord {
class AutoReplace : public IntrusivePtrVirtualBase {
public:
AutoReplace();
bool enabled;
bool whole_word;
bool custom; ///< Is this a custom auto replace?
String match;
String replace;
inline AutoReplaceP clone() const { return new_intrusive1<AutoReplace>(*this); }
DECLARE_REFLECTION();
};