summaryrefslogtreecommitdiffstats
path: root/Script.c
diff options
context:
space:
mode:
Diffstat (limited to 'Script.c')
-rw-r--r--Script.c46
1 files changed, 24 insertions, 22 deletions
diff --git a/Script.c b/Script.c
index 31e788b..1af5cb4 100644
--- a/Script.c
+++ b/Script.c
@@ -522,6 +522,10 @@ func HandleEntries(array factoryEntries, int& i, array& ret, map& retSettings, a
{
newSettings = factoryResult.Settings;
newEntries = factoryResult.Entries;
+ if (GetType(newSettings.Selection) == C4V_Int)
+ {
+ newSettings.Selection = [newSettings.Selection, 0];
+ }
}
else if(GetType(factoryResult) == C4V_Array)
{
@@ -709,7 +713,7 @@ func AddEntries()
text = Format("%s {{MN7I:7}}", text);
}
- AddMenuItem(text, !noCommand && "MenuItemCommand", iconID, settings.Object, entry.Count, entryIndex, showDesc && entry.Description || nil, entry.Extra, entry.XPar1, entry.XPar2);
+ AddMenuItem(text, !noCommand && "MenuItemCommand" || nil, iconID, settings.Object, entry.Count, entryIndex, showDesc && entry.Description || nil, entry.Extra, entry.XPar1, entry.XPar2);
if(deleteIcon)
{
@@ -770,7 +774,8 @@ func React(reaction, array entryIndex, int refreshDelayed)
func CheckCondition(map entry)
{
var condition = entry.Condition;
- return !condition || (CallA(condition.Callback, [entry.Icon, settings.Object, entry.Args]) || settings.Condition.DisableMode) == Menu_ConditionReact_Show;
+ var result = !condition || (CallA(condition.Callback, [entry.Icon, settings.Object, entry.Args]) || settings.Condition.DisableMode);
+ return result == Menu_ConditionReact_Show || result == true;
}
func MenuItemCommand(id ID, int itemNumber, int action)
@@ -1193,14 +1198,11 @@ global func Menu_Entry(map entry)
{
entry = { Placeholder = false };
}
- else
- {
- entry = Extend({
- Text = "",
- Placeholder = -1,
- Extra = 0,
- }, entry, true);
- }
+ entry = Extend({
+ Text = "",
+ Placeholder = -1,
+ Extra = 0,
+ }, entry, true);
if(!entry.Description)
{
@@ -1605,7 +1607,7 @@ func AdaptorFactory(args, int entryIndex, int entryColumn)
}
else if(args.Type == Menu_AdaptorType_ID)
{
- text = Format(entry.Text, val && GetName(0, val) || "");
+ text = Format(entry.Text, val && GetName(nil, val) || "");
if(val)
{
ExtraIcon(text, icon, val);
@@ -1905,9 +1907,9 @@ func AdaptorCommand(int action, object obj, args, array allArgs)
}
if(action == Menu_CallbackType_Special2)
{
- if(msgBoardMode == 0)
+ if(msgBoardMode == nil)
{
- msgBoardMode = Menu_AdaptorType_Integer + 1;
+ msgBoardMode = Menu_AdaptorType_Integer;
msgBoardEntry = args.EntryIndex;
CallMessageBoard(this, false, args.MessageBoardText, GetOwner(obj));
}
@@ -1946,9 +1948,9 @@ func AdaptorCommand(int action, object obj, args, array allArgs)
{
if(action & (Menu_CallbackType_Normal | Menu_CallbackType_Special2))
{
- if(msgBoardMode == 0)
+ if(msgBoardMode == nil)
{
- msgBoardMode = Menu_AdaptorType_String + 1;
+ msgBoardMode = Menu_AdaptorType_String;
msgBoardEntry = args.EntryIndex;
CallMessageBoard(this, false, args.MessageBoardText, GetOwner(obj));
}
@@ -1966,9 +1968,9 @@ func AdaptorCommand(int action, object obj, args, array allArgs)
{
if(action & (Menu_CallbackType_Normal | Menu_CallbackType_Special2))
{
- if(msgBoardMode == 0)
+ if(msgBoardMode == nil)
{
- msgBoardMode = Menu_AdaptorType_ID + 1;
+ msgBoardMode = Menu_AdaptorType_ID;
msgBoardEntry = args.EntryIndex;
CallMessageBoard(this, false, args.MessageBoardText, GetOwner(obj));
}
@@ -2058,7 +2060,7 @@ func InputCallback(string input, int plr)
var callbackArgs = args.Args;
var oldVal = ScopedVar(args.Variable);
var val = input;
- if(msgBoardMode - 1 == Menu_AdaptorType_Integer)
+ if(msgBoardMode == Menu_AdaptorType_Integer)
{
var int = ParseInt(input);
var limits = AdaptorGetLimits(args.Limits);
@@ -2085,7 +2087,7 @@ func InputCallback(string input, int plr)
val = oldVal;
}
}
- else if(msgBoardMode - 1 == Menu_AdaptorType_String)
+ else if(msgBoardMode == Menu_AdaptorType_String)
{
if(args.NoEmptyString && (!input || input == ""))
{
@@ -2096,14 +2098,14 @@ func InputCallback(string input, int plr)
ScopedVar(args.Variable) = input;
}
}
- else if(msgBoardMode - 1 == Menu_AdaptorType_ID)
+ else if(msgBoardMode == Menu_AdaptorType_ID)
{
val = GetIDByName(input); // WARNING: desyncs between clients with different languages
if(!val && GetLength(input) == 4) val = C4Id(input);
- if(!GetName(0, val)) val = 0;
+ if(!GetName(nil, val)) val = 0;
ScopedVar(args.Variable) = val;
}
- msgBoardMode = 0;
+ msgBoardMode = nil;
if(val != oldVal)
{
var reaction = CallCallbacks(args.Callbacks, Menu_CallbackType_ValueChanged, [Menu_CallbackType_ValueChanged, entry.Icon, settings.Object, callbackArgs, 0, 0, val, oldVal]);