From edd1359010ce32d5ff6a3b77fcb6bbe7e21b5703 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Sun, 13 Feb 2022 21:13:36 +0100 Subject: Update to map based DTMenu --- CrewSelection.c4d/Script.c | 66 ++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 32 deletions(-) (limited to 'CrewSelection.c4d') diff --git a/CrewSelection.c4d/Script.c b/CrewSelection.c4d/Script.c index 5282b3b..920a604 100644 --- a/CrewSelection.c4d/Script.c +++ b/CrewSelection.c4d/Script.c @@ -1,4 +1,4 @@ -#strict 2 +#strict 3 func Activate(int player) { @@ -10,27 +10,30 @@ func Activate(int player) var selectionMark = cursor->CreateSelectMark(); var menu = CreateNewMenu - ([ - Menu_Caption(GetName(this)), - Menu_Symbol(GetID()), - Menu_Object(cursor), - Menu_Style_Context(), - - Menu_Factory([ObjectCallback("CrewFactory", true)], [player, selectionMark]), - Menu_Entry([ - Menu_Entry_Caption("$SelectAll$"), - Menu_Entry_Callbacks([Menu_Callback(ObjectCallback("SelectAll", true), Menu_CallbackType_Defaults, [Menu_CallbackArg_Args, Menu_CallbackArg_Action, Menu_CallbackArg_MenuObject])]), - Menu_Entry_Args([player, 0, -3]) - ]), - Menu_Entry([ - Menu_Entry_Caption("$InvertSelection$"), - Menu_Entry_Callbacks([Menu_Callback(ObjectCallback("InvertSelection", true), Menu_CallbackType_Defaults, [Menu_CallbackArg_Args, Menu_CallbackArg_Action, Menu_CallbackArg_MenuObject])]), - Menu_Entry_Args([player, 0, -2]) - ]), - Menu_Accept() - ]); - - var effect = AddEffect("CleanupSelectionMark", menu, 1, 0, this, 0); + ({ + Settings = { + Title = GetName(this), + Icon = GetID(), + Object = cursor, + Style = C4MN_Style_Context + }, + Entries = [ + Menu_Factory([ObjectCallback("CrewFactory", true)], [player, selectionMark]), + Menu_Entry({ + Text = "$SelectAll$", + Callbacks = [Menu_Callback(ObjectCallback("SelectAll", true), Menu_CallbackType_Defaults, [Menu_CallbackArg_Args, Menu_CallbackArg_Action, Menu_CallbackArg_MenuObject])], + Args = [player, 0, -3] + }), + Menu_Entry({ + Text = "$InvertSelection$", + Callbacks = [Menu_Callback(ObjectCallback("InvertSelection", true), Menu_CallbackType_Defaults, [Menu_CallbackArg_Args, Menu_CallbackArg_Action, Menu_CallbackArg_MenuObject])], + Args = [player, 0, -2] + }), + Menu_Accept() + ] + }); + + var effect = AddEffect("CleanupSelectionMark", menu, 1, 0, this); EffectVar(0, menu, effect) = selectionMark; EffectVar(1, menu, effect) = player; @@ -55,19 +58,18 @@ func CrewFactory(array args, int entryNumber) caption = Format("%s", caption); } - ArrayAppend(entries, Menu_Entry - ([ - Menu_Entry_Caption(caption), - Menu_Entry_Symbol(crew), + entries[] = Menu_Entry + ({ + Text = caption, + Icon = [crew, false], - Menu_Entry_Callbacks - ([ + Callbacks = [ Menu_Callback(ObjectCallback("CrewSelection", true), Menu_CallbackType_Defaults, [Menu_CallbackArg_Args, Menu_CallbackArg_Action, Menu_CallbackArg_MenuObject]), Menu_Callback(ObjectCallback("HighlightCrew", true), Menu_CallbackType_Selection, [Menu_CallbackArg_Args]), Menu_Callback(ObjectCallback("UnhighlightCrew", true), Menu_CallbackType_Deselection, [Menu_CallbackArg_Args]) - ]), - Menu_Entry_Args([player, crew, entryNumber, selectionMark]) - ])); + ], + Args = [player, crew, entryNumber, selectionMark] + }); ++entryNumber; } } @@ -191,4 +193,4 @@ func GetCursorCount(int player) { for(var i = 0; GetCursor(player, i); ++i); return i; -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf