Move script string table to C4ScriptHost

The string table in C4AulScriptEngine was never loaded.
liquid_container
Günther Brammer 2016-01-03 03:42:17 +01:00
parent d3890f8c99
commit a6020197d7
4 changed files with 7 additions and 25 deletions

View File

@ -82,22 +82,6 @@ void C4AulScript::Reg2List(C4AulScriptEngine *pEngine)
Next = NULL;
}
std::string C4AulScript::Translate(const std::string &text) const
{
try
{
if (stringTable)
return stringTable->Translate(text);
}
catch (C4LangStringTable::NoSuchTranslation &)
{
// Ignore, soldier on
}
if (Engine && Engine != this)
return Engine->Translate(text);
throw C4LangStringTable::NoSuchTranslation(text);
}
/*--- C4AulScriptEngine ---*/
C4AulScriptEngine::C4AulScriptEngine():

View File

@ -142,12 +142,7 @@ public:
friend class C4AulScriptEngine;
friend class C4AulDebug;
// Translate a string using the script's lang table
std::string Translate(const std::string &text) const;
protected:
C4LangStringTable *stringTable;
C4AulScriptEngine *Engine; //owning engine
C4AulScript *Prev, *Next; // tree structure

View File

@ -140,12 +140,13 @@ bool C4ScriptHost::ReloadScript(const char *szPath, const char *szLanguage)
return false;
}
void C4ScriptHost::SetError(const char *szMessage)
std::string C4ScriptHost::Translate(const std::string &text) const
{
if (stringTable)
return stringTable->Translate(text);
throw C4LangStringTable::NoSuchTranslation(text);
}
/*--- C4ExtraScriptHost ---*/
C4ExtraScriptHost::C4ExtraScriptHost(C4String *parent_key_name):

View File

@ -45,11 +45,12 @@ public:
virtual bool LoadData(const char *szFilename, const char *szData, class C4LangStringTable *pLocalTable);
const char *GetScript() const { return Script.getData(); }
bool IsReady() { return State == ASS_PARSED; } // whether script calls may be done
// Translate a string using the script's lang table
std::string Translate(const std::string &text) const;
virtual C4ScriptHost * GetScriptHost() { return this; }
std::list<C4ScriptHost *> SourceScripts;
protected:
C4ScriptHost();
void SetError(const char *szMessage);
void MakeScript();
bool ReloadScript(const char *szPath, const char *szLanguage);
C4ComponentHost ComponentHost;
@ -70,6 +71,7 @@ protected:
bool IncludesResolved;
StdStrBuf Script; // script
C4LangStringTable *stringTable;
C4ValueMapNames LocalNamed;
C4Set<C4Property> LocalValues;
C4AulScriptState State; // script state