# Turret CoverArea, and the turret leftovers # Regenerate: python3 tools/re-capture/turret_coverarea.py # See docs/re/structures/unit-substructure-records.md ## CoverArea is a 6-BIT mask turrets 835 ; distinct values 41 ; max 0x3f ; any bit >= 6 set: False per-bit set count: bit 0 709 bit 1 117 bit 2 274 bit 3 274 bit 4 260 bit 5 237 bit 6 0 bit 7 0 popcount: {0: 34, 1: 439, 2: 40, 3: 62, 4: 147, 5: 100, 6: 13} ## it tracks the MOUNT, not the weapon mask n weapon classes 0x01 439 {'Gun': 95, 'Beam': 67, 'Cannon': 56, 'Laser': 41} 0x3d 82 {'Missile': 82} 0x00 34 {'NULL': 34} 0x2d 28 {'ASGun': 14, 'AAGun': 12, 'Beam': 2} 0x1d 25 {'ASGun': 14, 'AAGun': 8, 'Beam': 2, 'Laser': 1} 0x17 13 {'AAGun': 13} 0x1b 13 {'AAGun': 13} 0x3f 13 {'Gun': 13} 0x39 12 {'AAGun': 8, 'ASGun': 4} 0x35 12 {'AAGun': 8, 'ASGun': 4} 0x27 12 {'AAGun': 10, 'ASGun': 2} 0x2b 12 {'AAGun': 10, 'ASGun': 2} 0x19 10 {'AAGun': 5, 'ASGun': 4, 'Gun': 1} 0x15 10 {'AAGun': 5, 'ASGun': 4, 'Gun': 1} 0x14 10 {'AAGun': 6, 'ASGun': 4} 0x18 10 {'AAGun': 6, 'ASGun': 4} worked example -- one hull, one weapon, masks differ by mount: UN_e107_ADAN_AAFrigate mask 0x1d Frame=GN_GunXS_01_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x1d Frame=GN_GunXS_02_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x1d Frame=GN_GunXS_03_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x1d Frame=GN_GunXS_04_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame=GN_GunXS_05_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame=GN_GunXS_06_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame=GN_GunXS_07_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame=GN_GunXS_08_ContH Yaw=120.0 Weapon_ADAN_AAFrigate_AAGun mask 0x0c Frame= Yaw=20.0 Weapon_ADAN_Ship_AAMissile UN_f104_TCAF_Battleship mask 0x01 Frame= Yaw=3.0 Weapon_TCAF_Battleship_BowChaser mask 0x1d Frame=GN_TGunL_01_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x2b Frame=GN_TGunM_02_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x1d Frame=GN_TGunL_02_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x27 Frame=GN_TGunM_03_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x39 Frame=GN_TGunL_03_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x17 Frame=GN_TAAGunL_01 Yaw=45.0 Weapon_TCAF_Ship_AAGun mask 0x39 Frame=GN_TGunL_04_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x1b Frame=GN_TAAGunL_02 Yaw=45.0 Weapon_TCAF_Ship_AAGun mask 0x35 Frame=GN_TGunL_05_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x17 Frame=GN_TAAGunL_03 Yaw=45.0 Weapon_TCAF_Ship_AAGun mask 0x35 Frame=GN_TGunL_06_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x1b Frame=GN_TAAGunL_04 Yaw=45.0 Weapon_TCAF_Ship_AAGun mask 0x2d Frame=GN_TGunL_07_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x27 Frame=GN_TAAGunL_05 Yaw=45.0 Weapon_TCAF_Ship_AAGun mask 0x2d Frame=GN_TGunL_08_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x2b Frame=GN_TAAGunL_06 Yaw=45.0 Weapon_TCAF_Ship_AAGun mask 0x1f Frame=GN_TGunM_01_ContH Yaw=120.0 Weapon_TCAF_Ship_ASGun mask 0x27 Frame=GN_TAAGunL_07 Yaw=45.0 Weapon_TCAF_Ship_AAGun mask 0x2b Frame=GN_TAAGunL_08 Yaw=45.0 Weapon_TCAF_Ship_AAGun ## the weapons no turret mounts Weapon.ID 131 ; mounted 105 ; never 26 Weapon_ADAN_Attacker_S_GunTurret Weapon_DSaber_P_wep_13_Child Weapon_DSaber_P_wep_29_Child Weapon_S16Boss_AAGun Weapon_S16Boss_HBeam Weapon_S16Boss_Laser Weapon_TCAF_DeltaSaber_ASMissile_P Weapon_TCAF_DeltaSaber_Beam_P Weapon_TCAF_DeltaSaber_Bomb_P Weapon_TCAF_DeltaSaber_Cannon_P Weapon_TCAF_DeltaSaber_Gun_P Weapon_TCAF_DeltaSaber_Laser_P Weapon_TCAF_DeltaSaber_Laser_Ttrl Weapon_TCAF_DeltaSaber_Missile_P Weapon_TCAF_DeltaSaber_NoseGun Weapon_TCAF_DeltaSaber_NoseGun_None Weapon_TCAF_DeltaSaber_NoseGun_P Weapon_TCAF_DeltaSaber_NoseGun_Ttrl Weapon_TCAF_DeltaSaber_Rocket_P Weapon_TCAF_DeltaSaber_Shotgun_P Weapon_TCAF_DeltaSaber_Special_P Weapon_TCAF_DeltaSaber_TwinGun Weapon_TCAF_DeltaSaber_TwinGun_P Weapon_Test_ASMissile Weapon_Test_Gun_Player Weapon_Test_Missile_Player ## Versatile_NNN across all 41 archives populated records: NONE — only the `???` template row ## the two units whose turret count is one short UN_e001_ADAN_Elan_EX4 TurretCount=1 records=2 mask 0x01 Frame='' Weapon_ADAN_Turret_NoseGun mask 0x01 Frame='' Weapon_ADAN_Turret_Missile UN_e107_ADAN_AAFrigate_EX4 TurretCount=8 records=9 mask 0x1d Frame='GN_GunXS_01_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x1d Frame='GN_GunXS_02_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x1d Frame='GN_GunXS_03_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x1d Frame='GN_GunXS_04_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame='GN_GunXS_05_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame='GN_GunXS_06_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame='GN_GunXS_07_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x2d Frame='GN_GunXS_08_ContH' Weapon_ADAN_AAFrigate_AAGun mask 0x0c Frame='' Weapon_ADAN_Ship_AAMissile