From c5743c993a7037d102f51a2a9c2f207ed4e20311 Mon Sep 17 00:00:00 2001 From: David Pierron Date: Fri, 1 Aug 2025 19:39:54 +0200 Subject: [PATCH] completed the specific radio menu feature (was missing some bits) --- Script/The Universal Mission/DebugMenu.lua | 2 +- Script/The Universal Mission/Intermission.lua | 8 ++++---- Script/The Universal Mission/MissionMenu.lua | 12 ++++++------ Script/The Universal Mission/PlayerCareer.lua | 3 ++- Script/The Universal Mission/SupportAWACS.lua | 3 ++- Script/The Universal Mission/WingmenMenu.lua | 3 ++- 6 files changed, 17 insertions(+), 14 deletions(-) diff --git a/Script/The Universal Mission/DebugMenu.lua b/Script/The Universal Mission/DebugMenu.lua index 2b62f09..d3074ec 100644 --- a/Script/The Universal Mission/DebugMenu.lua +++ b/Script/The Universal Mission/DebugMenu.lua @@ -94,7 +94,7 @@ do function TUM.debugMenu.createMenu() if not TUM.DEBUG_MODE then return end - local rootMenu = missionCommands.addSubMenu("[DEBUG]") + local rootMenu = missionCommands.addSubMenu("[DEBUG]", TUM.getOrCreateRootMenu()) missionCommands.addCommand("Detonate - BOOM map markers", rootMenu, doMarkersBoom, nil) missionCommands.addCommand("Detonate - AIRBOOM map markers", rootMenu, doMarkersAirBoom, nil) missionCommands.addCommand("Wingman - kill", rootMenu, doKillWingman, nil) diff --git a/Script/The Universal Mission/Intermission.lua b/Script/The Universal Mission/Intermission.lua index c78176a..c477ad6 100644 --- a/Script/The Universal Mission/Intermission.lua +++ b/Script/The Universal Mission/Intermission.lua @@ -86,7 +86,7 @@ do -- Creates the mission briefing menu ------------------------------------- function TUM.intermission.createMenu() - missionCommands.removeItem() -- Clear the menu + local rootMenu = TUM.getOrCreateRootMenu(true) -- Clear the menu local briefingText = "Welcome to The Universal Mission for DCS World, a highly customizable mission available for single-player and PvE.\n\nOpen the communication menu and select the ''F10. Other'' option to access mission settings." DCSEx.envMission.setBriefing(coalition.side.RED, briefingText) @@ -94,9 +94,9 @@ do TUM.intermission.createMissionZonesMarkers() -- Show the available mission zones on the F10 map - missionCommands.addCommand("ℹ Display mission settings", nil, TUM.settings.printSettingsSummary, false) + missionCommands.addCommand("ℹ Display mission settings", rootMenu, TUM.settings.printSettingsSummary, false) - local settingsMenu = missionCommands.addSubMenu("✎ Change mission settings") + local settingsMenu = missionCommands.addSubMenu("✎ Change mission settings", rootMenu) createSubMenu(TUM.settings.id.COALITION_BLUE, settingsMenu) createSubMenu(TUM.settings.id.COALITION_RED, settingsMenu) createSubMenu(TUM.settings.id.TASKING, settingsMenu) @@ -107,7 +107,7 @@ do createSubMenu(TUM.settings.id.WINGMEN, settingsMenu) createSubMenu(TUM.settings.id.AI_CAP, settingsMenu) TUM.playerCareer.createMenu() - missionCommands.addCommand("➤ Begin mission", nil, doCommandStartMission, nil) + missionCommands.addCommand("➤ Begin mission", rootMenu, doCommandStartMission, nil) TUM.debugMenu.createMenu() -- Append debug menu to other menus (if debug mode enabled) end diff --git a/Script/The Universal Mission/MissionMenu.lua b/Script/The Universal Mission/MissionMenu.lua index fc65d99..36c118b 100644 --- a/Script/The Universal Mission/MissionMenu.lua +++ b/Script/The Universal Mission/MissionMenu.lua @@ -34,11 +34,11 @@ do end function TUM.missionMenu.create() - missionCommands.removeItem() -- Clear the menu - missionCommands.addCommand("☱ Mission status", nil, doCommandMissionStatus, nil) + local rootMenu = TUM.getOrCreateRootMenu(true) -- Clear the menu + missionCommands.addCommand("☱ Mission status", rootMenu, doCommandMissionStatus, nil) - local objectivesMenuRoot = missionCommands.addSubMenu("❖ Objectives") - local navigationMenuRoot = missionCommands.addSubMenu("➽ Navigation") + local objectivesMenuRoot = missionCommands.addSubMenu("❖ Objectives", rootMenu) + local navigationMenuRoot = missionCommands.addSubMenu("➽ Navigation", rootMenu) -- missionCommands.addCommand("Nav to nearest airbase", navigationMenuRoot, doCommandNearestAirbase, nil) for i=1,TUM.objectives.getCount() do @@ -57,10 +57,10 @@ do TUM.supportAWACS.createMenu() if not TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then -- If not multiplayer, add "show mission score" command - missionCommands.addCommand("★ Display mission score", nil, TUM.playerScore.showScore, nil) + missionCommands.addCommand("★ Display mission score", rootMenu, TUM.playerScore.showScore, nil) end - local abortRoot = missionCommands.addSubMenu("⬣ Abort mission") + local abortRoot = missionCommands.addSubMenu("⬣ Abort mission", rootMenu) if not TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) and DCSEx.io.canReadAndWrite() then missionCommands.addCommand("✓ Confirm (all xp since last landing will be lost!)", abortRoot, doCommandAbortMission, nil) else diff --git a/Script/The Universal Mission/PlayerCareer.lua b/Script/The Universal Mission/PlayerCareer.lua index 60d7ece..24f4240 100644 --- a/Script/The Universal Mission/PlayerCareer.lua +++ b/Script/The Universal Mission/PlayerCareer.lua @@ -146,10 +146,11 @@ do -- Appends the career menu to the F10 menu. Only works in single-player missions ------------------------------------- function TUM.playerCareer.createMenu() + local rootMenu = TUM.getOrCreateRootMenu() if not DCSEx.io.canReadAndWrite() then return end -- IO disabled, career and scoring disabled if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No career in multiplayer - missionCommands.addCommand("✪ View pilot career stats", nil, TUM.playerCareer.displayMedalBox, true) + missionCommands.addCommand("✪ View pilot career stats", rootMenu, TUM.playerCareer.displayMedalBox, true) end ------------------------------------- diff --git a/Script/The Universal Mission/SupportAWACS.lua b/Script/The Universal Mission/SupportAWACS.lua index eeaf683..95df77f 100644 --- a/Script/The Universal Mission/SupportAWACS.lua +++ b/Script/The Universal Mission/SupportAWACS.lua @@ -91,8 +91,9 @@ do function TUM.supportAWACS.createMenu() if not awacsGroupID then return end -- No AWACS + local rootMenu = TUM.getOrCreateRootMenu() - local rootPath = missionCommands.addSubMenu("⌾ Awacs") + local rootPath = missionCommands.addSubMenu("⌾ Awacs", rootMenu) missionCommands.addCommand("Bogey dope", rootPath, doCommandBogeyDope, nil) missionCommands.addCommand("Picture", rootPath, doCommandPicture, nil) end diff --git a/Script/The Universal Mission/WingmenMenu.lua b/Script/The Universal Mission/WingmenMenu.lua index 9e3fa4a..d5fd41e 100644 --- a/Script/The Universal Mission/WingmenMenu.lua +++ b/Script/The Universal Mission/WingmenMenu.lua @@ -75,11 +75,12 @@ do end function TUM.wingmenMenu.create() + local rootMenu = TUM.getOrCreateRootMenu() if TUM.settings.getValue(TUM.settings.id.MULTIPLAYER) then return end -- No wingmen in multiplayer if TUM.settings.getValue(TUM.settings.id.WINGMEN) <= 1 then return end -- No wingmen local isWW2 = (TUM.settings.getValue(TUM.settings) == DCSEx.enums.timePeriod.WORLD_WAR_2) -- Some options are different when time period is WW2 - local rootPath = missionCommands.addSubMenu("✈ Flight") + local rootPath = missionCommands.addSubMenu("✈ Flight", rootMenu) missionCommands.addCommand("Cover me!", rootPath, radioCommandCoverMe, nil) ------------------------------------------------------