From 0cbfee4e4a3c146739df5732f44b1d766734af77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Brammer?= Date: Fri, 5 Jun 2009 17:21:11 +0200 Subject: [PATCH] Move Game.ScriptEngine to ::ScriptEngine --- engine/inc/C4Aul.h | 1 + engine/inc/C4Game.h | 1 - engine/src/C4Aul.cpp | 2 ++ engine/src/C4AulExec.cpp | 4 ++-- engine/src/C4AulParse.cpp | 18 +++++++++--------- engine/src/C4Command.cpp | 2 +- engine/src/C4Console.cpp | 4 ++-- engine/src/C4Control.cpp | 4 ++-- engine/src/C4Def.cpp | 6 +++--- engine/src/C4Effect.cpp | 6 +++--- engine/src/C4Material.cpp | 2 +- engine/src/C4Object.cpp | 2 +- engine/src/C4PropertyDlg.cpp | 2 +- engine/src/C4Script.cpp | 12 ++++++------ engine/src/C4Value.cpp | 10 +++++----- 15 files changed, 39 insertions(+), 37 deletions(-) diff --git a/engine/inc/C4Aul.h b/engine/inc/C4Aul.h index 69390f162..9357c3b6b 100644 --- a/engine/inc/C4Aul.h +++ b/engine/inc/C4Aul.h @@ -580,4 +580,5 @@ class C4AulScriptEngine : public C4AulScript friend class C4AulParseState; }; +extern C4AulScriptEngine ScriptEngine; #endif diff --git a/engine/inc/C4Game.h b/engine/inc/C4Game.h index 0bc8c68cb..180e3e4f7 100644 --- a/engine/inc/C4Game.h +++ b/engine/inc/C4Game.h @@ -107,7 +107,6 @@ class C4Game C4ComponentHost Title; C4ComponentHost Names; C4ComponentHost GameText; - C4AulScriptEngine ScriptEngine; C4GameScriptHost Script; C4LangStringTable MainSysLangStringTable, ScenarioLangStringTable, ScenarioSysLangStringTable; C4MassMoverSet MassMover; diff --git a/engine/src/C4Aul.cpp b/engine/src/C4Aul.cpp index 24db520cc..99792340b 100644 --- a/engine/src/C4Aul.cpp +++ b/engine/src/C4Aul.cpp @@ -613,3 +613,5 @@ void C4AulFuncMap::Remove(C4AulFunc * func) *pFunc = (*pFunc)->MapNext; --FuncCnt; } + +C4AulScriptEngine ScriptEngine; diff --git a/engine/src/C4AulExec.cpp b/engine/src/C4AulExec.cpp index 60dcda9cd..029d120d5 100644 --- a/engine/src/C4AulExec.cpp +++ b/engine/src/C4AulExec.cpp @@ -375,10 +375,10 @@ C4Value C4AulExec::Exec(C4AulBCC *pCPos, bool fPassErrors) break; case AB_GLOBALN_R: - PushValueRef(*Game.ScriptEngine.GlobalNamed.GetItem(pCPos->Par.i)); + PushValueRef(*::ScriptEngine.GlobalNamed.GetItem(pCPos->Par.i)); break; case AB_GLOBALN_V: - PushValue(*Game.ScriptEngine.GlobalNamed.GetItem(pCPos->Par.i)); + PushValue(*::ScriptEngine.GlobalNamed.GetItem(pCPos->Par.i)); break; // prefix case AB_Inc1: // ++ diff --git a/engine/src/C4AulParse.cpp b/engine/src/C4AulParse.cpp index b3729dfa0..e8038b351 100644 --- a/engine/src/C4AulParse.cpp +++ b/engine/src/C4AulParse.cpp @@ -211,7 +211,7 @@ void C4AulScript::Warn(const char *pMsg, const char *pIdtf) // display it warning.show(); // count warnings - ++Game.ScriptEngine.warnCnt; + ++::ScriptEngine.warnCnt; } void C4AulParseState::Warn(const char *pMsg, const char *pIdtf) @@ -220,7 +220,7 @@ void C4AulParseState::Warn(const char *pMsg, const char *pIdtf) if (Fn && !Fn->Owner->Def && Fn->Owner->Appends) return; // script doesn't own function -> skip // (exception: global functions) - //if(pFunc) if(pFunc->pOrgScript != pScript && pScript != (C4AulScript *)&Game.ScriptEngine) return; + //if(pFunc) if(pFunc->pOrgScript != pScript && pScript != (C4AulScript *)&::ScriptEngine) return; // display error C4AulParseError warning(this, pMsg, pIdtf, TRUE); @@ -229,7 +229,7 @@ void C4AulParseState::Warn(const char *pMsg, const char *pIdtf) if (Fn && Fn->pOrgScript != a) DebugLogF(" (as #appendto/#include to %s)", Fn->Owner->ScriptName.getData()); // count warnings - ++Game.ScriptEngine.warnCnt; + ++::ScriptEngine.warnCnt; } void C4AulParseState::StrictError(const char *pMsg, const char *pIdtf) @@ -1890,7 +1890,7 @@ void C4AulParseState::Parse_Statement() else if(a->LocalNamed.GetItemNr(Idtf) != -1) { // global func? - if(Fn->Owner == &Game.ScriptEngine) + if(Fn->Owner == &::ScriptEngine) throw new C4AulParseError(this, "using local variable in global function!"); // insert variable by id Parse_Expression(); @@ -2096,7 +2096,7 @@ void C4AulParseState::Parse_Statement() FoundFn = Fn->OwnerOverloaded; else // get regular function - if(Fn->Owner == &Game.ScriptEngine) + if(Fn->Owner == &::ScriptEngine) FoundFn = a->Owner->GetFuncRecursive(Idtf); else FoundFn = a->GetFuncRecursive(Idtf); @@ -2524,7 +2524,7 @@ void C4AulParseState::Parse_Expression(int iParentPrio) else if(a->LocalNamed.GetItemNr(Idtf) != -1) { // global func? - if(Fn->Owner == &Game.ScriptEngine) + if(Fn->Owner == &::ScriptEngine) throw new C4AulParseError(this, "using local variable in global function!"); // insert variable by id AddBCC(AB_LOCALN_R, a->LocalNamed.GetItemNr(Idtf)); @@ -2608,7 +2608,7 @@ void C4AulParseState::Parse_Expression(int iParentPrio) { C4AulFunc *FoundFn; // get regular function - if(Fn->Owner == &Game.ScriptEngine) + if(Fn->Owner == &::ScriptEngine) FoundFn = Fn->Owner->GetFuncRecursive(Idtf); else FoundFn = a->GetFuncRecursive(Idtf); @@ -2909,7 +2909,7 @@ void C4AulParseState::Parse_Expression2(int iParentPrio) } if (Type == PARSER) { - pName = Game.ScriptEngine.Strings.RegString(Idtf); + pName = ::ScriptEngine.Strings.RegString(Idtf); } // add call chunk Shift(); @@ -3164,7 +3164,7 @@ BOOL C4AulScript::Parse() if (Fn->pOrgScript != this) DebugLogF(" (as #appendto/#include to %s)", Fn->Owner->ScriptName.getData()); // and count (visible only ;) ) - ++Game.ScriptEngine.errCnt; + ++::ScriptEngine.errCnt; } delete err; // make all jumps that don't have their destination yet jump here diff --git a/engine/src/C4Command.cpp b/engine/src/C4Command.cpp index 2335ae230..4ce3b7b64 100644 --- a/engine/src/C4Command.cpp +++ b/engine/src/C4Command.cpp @@ -2298,7 +2298,7 @@ void C4Command::CompileFunc(StdCompiler *pComp) if(TextBuf == "0") { Text = NULL; } else - { Text = Game.ScriptEngine.Strings.RegString(TextBuf); Text->IncRef(); } + { Text = ::ScriptEngine.Strings.RegString(TextBuf); Text->IncRef(); } } } diff --git a/engine/src/C4Console.cpp b/engine/src/C4Console.cpp index a0dc44b0d..bb4439ab0 100644 --- a/engine/src/C4Console.cpp +++ b/engine/src/C4Console.cpp @@ -1339,7 +1339,7 @@ void C4Console::EditScript() { if (::Network.isEnabled()) return; Game.Script.Open(); - Game.ScriptEngine.ReLink(&Game.Defs); + ::ScriptEngine.ReLink(&Game.Defs); } void C4Console::EditInfo() @@ -1380,7 +1380,7 @@ void C4Console::UpdateInputCtrl() gtk_list_store_clear(store); #endif // WITH_DEVELOPER_MODE / _WIN32 // add global and standard functions - for (C4AulFunc *pFn = Game.ScriptEngine.GetFirstFunc(); pFn; pFn = Game.ScriptEngine.GetNextFunc(pFn)) + for (C4AulFunc *pFn = ::ScriptEngine.GetFirstFunc(); pFn; pFn = ::ScriptEngine.GetNextFunc(pFn)) if (pFn->GetPublic()) { #ifdef _WIN32 diff --git a/engine/src/C4Control.cpp b/engine/src/C4Control.cpp index 13244659e..b2f0a8e3f 100644 --- a/engine/src/C4Control.cpp +++ b/engine/src/C4Control.cpp @@ -270,12 +270,12 @@ void C4ControlScript::Execute() const if (iTargetObj == SCOPE_Console) pScript = &Game.Script; else if (iTargetObj == SCOPE_Global) - pScript = &Game.ScriptEngine; + pScript = &::ScriptEngine; else if (pObj = Game.Objects.SafeObjectPointer(iTargetObj)) pScript = &(pObj->Def->Script); else // default: Fallback to global context - pScript = &Game.ScriptEngine; + pScript = &::ScriptEngine; C4Value rVal(pScript->DirectExec(pObj, szScript, "console script")); // show messages if (!fInternal) diff --git a/engine/src/C4Def.cpp b/engine/src/C4Def.cpp index e377051ca..a4395fdc9 100644 --- a/engine/src/C4Def.cpp +++ b/engine/src/C4Def.cpp @@ -704,7 +704,7 @@ BOOL C4Def::Load(C4Group &hGroup, if (dwLoadWhat & C4D_Load_Script) { // reg script to engine - Script.Reg2List(&Game.ScriptEngine, &Game.ScriptEngine); + Script.Reg2List(&::ScriptEngine, &::ScriptEngine); // Load script - loads string table as well, because that must be done after script load // for downwards compatibility with packing order Script.Load("Script", hGroup, C4CFN_Script, szLanguage, this, &StringTable, true); @@ -1058,7 +1058,7 @@ int32_t C4DefList::Load(C4Group &hGroup, DWORD dwLoadWhat, { // host will be destroyed by script engine, so drop the references C4ScriptHost *scr = new C4ScriptHost(); - scr->Reg2List(&Game.ScriptEngine, &Game.ScriptEngine); + scr->Reg2List(&::ScriptEngine, &::ScriptEngine); scr->Load(NULL, SysGroup, fn, Config.General.LanguageEx, NULL, &SysGroupString); } // if it's a physical group: watch out for changes @@ -1507,7 +1507,7 @@ BOOL C4DefList::Reload(C4Def *pDef, DWORD dwLoadWhat, const char *szLanguage, C4 BuildTable(); #ifdef C4ENGINE // update script engine - this will also do include callbacks - Game.ScriptEngine.ReLink(this); + ::ScriptEngine.ReLink(this); #endif #ifdef C4ENGINE // update definition pointers diff --git a/engine/src/C4Effect.cpp b/engine/src/C4Effect.cpp index e720d0b66..d7cda114b 100644 --- a/engine/src/C4Effect.cpp +++ b/engine/src/C4Effect.cpp @@ -57,7 +57,7 @@ C4AulScript *C4Effect::GetCallbackScript() else if (idCommandTarget && (pDef=Game.Defs.ID2Def(idCommandTarget))) pSrcScript = &pDef->Script; else - pSrcScript = &Game.ScriptEngine; + pSrcScript = &::ScriptEngine; return pSrcScript; } @@ -429,7 +429,7 @@ C4Value C4Effect::DoCall(C4Object *pObj, const char *szFn, C4Value &rVal1, C4Val else if (idCommandTarget && (pDef=Game.Defs.ID2Def(idCommandTarget))) pSrcScript = &pDef->Script; else - pSrcScript = &Game.ScriptEngine; + pSrcScript = &::ScriptEngine; // compose function name char fn[C4AUL_MAX_Identifier+1]; sprintf(fn, PSF_FxCustom, Name, szFn); @@ -775,7 +775,7 @@ int32_t FnFxFireStop(C4AulContext *ctx, C4Object *pObj, int32_t iNumber, int32_t C4String *FnFxFireInfo(C4AulContext *ctx, C4Object *pObj, int32_t iNumber) { - return Game.ScriptEngine.Strings.RegString(LoadResStr("IDS_OBJ_BURNS")); + return ::ScriptEngine.Strings.RegString(LoadResStr("IDS_OBJ_BURNS")); } diff --git a/engine/src/C4Material.cpp b/engine/src/C4Material.cpp index 750ba7d79..3f1987ed4 100644 --- a/engine/src/C4Material.cpp +++ b/engine/src/C4Material.cpp @@ -88,7 +88,7 @@ void C4MaterialReaction::ResolveScriptFuncs(const char *szMatName) { // get script func for script-defined behaviour if (pFunc == &C4MaterialMap::mrfScript) - pScriptFunc = Game.ScriptEngine.GetSFuncWarn(this->ScriptFunc.getData(), AA_PROTECTED, FormatString("Material reaction of \"%s\"", szMatName).getData()); + pScriptFunc = ::ScriptEngine.GetSFuncWarn(this->ScriptFunc.getData(), AA_PROTECTED, FormatString("Material reaction of \"%s\"", szMatName).getData()); else pScriptFunc = NULL; } diff --git a/engine/src/C4Object.cpp b/engine/src/C4Object.cpp index 9f999ac5f..2ab82bd12 100644 --- a/engine/src/C4Object.cpp +++ b/engine/src/C4Object.cpp @@ -934,7 +934,7 @@ BOOL C4Object::ExecLife() { // do energy transfer via script, so it can be overloaded by No-Magic-Energy-rule // always use global func instead of local to save double search - C4AulFunc *pMagicEnergyFn = Game.ScriptEngine.GetFuncRecursive(PSF_DoMagicEnergy); + C4AulFunc *pMagicEnergyFn = ::ScriptEngine.GetFuncRecursive(PSF_DoMagicEnergy); if (pMagicEnergyFn) // should always be true { C4AulParSet pars(C4VInt(-transfer), C4VObj(Contained)); diff --git a/engine/src/C4PropertyDlg.cpp b/engine/src/C4PropertyDlg.cpp index ec085af8e..eab2b8c37 100644 --- a/engine/src/C4PropertyDlg.cpp +++ b/engine/src/C4PropertyDlg.cpp @@ -354,7 +354,7 @@ void C4PropertyDlg::UpdateInputCtrl(C4Object *pObj) #endif // _WIN32 // add global and standard functions - for (C4AulFunc *pFn = Game.ScriptEngine.GetFirstFunc(); pFn; pFn = Game.ScriptEngine.GetNextFunc(pFn)) + for (C4AulFunc *pFn = ::ScriptEngine.GetFirstFunc(); pFn; pFn = ::ScriptEngine.GetNextFunc(pFn)) if (pFn->GetPublic()) { #ifdef _WIN32 diff --git a/engine/src/C4Script.cpp b/engine/src/C4Script.cpp index 4525d0e91..c00028ad8 100644 --- a/engine/src/C4Script.cpp +++ b/engine/src/C4Script.cpp @@ -55,7 +55,7 @@ inline const static char *FnStringPar(C4String *pString) } inline C4String *String(const char * str) { - return str ? Game.ScriptEngine.Strings.RegString(str) : NULL; + return str ? ::ScriptEngine.Strings.RegString(str) : NULL; } static StdStrBuf FnStringFormat(C4AulContext *cthr, const char *szFormatPar, C4Value * Par0=0, C4Value * Par1=0, C4Value * Par2=0, C4Value * Par3=0, @@ -3485,13 +3485,13 @@ static C4Value FnVar_C4V(C4AulContext *cthr, C4Value* iVarIndex) static C4Value FnSetGlobal_C4V(C4AulContext *cthr, C4Value* iVarIndex, C4Value* iValue) { - Game.ScriptEngine.Global[iVarIndex->getInt()]=*iValue; + ::ScriptEngine.Global[iVarIndex->getInt()]=*iValue; return *iValue; } static C4Value FnGlobal_C4V(C4AulContext *cthr, C4Value* iVarIndex) { - return Game.ScriptEngine.Global[iVarIndex->getInt()].GetRef(); + return ::ScriptEngine.Global[iVarIndex->getInt()].GetRef(); } static C4Value FnSetLocal_C4V(C4AulContext *cthr, C4Value* iVarIndex, C4Value* iValue, C4Value* pObj_C4V) @@ -4751,7 +4751,7 @@ static C4Value FnGlobalN(C4AulContext* cthr, C4Value* strName_C4V) const char* strName = FnStringPar(strName_C4V->getStr()); // find variable - C4Value* pVarN = Game.ScriptEngine.GlobalNamed.GetItem(strName); + C4Value* pVarN = ::ScriptEngine.GlobalNamed.GetItem(strName); if(!pVarN) return C4Value(); @@ -6228,7 +6228,7 @@ static bool FnStartScriptProfiler(C4AulContext *ctx, C4ID idScript) pScript = &pDef->Script; } else - pScript = &Game.ScriptEngine; + pScript = &::ScriptEngine; // profile it C4AulProfiler::StartProfiling(pScript); return true; @@ -6459,7 +6459,7 @@ void InitFunctionMap(C4AulScriptEngine *pEngine) { // add all def constants (all Int) for (C4ScriptConstDef *pCDef = &C4ScriptConstMap[0]; pCDef->Identifier; pCDef++) - Game.ScriptEngine.RegisterGlobalConstant(pCDef->Identifier, C4Value(pCDef->Data, pCDef->ValType)); + ::ScriptEngine.RegisterGlobalConstant(pCDef->Identifier, C4Value(pCDef->Data, pCDef->ValType)); // add all def script funcs for (C4ScriptFnDef *pDef = &C4ScriptFnMap[0]; pDef->Identifier; pDef++) diff --git a/engine/src/C4Value.cpp b/engine/src/C4Value.cpp index f47ed15e1..bd05c1e8b 100644 --- a/engine/src/C4Value.cpp +++ b/engine/src/C4Value.cpp @@ -273,7 +273,7 @@ C4V_Type C4Value::GuessType() } // string? - if (Game.ScriptEngine.Strings.FindString(Data.Str)) + if (::ScriptEngine.Strings.FindString(Data.Str)) { Type = C4V_String; // see above @@ -571,7 +571,7 @@ C4Value C4VString(const char *strString) #ifdef C4ENGINE // safety if(!strString) return C4Value(); - return C4Value(Game.ScriptEngine.Strings.RegString(strString)); + return C4Value(::ScriptEngine.Strings.RegString(strString)); #else return C4Value(); #endif @@ -582,7 +582,7 @@ C4Value C4VString(StdStrBuf Str) #ifdef C4ENGINE // safety if(Str.isNull()) return C4Value(); - return C4Value(Game.ScriptEngine.Strings.RegString(Str)); + return C4Value(::ScriptEngine.Strings.RegString(Str)); #else return C4Value(); #endif @@ -659,7 +659,7 @@ void C4Value::CompileFunc(StdCompiler *pComp) int32_t iTmp; pComp->Value(iTmp); // search - C4String *pString = Game.ScriptEngine.Strings.FindString(iTmp); + C4String *pString = ::ScriptEngine.Strings.FindString(iTmp); if(pString) { Data.Str = pString; @@ -718,7 +718,7 @@ void C4Value::CompileFunc(StdCompiler *pComp) pComp->Value(s); if(fCompiler) { - C4String *pString = Game.ScriptEngine.Strings.RegString(s); + C4String *pString = ::ScriptEngine.Strings.RegString(s); if(pString) { Data.Str = pString;