![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 #ifndef EntityTypes_H_ 00007 #define EntityTypes_H_ 00008 00012 00018 00019 //#include "packets/disVersion.h" 00020 00022 enum DtEntityKind 00023 { 00024 DtEntityKindOther = 0, 00025 DtPlatform = 1, 00026 DtMunition = 2, 00027 DtLifeForm = 3, 00028 DtEnvironmental = 4, 00029 DtCulturalFeature = 5, 00030 DtSupply = 6, 00031 DtRadio = 7, 00032 DtExpendable = 8, 00033 DtSensor = 9 00034 }; 00035 00037 00038 enum DtPlatformDomain 00039 { 00040 DtPlatformDomainOther = 0, 00041 DtPlatformDomainLand = 1, 00042 DtPlatformDomainAir = 2, 00043 DtPlatformDomainSurface = 3, 00044 DtPlatformDomainSubsurface = 4, 00045 DtPlatformDomainSpace = 5 00046 }; 00047 00049 enum DtMunitionDomain 00050 { 00051 DtMunitionDomainOther = 0, 00052 DtAntiAir = 1, 00053 DtAntiArmor = 2, 00054 DtAntiGuidedMunition = 3, 00055 DtAntiRadar = 4, 00056 DtAntiSatellite = 5, 00057 DtAntiShip = 6, 00058 DtAntiSubmarine = 7, 00059 DtAntiPersonnel = 8, 00060 DtBattlefieldSupport = 9, 00061 DtStrategic = 10 00062 }; 00063 00064 enum DtLifeFormDomain 00065 { 00066 DtLifeFormDomainOther = 0, 00067 DtLifeFormDomainLand = 1, 00068 DtLifeFormDomainAir = 2, 00069 DtLifeFormDomainSurface = 3, 00070 DtLifeFormDomainSubsurface = 4, 00071 DtLifeFormDomainSpace = 5 00072 }; 00073 00074 enum DtEnvironmentalDomain 00075 { 00076 DtEnvironmentalDomainOther = 0, 00077 DtEnvironmentalDomainLand = 1, 00078 DtEnvironmentalDomainAir = 2, 00079 DtEnvironmentalDomainSurface = 3, 00080 DtEnvironmentalDomainSubsurface = 4, 00081 DtEnvironmentalDomainSpace = 5 00082 }; 00083 00084 enum DtCulturalFeatureDomain 00085 { 00086 DtCulturalFeatureDomainOther = 0, 00087 DtCulturalFeatureDomainLand = 1, 00088 DtCulturalFeatureDomainAir = 2, 00089 DtCulturalFeatureDomainSurface = 3, 00090 DtCulturalFeatureDomainSubsurface = 4, 00091 DtCulturalFeatureDomainSpace = 5 00092 }; 00094 00096 enum DtCountryCode 00097 { 00098 DtCountryCodeOther = 0, 00099 DtFrance = 71, 00100 DtIraq = 102, 00101 DtUnionOfSovietSocialistRepublics = 222, 00102 DtUnitedKingdom = 224, 00103 DtUnitedStates = 225 00104 }; 00105 00106 00107 00110 00111 enum DtPlatformLand 00112 { 00113 DtTank = 1, 00114 DtArmoredFightingVehicle = 2, 00115 DtArmoredUtilityVehicle = 3, 00116 DtSelfPropelledArtillery = 4, 00117 DtTowedArtillery = 5, 00118 DtSmallWheeledUtilityVehicle = 6, 00119 DtLargeWheeledUtilityVehicle = 7, 00120 DtSmallTrackedUtilityVehicle = 8, 00121 DtLargeTrackedUtilityVehicle = 9, 00122 DtMortar = 10 00123 }; 00124 00125 enum DtPlatformAir 00126 { 00127 DtFighter = 1, 00128 DtAttack = 2, 00129 DtBomber = 3, 00130 DtCargo = 4, 00131 DtAntiSubmarinePatrol = 5, 00132 DtAttackHelicopter = 20, 00133 DtUtilityHelicopter = 21, 00134 DtSeaGoingHelicopter = 22, 00135 DtElectronicWarfare = 6, 00136 DtUnmannedAirVehicle = 50, 00137 DtReconnaisance = 8, 00138 DtSpecialOperations = 25 00139 }; 00140 00141 enum DtPlatformSurface 00142 { 00143 DtCarrier = 1, 00144 DtCommandShip = 2, 00145 DtGuidedMissleCruiser = 3, 00146 DtGuidedMissleDestroyer = 4, 00147 DtDestroyer = 5, 00148 DtGuidedMissleFrigate = 6, 00149 DtPatrolCraft = 7, 00150 DtMineCounterMeasureShip = 8, 00151 DtDockLandingShip = 9, 00152 DtTankLandingShip = 10, 00153 DtLandingCraft = 11, 00154 DtFrigate = 50, 00155 DtBattleship = 51, 00156 DtHeavyCruiser = 52, 00157 DtDestroyerTender = 53, 00158 DtAmphibiousAssaultShip = 54, 00159 DtAmphibiousCargoShip = 55, 00160 DtAmphibiousTransportDock = 56, 00161 DtAmmunitionShip = 57, 00162 DtCombatStoresShip = 58 00163 }; 00164 00168 00169 enum DtPlatformLandAnySmallWheeledUtilityVehicle 00170 { 00171 DtCivilianCar = 0 00172 }; 00173 00177 00178 enum DtPlatformLandUSTank 00179 { 00180 DtM1 = 1 00181 }; 00182 00183 enum DtPlatformLandUSArmoredFightingVehicle 00184 { 00185 DtM2 = 1, 00186 DtM3 = 1, 00187 DtM113 = 3 00188 }; 00189 00190 00191 enum DtPlatformLandUSArmoredUtilityVehicle 00192 { 00193 DtM88 = 1, 00194 DtM577 = 11 00195 }; 00196 00197 00198 enum DtPlatformLandUSSelfPropelledArtillery 00199 { 00200 DtM109 = 3 00201 }; 00202 00203 00204 00205 enum DtPlatformLandUSSmallWheeledUtilityVehicle 00206 { 00207 DtUSCivilianCar = 0, 00208 DtHMMWV = 1 00209 }; 00210 00211 00212 00213 enum DtPlatformAirUSFighter{ 00214 DtF117 = 1, 00215 DtF16 = 3, 00216 DtF15 = 5, 00217 DtF15E = 5, 00218 DtF18 = 9 00219 }; 00220 00221 enum DtF16 00222 { 00223 DtBasicF16 = 0, 00224 DtF16C = 3 00225 }; 00226 00227 enum DtPlatformAirUSAttack 00228 { 00229 DtA10 = 4 00230 }; 00231 00232 enum DtPlatformAirUSCargo 00233 { 00234 DtC130 = 1, 00235 DtKC130 = 1 00236 00237 }; 00238 00239 enum DtPlatformAirUSAttackHelicopter 00240 { 00241 DtAH64 = 1, 00242 DtAH1W = 2, 00243 DtRAH66 = 3 00244 }; 00245 00246 enum DtAH1WSpecific 00247 { 00248 DtSpecificAH1W = 10 00249 }; 00250 00251 enum DtPlatformAirUSObservationHelicopter 00252 { 00253 DtOH58 = 1 00254 }; 00255 00256 enum DtPlatformAirUSUnmannedAirVehicle 00257 { 00258 DtUAV = 0 00259 }; 00260 00261 00262 enum DtPlatformAirUSSpecialOperations 00263 { 00264 DtMH60 = 1, 00265 DtMH53 = 3 00266 }; 00267 00268 enum DtPlatformSurfaceUSCarrier 00269 { 00270 DtCV59 = 4 00271 }; 00272 00273 enum DtCV59Specific 00274 { 00275 DtSpecificCV59 = 1 00276 }; 00277 00278 enum DtPlatformSurfaceUSGuidedMissleCruiser 00279 { 00280 DtTiconderogaClass 00281 }; 00282 00283 enum DtAegisCruiserSpecific 00284 { 00285 DtTiconderoga = 1, 00286 DtYorktown = 2, 00287 DtVincennes = 3, 00288 DtValleyForge = 4, 00289 DtThomasSGates = 5 00290 }; 00291 00292 enum DtPlatformSurfaceUSGuidedMissleFrigate 00293 { 00294 DtFFG7 = 1 00295 }; 00296 00297 enum DtFFG7Specific 00298 { 00299 DtSpecificFFG7 = 1 00300 }; 00301 00302 enum DtPlatformSurfaceUSAmphibiousAssaultShip 00303 { 00304 DtTarawaClass = 1 00305 }; 00306 00307 enum DtLHASpecific 00308 { 00309 DtTarawa = 1, 00310 DtSaipan = 2, 00311 DtBelleauWood = 3, 00312 DtNassau = 4, 00313 DtPeleliu = 5 00314 }; 00315 00316 enum DtPlatformSubsurfaceUSStrategicMissleSubmarine 00317 { 00318 DtSBBNOhio = 1 00319 }; 00320 00321 00325 00326 enum DtPlatformAirFranceUtilityHelicopter 00327 { 00328 DtGazelle = 6 00329 }; 00330 00334 00335 enum DtPlatformLandUKTank 00336 { 00337 DtChallengerMBT = 2 00338 }; 00339 00340 00344 00345 enum DtPlatformLandUSSRTank 00346 { 00347 DtT72 = 2, 00348 DtT64 = 3 00349 }; 00350 00351 enum DtT72Specific 00352 { 00353 DtBasicT72 = 1 00354 }; 00355 00356 enum DtPlatformLandUSSRArmoredFightingVehicle 00357 { 00358 DtBMP1 = 1, 00359 DtBMP2 = 2, 00360 DtBRDM1 = 3, 00361 DtMTLB = 7 00362 }; 00363 00364 00365 enum DtPlatformLandUSSRSelfPropelledArtillery 00366 { 00367 DtSS1ScudMissileLauncher = 10, 00368 DtZSU23_4 = 18, 00369 DtSA6Launcher = 19, 00370 DtSAMSite = 19, 00371 DtSA10FlapLidRadar = 42, 00372 DtSA8LauncherRadar = 41 00373 }; 00374 00375 enum DtSA10Specific 00376 { 00377 DtSpecificSA10 = 1 00378 }; 00379 00380 enum DtSA8Specific 00381 { 00382 DtSpecificSA8 = 1 00383 }; 00384 00385 enum DtPlatformLandUSSRSelfTowedArtillery 00386 { 00387 DtD20 = 3 00388 }; 00389 00390 00391 enum DtPlatformLandUSSRLargeWheeledUtilityVehicle 00392 { 00393 DtZIL157 = 6, 00394 DtGAZ66 = 8, 00395 DtUral375 = 9 00396 }; 00397 00398 enum DtPlatformAirUSSRAttackHelicopter 00399 { 00400 DtMI28 = 1, 00401 DtMI24 = 2 00402 }; 00403 00404 enum DtPlatformAirUSSRFighter 00405 { 00406 DtMiG29 = 2, 00407 DtMiG23 = 5 00408 }; 00409 00410 enum DtPlatformAirUSSRAttack 00411 { 00412 DtSU25 = 8 00413 }; 00414 00415 enum DtPlatformAirUSSRBomber 00416 { 00417 DtTU26 = 3, 00418 DtTU95 = 5 00419 }; 00420 00422 00425 enum DtMunitionAntiAir 00426 { 00427 DtMunitionGuided = 1, 00428 DtMunitionUnguided = 2 00429 }; 00430 00431 enum DtMunitionAntiArmor 00432 { 00433 DtAntiArmorGuided = 1, 00434 DtAntiArmorUnguided = 2 00435 }; 00436 00437 enum DtMunitionAntiRadar 00438 { 00439 DtAntiRadarGuided = 1, 00440 DtAntiRadarUnguided = 2 00441 }; 00442 00443 enum DtMunitionAntiShip 00444 { 00445 DtAntiShipGuided = 1, 00446 DtAntiShipUnguided = 2 00447 }; 00448 00449 enum DtMunitionAntiSubmarine 00450 { 00451 DtAntiSubmarineGuided = 1, 00452 DtAntiSubmarineUnguided = 2 00453 }; 00454 00455 enum DtMunitionAntiPersonnel 00456 { 00457 DtAntiPersonnelGuided = 1, 00458 DtAntiPersonnelUnguided = 2 00459 }; 00460 00461 enum DtMunitionBattlefieldSupport 00462 { 00463 DtBattlefieldSupportGuided = 1, 00464 DtBattlefieldSupportUnguided = 2 00465 }; 00466 00470 00471 enum DtMunitionUSAntiAirGuided 00472 { 00473 DtSidewinder = 1, 00474 DtAMRAAM = 2, 00475 DtHawk = 6, 00476 DtPhoenix = 8, 00477 DtRoland = 11, 00478 DtSeaSparrow = 12, 00479 DtSparrow = 13, 00480 DtStinger = 15, 00481 DtPatriot = 16 00482 }; 00483 00484 00485 enum DtMunitionUSAntiArmorGuided 00486 { 00487 DtBGM71TOW = 1, 00488 DtHellfire = 3, 00489 DtMaverick = 4 00490 }; 00491 00492 enum DtMunitionUSAntiArmorUnguided 00493 { 00494 Dt25mm = 3, 00495 Dt105m = 10, 00496 Dt120mm = 13 00497 }; 00498 00499 enum DtMunitionUSAntiRadarGuided 00500 { 00501 DtAGM88HARM = 1 00502 }; 00503 00504 enum DtMunitionUSAntiSubmarineGuided 00505 { 00506 DtMk48AntiSubmarine = 2 00507 }; 00508 00509 enum DtMunitionUSAntiPersonnelUnguided 00510 { 00511 Dt7_62mm = 2 00512 }; 00513 00514 enum DtMunitionUSBattlefieldSupportUnguided 00515 { 00516 DtBattlefield20mm = 1, 00517 DtBattlefield30mm = 3, 00518 DtBattlefield105mm = 10, 00519 DtBattlefield120mm = 11 00520 }; 00521 00522 enum DtMunitionUSBattlefieldSupportGuided 00523 { 00524 DtBGM109Tomahawk = 6 00525 }; 00526 00527 00528 00532 00533 enum DtMunitionUSSRAntiAirGuided 00534 { 00535 DtAA3Anan = 3, 00536 DtAA9Amos = 9, 00537 DtSA2Guideline = 14, 00538 DtSA3Goa = 15, 00539 DtSA4Ganef = 16, 00540 DtSA6Gainful = 18, 00541 DtSA7Grail = 19, 00542 DtSA8Gecko = 20, 00543 DtSA9Gaskin = 21, 00544 DtSA10Grumble = 22 00545 }; 00546 00547 enum DtMunitionUSSRAntiPersonnelUnguided 00548 { 00549 Dt7_62mmUSSR = 2 00550 }; 00551 00553 enum DtMunitionUKAntiPersonnelUnguided 00554 { 00555 Dt7_62mmUK = 1 00556 }; 00557 00558 enum DtMunitionUKBattlefieldSupportUnguided 00559 { 00560 DtBattlefield105mmUK = 3 00561 }; 00562 00564 00567 enum DtLifeFormLand 00568 { 00569 DtLifeformOther = 0, 00570 DtDismountedInfantry = 1, 00571 DtDismountedInfantryNonVisible = 2, 00572 DtCivilianUnarmed = 3, 00573 DtCivilianWithWeapons = 4, 00574 DtLifeFormAnimal = 5 00575 }; 00576 00577 enum DtNumberOfIndividualLifeForms 00578 { 00579 DtFireTeam = 101, 00580 DtSquad = 102, 00581 DtPlatoon = 103, 00582 DtCompany = 104, 00583 DtBattalion = 105, 00584 DtRegiment = 106, 00585 DtDivision = 107, 00586 DtCorps = 108, 00587 DtArmy = 109 00588 }; 00590 00592 enum DtEnvironmentalAir 00593 { 00594 DtEnvironmentalDomainAirOther = 0, 00595 DtSmoke = 1, 00596 DtFog = 2, 00597 DtCloud = 3, 00598 DtCloudWithRainFalling = 4, 00599 DtCloudWithSnowFalling = 5 00600 }; 00601 00603 enum DtCulturalFeatureLand 00604 { 00605 DtBridgeConcreteTwoLane = 1, 00606 DtBuildingOneStory = 7, 00607 DtBuildingTwoStory = 8, 00608 DtBuildingThreeStory = 9, 00609 DtBuildingFourStory = 10, 00610 DtDragonsTeeth = 20 00611 }; 00612 00614 enum DtSupplyCategories 00615 { 00616 DtSupplyOther = 0, 00617 DtSupplyFuels = 1, 00618 DtSupplyOils = 2, 00619 DtSupplyLubricants = 3, 00620 DtSupplyFood = 4, 00621 DtSupplySpareParts = 5, 00622 DtSupplyPersonnel = 6 00623 }; 00624 00626 enum DtSizeQualifier 00627 { 00628 DtOther = 0, 00629 DtVerySmall = 20, 00630 DtSmall = 40, 00631 DtMedium = 60, 00632 DtLarge = 80, 00633 DtVeryLarge = 100 00634 }; 00635 00636 00637 #define DtSameEntityKind(a,b) \ 00638 ((a)->DtEntityKind == (b)->DtEntityKind && \ 00639 (a)->DtDomain == (b)->DtDomain && \ 00640 (a)->DtCountry == (b)->DtCountry && \ 00641 (a)->DtCategory == (b)->DtCategory && \ 00642 (a)->DtSubCategory == (b)->DtSubCategory && \ 00643 (a)->DtSpecific == (b)->DtSpecific && \ 00644 (a)->DtExtra == (b)->DtExtra) 00645 00646 #define DtIsLandPlatform(a) \ 00647 ((a)->DtEntityKind == DtPlatform && \ 00648 (a)->DtDomain == DtPlatformDomainLand) 00649 00650 #define DtIsLandLifeForm(a) \ 00651 ((a)->DtEntityKind == DtLifeForm && \ 00652 (a)->DtDomain == DtLifeFormDomainLand) 00653 00654 #define DtIsAirPlatform(a) \ 00655 ((a)->DtEntityKind == DtPlatform && \ 00656 (a)->DtDomain == DtPlatformDomainAir) 00657 00658 #define DtIsTank(a) \ 00659 (DtIsLandPlatform(a) && (a)->DtCategory == DtTank) 00660 00661 #define DtIsRotaryWing(a) \ 00662 (DtIsAirPlatform(a) && \ 00663 (a)->DtCategory >= 20 && \ 00664 (a)->DtCategory < 30) 00665 00666 #define DtIsFixedWing(a) \ 00667 (DtIsAirPlatform(a) && \ 00668 (!DtIsRotaryWing(a))) 00669 00670 00671 #define antiPersonell 8 00672 00673 00674 #define DtEntityIsAntiPersonnel(a) \ 00675 (((a)->DtEntityKind == DtMunition) && ((a)->DtDomain == antiPersonell)) 00676 00677 #endif