diff options
| -rw-r--r-- | DTCallback.c | 5 | ||||
| -rw-r--r-- | DTMenuCompatibility.c | 2 | ||||
| -rw-r--r-- | DTUtility.c | 47 |
3 files changed, 52 insertions, 2 deletions
diff --git a/DTCallback.c b/DTCallback.c index eef0877..cd0b0fe 100644 --- a/DTCallback.c +++ b/DTCallback.c @@ -64,7 +64,7 @@ global func CallA(callback, args, bool safe, array refs) { if(GetType(target) == C4V_C4Object) { - return ObjectCall(target, function, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); + return PrivateCall(target, function, args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]); } else if(GetType(target) == C4V_C4ID) { @@ -295,6 +295,9 @@ global func CheckCallback(callback) } } +// to silence the error if no ScopedVars are included +global func CheckScopedVar() { return _inherited(...); } + global func CheckCustomCallback() { return _inherited(...); } global func CheckBindCallbackBinding(array binding) diff --git a/DTMenuCompatibility.c b/DTMenuCompatibility.c index 41331dc..d4e9506 100644 --- a/DTMenuCompatibility.c +++ b/DTMenuCompatibility.c @@ -7,7 +7,7 @@ static const Menu_Enum_InfoCaption = Menu_Layout_InfoCaption; static const Menu_Enum_Caption = Menu_Layout_Caption; static const Menu_Enum_Value = Menu_Layout_Value; -global func Menu_SubMenu(caption, symbol, string infoCaption, array menuEntries_Settings, int count, int extra, XPar1, XPar2) +global func Menu_SubMenu(caption, symbol, infoCaption, array menuEntries_Settings, int count, int extra, XPar1, XPar2) { if(GetType(caption) == C4V_Array) // caption contains all entry settings for the current menu and symbol contains all submenu entries and settings { diff --git a/DTUtility.c b/DTUtility.c index 481ebe9..d491567 100644 --- a/DTUtility.c +++ b/DTUtility.c @@ -375,6 +375,53 @@ global func GetPlrExtraDataArray(int plr, string name) }
}
+global func SetPlrExtraDataIntArray(int plr, string name, array arr)
+{
+ var lengthName = Format("%sL", name);
+
+ var oldLength = CastInt(GetPlrExtraData(plr, lengthName));
+
+ var length = GetLength(arr);
+
+ for(var i = 0; i < length; ++i)
+ {
+ var partName = Format("%s%d", name, i);
+ if(arr[i] != 0)
+ {
+ SetPlrExtraData(plr, partName, arr[i]);
+ }
+ else if(GetPlrExtraData(plr, partName) != 0)
+ {
+ SetPlrExtraData(plr, partName, 0);
+ }
+ }
+
+ SetPlrExtraData(plr, lengthName, length);
+
+ for(var i = length; i < oldLength; ++i)
+ {
+ var partName = Format("%s%d", name, i);
+ if(GetPlrExtraData(plr, partName) != 0)
+ {
+ SetPlrExtraData(plr, partName, 0);
+ }
+ }
+}
+
+global func GetPlrExtraDataIntArray(int plr, string name)
+{
+ var length = CastInt(GetPlrExtraData(plr, Format("%sL", name)));
+
+ var ret = CreateArray(length);
+
+ for(var i = 0; i < length; ++i)
+ {
+ ret[i] = CastInt(GetPlrExtraData(plr, Format("%s%d", name, i)));
+ }
+
+ return ret;
+}
+
global func EnableScripting()
{
AddMsgBoardCmd("s", "ScriptingFunc(\"%s\", %player%)", C4MSGCMDR_Escaped);
|
