From 3526203ccb4400e7fb20076fbe6afae6b99d5d1c Mon Sep 17 00:00:00 2001 From: funkyfranky <> Date: Mon, 23 Jul 2018 22:24:59 +0200 Subject: [PATCH] DESIGNATE Class Fix DESIGNATE - GetRootMenu() function seems obsolete and caused a crash in DESIGNATE class. Needs to be replaced by GetMenu() Function. This bug only appeared when a mission is given in DESIGNATE:New(...) --- Moose Development/Moose/Core/Menu.lua | 13 +++++++++---- Moose Development/Moose/Core/Set.lua | 1 + Moose Development/Moose/Functional/Designate.lua | 5 +++-- Moose Development/Moose/Tasking/CommandCenter.lua | 1 + Moose Development/Moose/Tasking/Mission.lua | 6 ++++-- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Moose Development/Moose/Core/Menu.lua b/Moose Development/Moose/Core/Menu.lua index fd677b5c5..3e4b784a8 100644 --- a/Moose Development/Moose/Core/Menu.lua +++ b/Moose Development/Moose/Core/Menu.lua @@ -89,11 +89,14 @@ function MENU_INDEX:PrepareCoalition( CoalitionSide ) self.Coalition[CoalitionSide].Menus = self.Coalition[CoalitionSide].Menus or {} end - +--- +-- @param Wrapper.Group#GROUP Group function MENU_INDEX:PrepareGroup( Group ) + if Group and Group:IsAlive() then local GroupName = Group:GetName() self.Group[GroupName] = self.Group[GroupName] or {} self.Group[GroupName].Menus = self.Group[GroupName].Menus or {} + end end @@ -133,9 +136,11 @@ end function MENU_INDEX:HasGroupMenu( Group, Path ) - - local MenuGroupName = Group:GetName() - return self.Group[MenuGroupName].Menus[Path] + if Group and Group:IsAlive() then + local MenuGroupName = Group:GetName() + return self.Group[MenuGroupName].Menus[Path] + end + return nil end function MENU_INDEX:SetGroupMenu( Group, Path, Menu ) diff --git a/Moose Development/Moose/Core/Set.lua b/Moose Development/Moose/Core/Set.lua index 5453f9844..e81beb007 100644 --- a/Moose Development/Moose/Core/Set.lua +++ b/Moose Development/Moose/Core/Set.lua @@ -798,6 +798,7 @@ function SET_GROUP:GetAliveSet() -- Clean the Set before returning with only the alive Groups. for GroupName, GroupObject in pairs( self.Set ) do + local GroupObject=GroupObject --Wrapper.Group#GROUP if GroupObject then if GroupObject:IsAlive() then AliveSet:Add( GroupName, GroupObject ) diff --git a/Moose Development/Moose/Functional/Designate.lua b/Moose Development/Moose/Functional/Designate.lua index f23961e12..25d554466 100644 --- a/Moose Development/Moose/Functional/Designate.lua +++ b/Moose Development/Moose/Functional/Designate.lua @@ -175,7 +175,7 @@ do -- DESIGNATE -- Smoke will fire for 5 minutes. -- Each available recce within range will smoke a target. -- Smoking can be requested while lasing targets. - -- Smoke will appear “around” the targets, because of accuracy limitations. + -- Smoke will appear "around" the targets, because of accuracy limitations. -- -- -- Have FUN! @@ -952,7 +952,8 @@ do -- DESIGNATE local MissionMenu = nil if self.Mission then - MissionMenu = self.Mission:GetRootMenu( AttackGroup ) + --MissionMenu = self.Mission:GetRootMenu( AttackGroup ) + MissionMenu = self.Mission:GetMenu( AttackGroup ) end local MenuTime = timer.getTime() diff --git a/Moose Development/Moose/Tasking/CommandCenter.lua b/Moose Development/Moose/Tasking/CommandCenter.lua index 4b3e8a17c..ce0ab6ce5 100644 --- a/Moose Development/Moose/Tasking/CommandCenter.lua +++ b/Moose Development/Moose/Tasking/CommandCenter.lua @@ -426,6 +426,7 @@ end --- Gets the commandcenter menu structure governed by the HQ command center. -- @param #COMMANDCENTER self +-- @param Wrapper.Group#Group TaskGroup Task Group. -- @return Core.Menu#MENU_COALITION function COMMANDCENTER:GetMenu( TaskGroup ) diff --git a/Moose Development/Moose/Tasking/Mission.lua b/Moose Development/Moose/Tasking/Mission.lua index 6bbca053e..877754efa 100644 --- a/Moose Development/Moose/Tasking/Mission.lua +++ b/Moose Development/Moose/Tasking/Mission.lua @@ -611,13 +611,14 @@ function MISSION:RemoveTaskMenu( Task ) end ---- Gets the root mission menu for the TaskGroup. +--- Gets the root mission menu for the TaskGroup. Obsolete?! Originally no reference to TaskGroup parameter! -- @param #MISSION self +-- @param Wrapper.Group#GROUP TaskGroup Task group. -- @return Core.Menu#MENU_COALITION self function MISSION:GetRootMenu( TaskGroup ) -- R2.2 local CommandCenter = self:GetCommandCenter() - local CommandCenterMenu = CommandCenter:GetMenu() + local CommandCenterMenu = CommandCenter:GetMenu( TaskGroup ) local MissionName = self:GetText() --local MissionMenu = CommandCenterMenu:GetMenu( MissionName ) @@ -629,6 +630,7 @@ end --- Gets the mission menu for the TaskGroup. -- @param #MISSION self +-- @param Wrapper.Group#GROUP TaskGroup Task group. -- @return Core.Menu#MENU_COALITION self function MISSION:GetMenu( TaskGroup ) -- R2.1 -- Changed Menu Structure