100 void ProcessJ11Message(
const DisEntityId& aSenderEntityId,
const Messages::InitialBase& aMessage,
int aSubLabel);
101 void ProcessJ11_0Message(
const DisEntityId& aSenderEntityId,
const Messages::InitialBase& aMessage);
102 void ProcessJ11_1Message(
const DisEntityId& aSenderEntityId,
const Messages::InitialBase& aMessage);
103 void ProcessJ11_2Message(
const DisEntityId& aSenderEntityId,
const Messages::InitialBase& aMessage);
109 void HandoffControlChange(
const DisEntityId& aSenderEntityId,
110 const unsigned int aSenderTrackNumber,
112 const Messages::InitialBase& aMessage);
114 void InFlightTargetUpdate(
const DisEntityId& aSenderEntityId,
116 const Messages::InitialBase& aMessage);
119 double ProcessWIFT_Event(
double aSimTime,
WsfPlatform* aWeaponPlatformPtr);
123 void SendWeaponSelfAbortReport(
WsfPlatform* aWeaponPlatformPtr,
const std::string& aExtendedResult);
128 static UtCallbackListN<void(
const DisEntityId&,
const unsigned int,
unsigned int&)>
FindWeaponIndex;
139 EventDisposition Execute()
override;
143 size_t mPlatformIndex;
147 typedef std::pair<unsigned int, unsigned int> NEW_MapTypePair;
148 typedef std::map<unsigned int, unsigned int> NEW_MapType;
149 typedef std::map<unsigned int, unsigned int>::iterator NEW_MapTypeIterator;
153 void CreateTerminationResultMap();
156 bool DeleteNEW_MapData(NEW_MapType& aNEW_Map,
const unsigned int aKey);
159 bool DeleteDirectorToWeapon(
const DisEntityId& aDisEntityId,
unsigned int aWeaponTrackNumber);
161 void PurgeWeaponRecords(
size_t aWeaponPlatformIndex);
164 bool FindIntercept(
const double aWpnLocWCS[3],
166 const double aTgtLocWCS[3],
167 const double aTgtVelWCS[3],
168 double aIntLocWCS[3]);
171 void FillTrack(
const DisEntityId& aSenderEntityId,
const Messages::InitialBase& aMessage,
WsfTrack* aTrackPtr);
174 WsfPlatform* FindPlatform(
unsigned int aTrackNumber);
177 Messages::J11_0::WeaponDetailedStatusField::WeaponDetailedStatusType
178 GetDetailedStatusInformation(
const std::string& aExtendedResult);
181 void GetInterceptData(
WsfPlatform* aWeaponPlatformPtr,
double& aTimeToGo,
double& aRangeToGo);
184 bool GetNEW_MapData(NEW_MapType& aNEW_Map,
const unsigned int aKey,
unsigned int& aValue);
187 Messages::J11_0::WeaponNEW_TypeField::WeaponNEW_TypeType GetNEW_Type(
WsfPlatform* aWeaponPlatformPtr);
191 unsigned int GetNumberOfWeaponsFired(
unsigned int aFiringPlatformIndex);
194 WsfPlatform* GetWeapon(
const DisEntityId& aSenderEntityId,
unsigned int aWeaponTrackNumber);
197 bool IsJTIDS_EnabledWeapon(
WsfPlatform* aWeaponPlatformPtr);
200 bool IsNetworkEnabledWeapon(
WsfPlatform* aWeaponPlatformPtr);
209 void ProcessJMessage(
WsfPlatform* aWeaponPlatformPtr,
const Messages::InitialBase& aMessage);
215 bool SendMessage(
WsfPlatform* aWeaponPlatformPtr, Messages::InitialBase* aMessage);
218 bool SetDirectorToWeapon(
const DisEntityId& aDisEntityId,
unsigned int aWeaponTrackNumber,
size_t aWeaponPlatformIndex);
221 typedef std::pair<DisEntityId, unsigned int> EID_MapTypePair;
222 typedef std::multimap<DisEntityId, unsigned int> EID_MapType;
223 typedef std::multimap<DisEntityId, unsigned int>::iterator EID_MapTypeIterator;
231 void SetL16ComputerTrackNumber(
WsfPlatform* aWeaponPlatformPtr,
unsigned int aWeaponTrackNumber);
234 bool SetNEW_MapData(NEW_MapType& aNEW_Map,
const unsigned int aKey,
const unsigned int aValue);
237 void UpdateDirector(
const DisEntityId& aSenderEntityId,
const unsigned int aSenderTrackNumber);
253 NEW_MapType mFiringPlatformToWeaponCountMap;
259 NEW_MapType mNEW_TrackNumber;
262 NEW_MapType mNEW_ControllerTrackNumber;
265 NEW_MapType mPendingDirectorTrackNumber;
268 typedef std::pair<EID_MapTypePair, size_t> D_NEW_MapTypePair;
269 typedef std::map<EID_MapTypePair, size_t> D_NEW_MapType;
270 typedef std::map<EID_MapTypePair, size_t>::iterator D_NEW_MapTypeIterator;
272 D_NEW_MapType mDirectorToWeaponMap;
275 typedef std::pair<WsfStringId, Messages::J11_0::WeaponDetailedStatusField::WeaponDetailedStatusType> Result_MapTypePair;
276 typedef std::map<WsfStringId, Messages::J11_0::WeaponDetailedStatusField::WeaponDetailedStatusType> Result_MapType;
277 typedef std::map<WsfStringId, Messages::J11_0::WeaponDetailedStatusField::WeaponDetailedStatusType>::iterator Result_MapTypeIterator;
279 Result_MapType mResultMap;