Script: Reimplement GameCall in C4Script

scancodes-fix
Günther Brammer 2012-08-19 21:33:28 +02:00
parent f38670abc3
commit a62e556b63
3 changed files with 9 additions and 14 deletions

View File

@ -26,4 +26,11 @@ static const Action = {
Directions = 1,
Step = 1,
Procedure = DFA_NONE,
};
};
global func GameCall(string fn) {
if (!fn) return;
var f = Scenario[fn];
if (!f) return;
return Scenario->Call(f, ...);
}

View File

@ -1060,17 +1060,6 @@ C4Object* FnObject(C4PropList * _this, long iNumber)
// See FnObjectNumber
}
static C4Value FnGameCall(C4PropList * _this, C4Value * Pars)
{
C4String * fn = Pars[0].getStr();
if (!fn) return C4Value();
// copy parameters
C4AulParSet ParSet(&Pars[1], 9);
// Call
return ::GameScript.Call(fn->GetCStr(), &ParSet, true);
}
static C4Value FnGameCallEx(C4PropList * _this, C4Value * Pars)
{
C4String * fn = Pars[0].getStr();
@ -2580,7 +2569,6 @@ C4ScriptFnDef C4ScriptGameFnMap[]=
{ "FindObject", 1, C4V_Object, { C4V_Array ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnFindObject },
{ "FindObjects", 1, C4V_Array, { C4V_Array ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnFindObjects },
{ "ObjectCount", 1, C4V_Int, { C4V_Array ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnObjectCount },
{ "GameCall", 1, C4V_Any, { C4V_String ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnGameCall },
{ "GameCallEx", 1, C4V_Any, { C4V_String ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnGameCallEx },
{ "PlayerMessage", 1, C4V_Int, { C4V_Int ,C4V_String ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnPlayerMessage },
{ "Message", 1, C4V_Bool, { C4V_String ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any ,C4V_Any}, FnMessage },

View File

@ -217,7 +217,7 @@ C4PropList::~C4PropList()
assert(PropLists.Has(this));
PropLists.Remove(this);
#endif
assert (!C4PropListNumbered::CheckPropList(this));
assert(!C4PropListNumbered::CheckPropList(this));
}
bool C4PropList::operator==(const C4PropList &b) const