diff --git a/Moose Development/Moose/Core/Spawn.lua b/Moose Development/Moose/Core/Spawn.lua index eecaca873..9c822777b 100644 --- a/Moose Development/Moose/Core/Spawn.lua +++ b/Moose Development/Moose/Core/Spawn.lua @@ -1545,7 +1545,7 @@ function SPAWN:SpawnAtAirbase( SpawnAirbase, Takeoff, TakeoffAltitude, TerminalT -- Get airbase ID and category. local AirbaseID = SpawnAirbase:GetID() - local AirbaseCategory = SpawnAirbase:GetDesc().category + local AirbaseCategory = SpawnAirbase:GetAirbaseCategory() self:F( { AirbaseCategory = AirbaseCategory } ) -- Set airdromeId. diff --git a/Moose Development/Moose/Modules.lua b/Moose Development/Moose/Modules.lua index fecb51147..7c96f170a 100644 --- a/Moose Development/Moose/Modules.lua +++ b/Moose Development/Moose/Modules.lua @@ -74,8 +74,7 @@ __Moose.Include( 'Scripts/Moose/Ops/RecoveryTanker.lua' ) __Moose.Include( 'Scripts/Moose/Ops/RescueHelo.lua' ) __Moose.Include( 'Scripts/Moose/Ops/ATIS.lua' ) __Moose.Include( 'Scripts/Moose/Ops/FlightGroup.lua' ) -__Moose.Include( 'Scripts/Moose/Ops/TankerGroup.lua' ) -__Moose.Include( 'Scripts/Moose/Ops/AwacsGroup.lua' ) +__Moose.Include( 'Scripts/Moose/Ops/Auftrag.lua' ) __Moose.Include( 'Scripts/Moose/Ops/FlightControl.lua' ) __Moose.Include( 'Scripts/Moose/Ops/Squadron.lua' ) __Moose.Include( 'Scripts/Moose/Ops/AirWing.lua' ) diff --git a/Moose Development/Moose/Ops/Auftrag.lua b/Moose Development/Moose/Ops/Auftrag.lua index b75803611..600017f76 100644 --- a/Moose Development/Moose/Ops/Auftrag.lua +++ b/Moose Development/Moose/Ops/Auftrag.lua @@ -27,9 +27,9 @@ -- @field #number Tstop Mission stop time in seconds. -- @field #number duration Mission duration in seconds. -- @field #table DCStask DCS task structure. --- @field Core.Point#COORDINATE waypointcoord Coordinate of the waypoint task. +-- @field Core.Point#COORDINATE waypointcoord Coordinate of the waypoint task. +-- @field #number waypointindex Waypoint number at which the task is executed. -- @field Ops.FlightGroup#AUFTRAG.Task waypointtask Waypoint task. --- @field #number waypointindex Waypoint number at which the task is executed. -- @field #number marker F10 map marker ID. -- @field Core.Point#COORDINATE coordOrbit Coordinate where to orbit. -- @field #number speedOrbit Orbit speed in m/s. @@ -158,6 +158,10 @@ function AUFTRAG:New(Type) self.type=Type self.auftragsnummer=_AUFTRAGSNR + self.status=AUFTRAG.Status.SCHEDULED + self.name=string.format("Auftrag #%d", self.auftragsnummer) + + self.lid=string.format("Auftrag #%d %s | ", self.auftragsnummer, self.type) self:AddTransition("*", "Start", "*") -- Mission has started. self:AddTransition("*", "Update", "*") -- Mission is updated with latest data. @@ -183,7 +187,7 @@ function AUFTRAG:NewORBIT(OrbitCoordinate, OrbitSpeed, Heading, Leg) auftrag.heading=Heading or 270 auftrag.leg=UTILS.NMToMeters(Leg or 10) - mission.DCStask=self:GetDCSMissionTask() + auftrag.DCStask=auftrag:GetDCSMissionTask() return auftrag end @@ -214,7 +218,7 @@ function AUFTRAG:NewCAP(OrbitCoordinate, OrbitSpeed, Heading, Leg, ZoneCAP, Targ mission.zoneEngage=ZoneCAP or ZONE_RADIUS:New("CAP Zone", OrbitCoordinate:GetVec2(), mission.leg) mission.typeTargets=TargetTypes or {"Air"} - mission.DCStask=self:GetDCSMissionTask() + mission.DCStask=mission:GetDCSMissionTask() return mission end @@ -245,7 +249,7 @@ function AUFTRAG:NewCAS(OrbitCoordinate, OrbitSpeed, Heading, Leg, ZoneCAS, Targ mission.zoneEngage=ZoneCAS or ZONE_RADIUS:New("CAS Zone", OrbitCoordinate:GetVec2(), Leg) mission.typeTargets=TargetTypes or {"Helicopters", "Ground Units", "Light armed ships"} - mission.DCStask=self:GetDCSMissionTask() + mission.DCStask=mission:GetDCSMissionTask() return mission end @@ -264,7 +268,7 @@ function AUFTRAG:NewSTRIKE(TargetCoordinate, Altitude) mission.coordTarget=TargetCoordinate mission.altitude=UTILS.FeetToMeters(Altitude or 1000) - mission.DCStask=self:GetDCSMissionTask() + mission.DCStask=mission:GetDCSMissionTask() return mission end @@ -285,7 +289,7 @@ function AUFTRAG:NewINTERCEPT(TargetGroupSet) mission.groupsetTargets=TargetGroupSet mission.groupsetTargets:FilterDeads():FilterCrashes() - mission.DCStask=self:GetDCSMissionTask() + mission.DCStask=mission:GetDCSMissionTask() return mission end @@ -306,7 +310,7 @@ function AUFTRAG:NewBAI(TargetGroupSet) mission.groupsetTargets=TargetGroupSet mission.groupsetTargets:FilterDeads():FilterCrashes() - mission.DCStask=self:GetDCSMissionTask() + mission.DCStask=mission:GetDCSMissionTask() return mission end @@ -319,7 +323,7 @@ end -- @param #AUFTRAG self -- @param #string ClockStart Time the mission is started, e.g. "05:00" for 5 am. If specified as a #number, it will be relative (in seconds) to the current mission time. Default is 5 seconds after mission was added. -- @param #string ClockStop (Optional) Time the mission is stopped, e.g. "13:00" for 1 pm. If mission could not be started at that time, it will be removed from the queue. If specified as a #number it will be relative (in seconds) to the current mission time. --- @param #AUFTRAG self +-- @return #AUFTRAG self function AUFTRAG:SetMissionTime(ClockStart, ClockStop) -- Current mission time. @@ -354,7 +358,7 @@ end --- Set mission priority. -- @param #AUFTRAG self -- @param #number Prio Priority 1=high, 100=low. Default 50 --- @param #AUFTRAG self +-- @return #AUFTRAG self function AUFTRAG:SetPriority(Prio) self.prio=Prio or 50 return self @@ -363,9 +367,10 @@ end --- Set mission name. -- @param #AUFTRAG self -- @param #string Name Name of the mission. --- @param #AUFTRAG self +-- @return #AUFTRAG self function AUFTRAG:SetName(Name) self.name=Name or string.format("Auftragsnummer %d", self.auftragsnummer) + return self end ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/Moose Development/Moose/Ops/FlightGroup.lua b/Moose Development/Moose/Ops/FlightGroup.lua index 71ed0c00e..7f2bdcd3c 100644 --- a/Moose Development/Moose/Ops/FlightGroup.lua +++ b/Moose Development/Moose/Ops/FlightGroup.lua @@ -667,7 +667,7 @@ end -- @return #FLIGHTGROUP self function FLIGHTGROUP:AddMission(Mission, WaypointCoordinate, WaypointIndex) - Mission.waypointcoordinate=WaypointCoordinate + Mission.waypointcoord=WaypointCoordinate Mission.waypointindex=WaypointIndex -- Add mission to queue. @@ -1348,8 +1348,8 @@ function FLIGHTGROUP:onafterFlightStatus(From, Event, To) -- Current status. local text=string.format("Missions=%d Current: %s", #self.missionqueue, mymission) for i,_mission in pairs(self.missionqueue) do - local mission=_mission --#FLIGHTGROUP.Mission - text=text..string.format("\n[%d] %s %s status=%s, targets=%d", i, tostring(mission.name), mission.type, tostring(mission.status), self:CountMissionTargets(mission)) + local mission=_mission --Ops.Auftrag#AUFTRAG + text=text..string.format("\n[%d] %s %s status=%s, targets=%d", i, tostring(mission.name), mission.type, tostring(mission.status), mission:CountMissionTargets()) end self:I(self.lid..text) @@ -3029,7 +3029,7 @@ function FLIGHTGROUP:onafterMissionStart(From, Event, To, Mission) self.currentmission.Tstarted=timer.getAbsTime() -- Set mission status. - self.currentmission.status=FLIGHTGROUP.MissionStatus.EXECUTING + self.currentmission.status=AUFTRAG.Status.EXECUTING -- Route flight to mission zone. self:RouteToMission(Mission, 5) @@ -3046,7 +3046,7 @@ function FLIGHTGROUP:onafterMissionDone(From, Event, To, Mission) -- TODO: evaluate mission success or failure! complicated! - Mission.status=FLIGHTGROUP.MissionStatus.ACCOMPLISHED + Mission.status=AUFTRAG.Status.ACCOMPLISHED local airwing=self:GetAirWing() if airwing then @@ -3063,7 +3063,7 @@ end -- @param #string From From state. -- @param #string Event Event. -- @param #string To To state. --- @param #FLIGHTGROUP.Mission Mission +-- @param Ops.Auftrag#AUFTRAG Mission function FLIGHTGROUP:onafterMissionUpdate(From, Event, To, Mission) if Mission.groupsetTarget then @@ -3075,7 +3075,7 @@ end --- Get next mission. -- @param #FLIGHTGROUP self --- @return #FLIGHTGROUP.Mission Next mission or *nil*. +-- @return Ops.Auftrag#AUFTRAG Next mission or *nil*. function FLIGHTGROUP:_GetNextMission() -- Number of missions. @@ -3088,8 +3088,8 @@ function FLIGHTGROUP:_GetNextMission() -- Sort results table wrt times they have already been engaged. local function _sort(a, b) - local taskA=a --#FLIGHTGROUP.Mission - local taskB=b --#FLIGHTGROUP.Mission + local taskA=a --Ops.Auftrag#AUFTRAG + local taskB=b --Ops.Auftrag#AUFTRAG return (taskA.Tstart=mission.Tstart then + local mission=_mission --Ops.Auftrag#AUFTRAG + if mission.status==AUFTRAG.Status.SCHEDULED and time>=mission.Tstart then return mission end end @@ -3110,7 +3110,7 @@ end --- Route group to mission. -- @param #FLIGHTGROUP self --- @param #FLIGHTGROUP.Mission mission The mission table. +-- @param Ops.Auftrag#AUFTRAG mission The mission table. -- @param #number delay Delay in seconds. function FLIGHTGROUP:RouteToMission(mission, delay) @@ -3752,7 +3752,7 @@ function FLIGHTGROUP:AddWaypointAir(coordinate, wpnumber, speed, updateroute) -- Shift all mission waypoints after the inserted waypoint. for _,_mission in pairs(self.missionqueue) do local mission=_mission --#FLIGHTGROUP.Mission - if mission.status==FLIGHTGROUP.MissionStatus.SCHEDULED and mission.waypoint>=wpnumber then + if mission.status==AUFTRAG.Status.SCHEDULED and mission.waypoint>=wpnumber then mission.waypointindex=mission.waypointindex+1 end end