Esempio n. 1
0
 /// <summary>Initialize a new Goal</summary>
 /// <remarks>If <i>condition</i> is set to <b>10</b> ("never (FALSE)"), <see cref="T1AndOrT2"/> is set to <b>true</b> ("OR")</remarks>
 /// <param name="condition">Default Trigger.Condition</param>
 public Goal(byte condition)
 {
     for (int i = 0; i < 2; i++)
     {
         _triggers[i] = new Mission.Trigger();
         _triggers[i].Condition = condition;
     }
     T1AndOrT2 = (condition == 10);
 }
Esempio n. 2
0
 /// <summary>Initialize a new Goal</summary>
 /// <remarks>If <i>condition</i> is set to <b>10</b> ("never (FALSE)"), <see cref="T1AndOrT2"/> is set to <b>true</b> ("OR")</remarks>
 /// <param name="condition">Default Trigger.Condition</param>
 public Goal(byte condition)
 {
     for (int i = 0; i < 2; i++)
     {
         _triggers[i]           = new Mission.Trigger();
         _triggers[i].Condition = condition;
     }
     T1AndOrT2 = (condition == 10);
 }
Esempio n. 3
0
 /// <summary>Initializes a new FlightGroup</summary>
 /// <remarks>All Orders set Throttle to <b>100%</b>, all Goals set to <b>FALSE</b>, SP1 <b>Enabled</b></remarks>
 public FlightGroup()
 {
     _stringLength = 0xC;
     for (int i = 0; i < _orders.Length; i++) _orders[i] = new Order();
     for (int i = 0; i < _arrDepTriggers.Length; i++) _arrDepTriggers[i] = new Mission.Trigger();
     Goals = new FGGoals();
     for (int i = 0; i < _waypoints.Length; i++) _waypoints[i] = new Waypoint();
     _waypoints[(int)WaypointIndex.Start1].Enabled = true;
 }
Esempio n. 4
0
 /// <summary>Initializes a new FlightGroup</summary>
 /// <remarks>All Orders set Throttle to <b>100%</b>, all Goals set to <b>FALSE</b>, SP1 <b>Enabled</b></remarks>
 public FlightGroup()
 {
     _stringLength = 0xC;
     for (int i = 0; i < _orders.Length; i++)
     {
         _orders[i] = new Order();
     }
     for (int i = 0; i < _arrDepTriggers.Length; i++)
     {
         _arrDepTriggers[i] = new Mission.Trigger();
     }
     Goals = new FGGoals();
     for (int i = 0; i < _waypoints.Length; i++)
     {
         _waypoints[i] = new Waypoint();
     }
     _waypoints[(int)WaypointIndex.Start1].Enabled = true;
 }
Esempio n. 5
0
 /// <summary>Creates a new Message object</summary>
 public Message()
 {
     _triggers[0] = new Mission.Trigger();
     _triggers[1] = new Mission.Trigger();
 }
Esempio n. 6
0
 /// <summary>Creates a new Message object</summary>
 public Message()
 {
     _triggers[0] = new Mission.Trigger();
     _triggers[1] = new Mission.Trigger();
 }
Esempio n. 7
0
        /// <summary>Changes all Flight Group indexes during a FG Move or Delete operation.</summary>
        /// <remarks>Should not be called directly unless part of a larger FG Move or Delete operation.  FG references may exist in other mission properties, ensure those properties are adjusted when applicable.</remarks>
        /// <param name="srcIndex">The FG index to match and replace (Move), or match and Delete.</param>
        /// <param name="dstIndex">The FG index to replace with.  Specify -1 to Delete, or zero or above to Move.</param>
        /// <returns>Returns true if anything was changed.</returns>
        public bool TransformFGReferences(int srcIndex, int dstIndex)
        {
            bool change = false;
            bool delete = false;
            byte dst    = (byte)dstIndex;

            if (dstIndex < 0)
            {
                dst    = 0;
                delete = true;
            }

            //If the FG matches, replace (and delete if necessary).  Else if our index is higher and we're supposed to delete, decrement index.
            if (ArrivalCraft1 == srcIndex)
            {
                ArrivalCraft1 = dst; change = true; if (delete)
                {
                    ArrivalMethod1 = false;
                }
            }
            else if (ArrivalCraft1 > srcIndex && delete)
            {
                ArrivalCraft1--; change = true;
            }
            if (ArrivalCraft2 == srcIndex)
            {
                ArrivalCraft2 = dst; change = true; if (delete)
                {
                    ArrivalMethod2 = false;
                }
            }
            else if (ArrivalCraft2 > srcIndex && delete)
            {
                ArrivalCraft2--; change = true;
            }
            if (DepartureCraft1 == srcIndex)
            {
                DepartureCraft1 = dst; change = true; if (delete)
                {
                    DepartureMethod1 = false;
                }
            }
            else if (DepartureCraft1 > srcIndex && delete)
            {
                DepartureCraft1--; change = true;
            }
            if (DepartureCraft2 == srcIndex)
            {
                DepartureCraft2 = dst; change = true; if (delete)
                {
                    DepartureMethod2 = false;
                }
            }
            else if (DepartureCraft2 > srcIndex && delete)
            {
                DepartureCraft2--; change = true;
            }
            for (int i = 0; i < ArrDepTriggers.Length; i++)
            {
                Mission.Trigger adt = ArrDepTriggers[i];
                change |= adt.TransformFGReferences(srcIndex, dstIndex, (i < 2));                  //[0] and [1] are are arrival.  Set those to true.
            }
            foreach (Order order in Orders)
            {
                change |= order.TransformFGReferences(srcIndex, dstIndex);
            }
            return(change);
        }