/// <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); }
/// <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; }
/// <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; }
/// <summary>Creates a new Message object</summary> public Message() { _triggers[0] = new Mission.Trigger(); _triggers[1] = new Mission.Trigger(); }
/// <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); }