diff --git a/Moose Development/Moose/Core/Database.lua b/Moose Development/Moose/Core/Database.lua index c9f7ed174..049673c59 100644 --- a/Moose Development/Moose/Core/Database.lua +++ b/Moose Development/Moose/Core/Database.lua @@ -62,6 +62,7 @@ DATABASE = { COUNTRY_ID = {}, COUNTRY_NAME = {}, NavPoints = {}, + PLAYERSETTINGS = {}, } local _DATABASECoalition = @@ -107,27 +108,33 @@ function DATABASE:New() self:_RegisterGroupsAndUnits() self:_RegisterClients() self:_RegisterStatics() - self:_RegisterPlayers() + --self:_RegisterPlayers() self:_RegisterAirbases() self.UNITS_Position = 0 --- @param #DATABASE self local function CheckPlayers( self ) + + local CoalitionsData = { AlivePlayersRed = coalition.getPlayers( coalition.side.RED ), AlivePlayersBlue = coalition.getPlayers( coalition.side.BLUE ) } + for CoalitionId, CoalitionData in pairs( CoalitionsData ) do + self:T( { "CoalitionData:", CoalitionData } ) + for UnitId, UnitData in pairs( CoalitionData ) do + if UnitData and UnitData:isExist() then + + local UnitName = UnitData:getName() + local PlayerName = UnitData:getPlayerName() + local PlayerUnit = UNIT:Find( UnitData ) + self:T( { "UnitData:", UnitData, UnitName, PlayerName, PlayerUnit } ) - local UNITS_Count = #self.UNITS_Index - if UNITS_Count > 0 then - self.UNITS_Position = ( ( self.UNITS_Position <= UNITS_Count ) and self.UNITS_Position + 1 ) or 1 - local PlayerUnit = self.UNITS[self.UNITS_Index[self.UNITS_Position]] - if PlayerUnit then - local UnitName = PlayerUnit:GetName() - local PlayerName = PlayerUnit:GetPlayerName() - --self:E( { UNITS_Count, self.UNITS_Position, UnitName, PlayerName } ) - if PlayerName and PlayerName ~= "" then - if self.PLAYERS[PlayerName] == nil or self.PLAYERS[PlayerName] ~= UnitName then - self:E( { "Add player for unit:", UnitName, PlayerName } ) - self:AddPlayer( UnitName, PlayerName ) - --_EVENTDISPATCHER:CreateEventPlayerEnterUnit( PlayerUnit ) + if PlayerName and PlayerName ~= "" then + if self.PLAYERS[PlayerName] == nil or self.PLAYERS[PlayerName] ~= UnitName then + self:E( { "Add player for unit:", UnitName, PlayerName } ) + self:AddPlayer( UnitName, PlayerName ) + --_EVENTDISPATCHER:CreateEventPlayerEnterUnit( PlayerUnit ) + local Settings = SETTINGS:Set( PlayerName ) + Settings:SetPlayerMenu( PlayerUnit ) + end end end end @@ -135,7 +142,7 @@ function DATABASE:New() end self:E( "Scheduling" ) - --local PlayerCheckSchedule = SCHEDULER:New( nil, CheckPlayers, { self }, 2, 0.1 ) + PlayerCheckSchedule = SCHEDULER:New( nil, CheckPlayers, { self }, 1, 1 ) return self end @@ -667,7 +674,7 @@ function DATABASE:_EventOnBirth( Event ) self:AddGroup( Event.IniDCSGroupName ) end end - self:_EventOnPlayerEnterUnit( Event ) + --self:_EventOnPlayerEnterUnit( Event ) end end @@ -723,6 +730,8 @@ function DATABASE:_EventOnPlayerLeaveUnit( Event ) if Event.IniObjectCategory == 1 then local PlayerName = Event.IniUnit:GetPlayerName() if self.PLAYERS[PlayerName] then + local Settings = SETTINGS:Set( PlayerName ) + Settings:RemovePlayerMenu( Event.IniUnit ) self:DeletePlayer( PlayerName ) end end @@ -891,6 +900,29 @@ function DATABASE:OnEventDeleteCargo( EventData ) end +--- Gets the player settings +-- @param #DATABASE self +-- @param #string PlayerName +-- @return Core.Settings#SETTINGS +function DATABASE:GetPlayerSettings( PlayerName ) + self:E({PlayerName}) + return self.PLAYERSETTINGS[PlayerName] +end + + +--- Sets the player settings +-- @param #DATABASE self +-- @param #string PlayerName +-- @param Core.Settings#SETTINGS Settings +-- @return Core.Settings#SETTINGS +function DATABASE:SetPlayerSettings( PlayerName, Settings ) + self:E({PlayerName, Settings}) + self.PLAYERSETTINGS[PlayerName] = Settings +end + + + + --- @param #DATABASE self function DATABASE:_RegisterTemplates() self:F2() diff --git a/Moose Development/Moose/Core/Point.lua b/Moose Development/Moose/Core/Point.lua index 5fe8c6363..0b0e76678 100644 --- a/Moose Development/Moose/Core/Point.lua +++ b/Moose Development/Moose/Core/Point.lua @@ -799,21 +799,28 @@ do -- COORDINATE self:E( { Controllable = Controllable } ) - local Settings = Settings or _SETTINGS + local Settings = Settings or ( Controllable and _DATABASE:GetPlayerSettings( Controllable:GetPlayerName() ) ) or _SETTINGS local IsAir = Controllable and Controllable:IsAirPlane() or false if IsAir then - local Coordinate = Controllable:GetCoordinate() - Coordinate:SetModeA2A() if Settings:IsA2A_BRA() then - return self:ToStringBRAA( Coordinate, Settings ) + local Coordinate = Controllable:GetCoordinate() + Coordinate:SetModeA2A() + return self:ToStringBRAA( Coordinate, Settings ) end if Settings:IsA2A_BULLS() then + local Coordinate = Controllable:GetCoordinate() + Coordinate:SetModeA2A() return self:ToStringBULLS( Coordinate, Settings ) end else + if Settings:IsA2G_BRA() then + local Coordinate = Controllable:GetCoordinate() + Coordinate:SetModeA2A() + return Controllable and self:ToStringBRAA( Coordinate, Settings ) or self:ToStringMGRS( Settings ) + end if Settings:IsA2G_LL() then return self:ToStringLL( Settings ) end diff --git a/Moose Development/Moose/Core/Settings.lua b/Moose Development/Moose/Core/Settings.lua index e726bd510..73fb8b888 100644 --- a/Moose Development/Moose/Core/Settings.lua +++ b/Moose Development/Moose/Core/Settings.lua @@ -42,12 +42,6 @@ -- @field #SETTINGS SETTINGS = { ClassName = "SETTINGS", - LL_Accuracy = 2, - LL_DMS = true, - MGRS_Accuracy = 5, - A2GSystem = "MGRS", - A2ASystem = "BRA", - } @@ -57,17 +51,27 @@ do -- SETTINGS --- SETTINGS constructor. -- @param #SETTINGS self -- @return #SETTINGS - function SETTINGS:New() + function SETTINGS:Set( PlayerName ) - local self = BASE:Inherit( self, BASE:New() ) -- #SETTINGS - - self:SetMetric() -- Defaults - self:SetA2G_MGRS() -- Defaults - self:SetA2A_BRA() -- Defaults - - return self + if PlayerName == nil then + local self = BASE:Inherit( self, BASE:New() ) -- #SETTINGS + self:SetMetric() -- Defaults + self:SetA2G_MGRS() -- Defaults + self:SetA2A_BRA() -- Defaults + self:SetLL_Accuracy( 2 ) -- Defaults + self:SetLL_DMS( true ) -- Defaults + self:SetMGRS_Accuracy( 5 ) -- Defaults + return self + else + local Settings = _DATABASE:GetPlayerSettings( PlayerName ) + if not Settings then + Settings = BASE:Inherit( self, BASE:New() ) -- #SETTINGS + _DATABASE:SetPlayerSettings( PlayerName, Settings ) + end + return Settings + end end - + --- Sets the SETTINGS metric. -- @param #SETTINGS self @@ -95,6 +99,54 @@ do -- SETTINGS return self.Metric == false end + --- Sets the SETTINGS LL accuracy. + -- @param #SETTINGS self + -- @param #number LL_Accuracy + -- @return #SETTINGS + function SETTINGS:SetLL_Accuracy( LL_Accuracy ) + self.LL_Accuracy = LL_Accuracy + end + + --- Gets the SETTINGS LL accuracy. + -- @param #SETTINGS self + -- @return #number + function SETTINGS:GetLL_Accuracy() + return self.LL_Accuracy or _SETTINGS:GetLL_Accuracy() + end + + --- Sets the SETTINGS LL DMS. + -- @param #SETTINGS self + -- @param #number LL_DMS + -- @return #SETTINGS + function SETTINGS:SetLL_DMS( LL_DMS ) + self.LL_DMS = LL_DMS + end + + --- Gets the SETTINGS LL DMS. + -- @param #SETTINGS self + -- @return #number + function SETTINGS:GetLL_DMS() + return self.LL_DMS or _SETTINGS:GetLL_DMS() + end + + --- Sets the SETTINGS MGRS accuracy. + -- @param #SETTINGS self + -- @param #number MGRS_Accuracy + -- @return #SETTINGS + function SETTINGS:SetMGRS_Accuracy( MGRS_Accuracy ) + self.MGRS_Accuracy = MGRS_Accuracy + end + + --- Gets the SETTINGS MGRS accuracy. + -- @param #SETTINGS self + -- @return #number + function SETTINGS:GetMGRS_Accuracy() + return self.MGRS_Accuracy or _SETTINGS:GetMGRS_Accuracy() + end + + + + --- Sets A2G LL -- @param #SETTINGS self -- @return #SETTINGS @@ -106,7 +158,7 @@ do -- SETTINGS -- @param #SETTINGS self -- @return #boolean true if LL function SETTINGS:IsA2G_LL() - return self.A2GSystem == "LL" + return ( self.A2GSystem and self.A2GSystem == "LL" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_LL() ) end --- Sets A2G MGRS @@ -120,7 +172,7 @@ do -- SETTINGS -- @param #SETTINGS self -- @return #boolean true if MGRS function SETTINGS:IsA2G_MGRS() - return self.A2GSystem == "MGRS" + return ( self.A2GSystem and self.A2GSystem == "MGRS" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_MGRS() ) end --- Sets A2G BRA @@ -134,7 +186,8 @@ do -- SETTINGS -- @param #SETTINGS self -- @return #boolean true if BRA function SETTINGS:IsA2G_BRA() - return self.A2GSystem == "BRA" + self:E( { BRA = ( self.A2GSystem and self.A2GSystem == "BRA" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_BRA() ) } ) + return ( self.A2GSystem and self.A2GSystem == "BRA" ) or ( not self.A2GSystem and _SETTINGS:IsA2G_BRA() ) end --- Sets A2A BRA @@ -148,7 +201,8 @@ do -- SETTINGS -- @param #SETTINGS self -- @return #boolean true if BRA function SETTINGS:IsA2A_BRA() - return self.A2ASystem == "BRA" + self:E( { BRA = ( self.A2ASystem and self.A2ASystem == "BRA" ) or ( not self.A2ASystem and _SETTINGS:IsA2A_BRA() ) } ) + return ( self.A2ASystem and self.A2ASystem == "BRA" ) or ( not self.A2ASystem and _SETTINGS:IsA2A_BRA() ) end --- Sets A2A BULLS @@ -162,21 +216,24 @@ do -- SETTINGS -- @param #SETTINGS self -- @return #boolean true if BULLS function SETTINGS:IsA2A_BULLS() - return self.A2ASystem == "BULLS" + return ( self.A2ASystem and self.A2ASystem == "BULLS" ) or ( not self.A2ASystem and _SETTINGS:IsA2A_BULLS() ) end --- @param #SETTINGS self -- @return #SETTINGS - function SETTINGS:SettingsMenu( RootMenu ) + function SETTINGS:SystemSettingsMenu( RootMenu, MenuText ) - if self.SystemMenu then - self.SystemMenu:Remove() - self.SystemMenu = nil - end + MenuText = MenuText or "System Settings" - self.SystemMenu = MENU_MISSION:New( "Settings" ) + self.SettingsMenu = MENU_MISSION:New( MenuText, RootMenu ) + + if self.DefaultMenu then + self.DefaultMenu:Remove() + self.DefaultMenu = nil + end + self.DefaultMenu = MENU_MISSION:New( "Default Settings", self.SettingsMenu ) - local A2GCoordinateMenu = MENU_MISSION:New( "A2G Coordinate System", self.SystemMenu ) + local A2GCoordinateMenu = MENU_MISSION:New( "A2G Coordinate System", self.DefaultMenu ) if self:IsA2G_LL() then MENU_MISSION_COMMAND:New( "Activate BRA", A2GCoordinateMenu, self.A2GMenuSystem, self, "BRA" ) @@ -203,7 +260,7 @@ do -- SETTINGS MENU_MISSION_COMMAND:New( "Activate LL", A2GCoordinateMenu, self.A2GMenuSystem, self, "LL" ) end - local A2ACoordinateMenu = MENU_MISSION:New( "A2A Coordinate System", self.SystemMenu ) + local A2ACoordinateMenu = MENU_MISSION:New( "A2A Coordinate System", self.DefaultMenu ) if self:IsA2A_BULLS() then MENU_MISSION_COMMAND:New( "Activate BRA", A2ACoordinateMenu, self.A2AMenuSystem, self, "BRA" ) @@ -216,33 +273,151 @@ do -- SETTINGS return self end + --- @param #SETTINGS self + -- @param RootMenu + -- @param Wrapper.Client#CLIENT PlayerUnit + -- @param #string MenuText + -- @return #SETTINGS + function SETTINGS:SetPlayerMenu( PlayerUnit ) + + local MenuText = "Player Settings" + self.MenuText = MenuText + + local SettingsMenu = _SETTINGS.SettingsMenu + + local PlayerGroup = PlayerUnit:GetGroup() + local PlayerName = PlayerUnit:GetPlayerName() + local PlayerNames = PlayerGroup:GetPlayerNames() + + local GroupMenu = MENU_GROUP:New( PlayerGroup, MenuText, SettingsMenu ) + local PlayerMenu = MENU_GROUP:New( PlayerGroup, 'Settings "' .. PlayerName .. '"', GroupMenu ) + + self.PlayerMenu = PlayerMenu + + local A2GCoordinateMenu = MENU_GROUP:New( PlayerGroup, "A2G Coordinate System", PlayerMenu ) + + if self:IsA2G_LL() then + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BRA", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BRA" ) + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate MGRS", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "MGRS" ) + MENU_GROUP_COMMAND:New( PlayerGroup, "LL Accuracy 1", A2GCoordinateMenu, self.GroupLL_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 1 ) + MENU_GROUP_COMMAND:New( PlayerGroup, "LL Accuracy 2", A2GCoordinateMenu, self.GroupLL_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 2 ) + MENU_GROUP_COMMAND:New( PlayerGroup, "LL Accuracy 3", A2GCoordinateMenu, self.GroupLL_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 3 ) + MENU_GROUP_COMMAND:New( PlayerGroup, "LL Decimal On", A2GCoordinateMenu, self.GroupLL_DMSMenu, self, PlayerUnit, PlayerGroup, PlayerName, true ) + MENU_GROUP_COMMAND:New( PlayerGroup, "LL Decimal Off", A2GCoordinateMenu, self.GroupLL_DMSMenu, self, PlayerUnit, PlayerGroup, PlayerName, false ) + end + + if self:IsA2G_MGRS() then + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BRA", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BRA" ) + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate LL", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "LL" ) + MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 1", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 1 ) + MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 2", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 2 ) + MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 3", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 3 ) + MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 4", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 4 ) + MENU_GROUP_COMMAND:New( PlayerGroup, "MGRS Accuracy 5", A2GCoordinateMenu, self.GroupMGRS_AccuracyMenu, self, PlayerUnit, PlayerGroup, PlayerName, 5 ) + end + + if self:IsA2G_BRA() then + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate MGRS", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "MGRS" ) + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate LL", A2GCoordinateMenu, self.GroupA2GMenu, self, PlayerUnit, PlayerGroup, PlayerName, "LL" ) + end + + local A2ACoordinateMenu = MENU_GROUP:New( PlayerGroup, "A2A Coordinate System", PlayerMenu ) + + if self:IsA2A_BULLS() then + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BRA", A2ACoordinateMenu, self.GroupA2AMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BRA" ) + end + + if self:IsA2A_BRA() then + MENU_GROUP_COMMAND:New( PlayerGroup, "Activate BULLS", A2ACoordinateMenu, self.GroupA2AMenu, self, PlayerUnit, PlayerGroup, PlayerName, "BULLS" ) + end + + return self + end + + --- @param #SETTINGS self + -- @param RootMenu + -- @param Wrapper.Client#CLIENT PlayerUnit + -- @return #SETTINGS + function SETTINGS:RemovePlayerMenu( PlayerUnit ) + + if self.PlayerMenu then + self.PlayerMenu:Remove() + end + + return self + end + + --- @param #SETTINGS self function SETTINGS:A2GMenuSystem( A2GSystem ) self.A2GSystem = A2GSystem - self:SettingsMenu() + self:SystemSettingsMenu() end --- @param #SETTINGS self function SETTINGS:A2AMenuSystem( A2ASystem ) self.A2ASystem = A2ASystem - self:SettingsMenu() + self:SystemSettingsMenu() end --- @param #SETTINGS self function SETTINGS:MenuLL_Accuracy( LL_Accuracy ) self.LL_Accuracy = LL_Accuracy - self:SettingsMenu() + self:SystemSettingsMenu() end --- @param #SETTINGS self function SETTINGS:MenuLL_DMS( LL_DMS ) self.LL_DMS = LL_DMS - self:SettingsMenu() + self:SystemSettingsMenu() end --- @param #SETTINGS self function SETTINGS:MenuMGRS_Accuracy( MGRS_Accuracy ) self.MGRS_Accuracy = MGRS_Accuracy - self:SettingsMenu() + self:SystemSettingsMenu() + end + + do + --- @param #SETTINGS self + function SETTINGS:GroupA2GMenu( PlayerUnit, PlayerGroup, PlayerName, A2GSystem ) + BASE:E( {self, PlayerUnit:GetName(), A2GSystem} ) + self.A2GSystem = A2GSystem + MESSAGE:New( string.format("Settings: A2G format set to %s for player %s.", A2GSystem, PlayerName ), 5 ):ToGroup( PlayerGroup ) + self:RemovePlayerMenu(PlayerUnit) + self:SetPlayerMenu(PlayerUnit) + end + + --- @param #SETTINGS self + function SETTINGS:GroupA2AMenu( PlayerUnit, PlayerGroup, PlayerName, A2ASystem ) + self.A2ASystem = A2ASystem + MESSAGE:New( string.format("Settings: A2A format set to %s for player %s.", A2ASystem, PlayerName ), 5 ):ToGroup( PlayerGroup ) + self:RemovePlayerMenu(PlayerUnit) + self:SetPlayerMenu(PlayerUnit) + end + + --- @param #SETTINGS self + function SETTINGS:GroupLL_AccuracyMenu( PlayerUnit, PlayerGroup, PlayerName, LL_Accuracy ) + self.LL_Accuracy = LL_Accuracy + MESSAGE:New( string.format("Settings: A2G LL format accuracy set to %d for player %s.", LL_Accuracy, PlayerName ), 5 ):ToGroup( PlayerGroup ) + self:RemovePlayerMenu(PlayerUnit) + self:SetPlayerMenu(PlayerUnit) + end + + --- @param #SETTINGS self + function SETTINGS:GroupLL_DMSMenu( PlayerUnit, PlayerGroup, PlayerName, LL_DMS ) + self.LL_DMS = LL_DMS + MESSAGE:New( string.format("Settings: A2G LL format mode set to %s for player %s.", LL_DMS and "DMS" or "HMS", PlayerName ), 5 ):ToGroup( PlayerGroup ) + self:RemovePlayerMenu(PlayerUnit) + self:SetPlayerMenu(PlayerUnit) + end + --- @param #SETTINGS self + function SETTINGS:GroupMGRS_AccuracyMenu( PlayerUnit, PlayerGroup, PlayerName, MGRS_Accuracy ) + self.MGRS_Accuracy = MGRS_Accuracy + MESSAGE:New( string.format("Settings: A2G MGRS format accuracy set to %d for player %s.", MGRS_Accuracy, PlayerName ), 5 ):ToGroup( PlayerGroup ) + self:RemovePlayerMenu(PlayerUnit) + self:SetPlayerMenu(PlayerUnit) + end + end end diff --git a/Moose Development/Moose/Functional/Scoring.lua b/Moose Development/Moose/Functional/Scoring.lua index 09dccc323..ba8745f2d 100644 --- a/Moose Development/Moose/Functional/Scoring.lua +++ b/Moose Development/Moose/Functional/Scoring.lua @@ -125,6 +125,32 @@ -- -- The above documents that 2 Scoring objects are created, ScoringFirstMission and ScoringSecondMission. -- +-- ### **IMPORTANT!!!* +-- In order to allow DCS world to write CSV files, you need to adapt a configuration file in your DCS world installation **on the server**. +-- For this, browse to the **missionscripting.lua** file in your DCS world installation folder. +-- For me, this installation folder is in _D:\\Program Files\\Eagle Dynamics\\DCS World\Scripts_. +-- +-- Edit a few code lines in the MissionScripting.lua file. Comment out the lines **os**, **io** and **lfs**: +-- +-- do +-- --sanitizeModule('os') +-- --sanitizeModule('io') +-- --sanitizeModule('lfs') +-- require = nil +-- loadlib = nil +-- end +-- +-- When these lines are not sanitized, functions become available to check the time, and to write files to your system at the above specified location. +-- Note that the MissionScripting.lua file provides a warning. So please beware of this warning as outlined by Eagle Dynamics! +-- +-- --Sanitize Mission Scripting environment +-- --This makes unavailable some unsecure functions. +-- --Mission downloaded from server to client may contain potentialy harmful lua code that may use these functions. +-- --You can remove the code below and make availble these functions at your own risk. +-- +-- The MOOSE designer cannot take any responsibility of any damage inflicted as a result of the de-sanitization. +-- That being said, I hope that the SCORING class provides you with a great add-on to score your squad mates achievements. +-- -- ## 1.9) Configure messages. -- -- When players hit or destroy targets, messages are sent. diff --git a/Moose Development/Moose/Moose.lua b/Moose Development/Moose/Moose.lua index 194951078..a78af6569 100644 --- a/Moose Development/Moose/Moose.lua +++ b/Moose Development/Moose/Moose.lua @@ -9,5 +9,5 @@ _SCHEDULEDISPATCHER = SCHEDULEDISPATCHER:New() -- Core.Timer#SCHEDULEDISPATCHER --- Declare the main database object, which is used internally by the MOOSE classes. _DATABASE = DATABASE:New() -- Database#DATABASE -_SETTINGS = SETTINGS:New() -_SETTINGS:SettingsMenu(nil) +_SETTINGS = SETTINGS:Set() +_SETTINGS:SystemSettingsMenu( nil ) diff --git a/Moose Development/Moose/Tasking/CommandCenter.lua b/Moose Development/Moose/Tasking/CommandCenter.lua index a5a4fe6ed..e774059fe 100644 --- a/Moose Development/Moose/Tasking/CommandCenter.lua +++ b/Moose Development/Moose/Tasking/CommandCenter.lua @@ -122,6 +122,8 @@ function COMMANDCENTER:New( CommandCenterPositionable, CommandCenterName ) local PlayerGroup = EventData.IniGroup -- The GROUP object should be filled! Mission:JoinUnit( PlayerUnit, PlayerGroup ) end + self:SetMenu() + _DATABASE:PlayerSettingsMenu( PlayerUnit ) end end diff --git a/Moose Development/Moose/Tasking/Mission.lua b/Moose Development/Moose/Tasking/Mission.lua index 9336ae32c..f54402750 100644 --- a/Moose Development/Moose/Tasking/Mission.lua +++ b/Moose Development/Moose/Tasking/Mission.lua @@ -265,8 +265,6 @@ function MISSION:JoinUnit( PlayerUnit, PlayerGroup ) end end - self:GetCommandCenter():SetMenu() - return PlayerUnitAdded end