diff --git a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperWeapon.cpp b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperWeapon.cpp index 33d2704f..182215e2 100644 --- a/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperWeapon.cpp +++ b/src/ObjWriting/Game/T6/AssetDumpers/AssetDumperWeapon.cpp @@ -8,1032 +8,1032 @@ using namespace T6; cspField_t AssetDumperWeapon::weapon_fields[] { - {"displayName", 0xc, CSPFT_STRING}, - {"AIOverlayDescription", 0x2cc, CSPFT_STRING}, - {"modeName", 0x2d8, CSPFT_STRING}, - {"playerAnimType", 0x2e4, WFT_ANIMTYPE}, - {"gunModel", 0xed4, CSPFT_XMODEL}, - {"gunModel2", 0xed8, CSPFT_XMODEL}, - {"gunModel3", 0xedc, CSPFT_XMODEL}, - {"gunModel4", 0xee0, CSPFT_XMODEL}, - {"gunModel5", 0xee4, CSPFT_XMODEL}, - {"gunModel6", 0xee8, CSPFT_XMODEL}, - {"gunModel7", 0xeec, CSPFT_XMODEL}, - {"gunModel8", 0xef0, CSPFT_XMODEL}, - {"gunModel9", 0xef4, CSPFT_XMODEL}, - {"gunModel10", 0xef8, CSPFT_XMODEL}, - {"gunModel11", 0xefc, CSPFT_XMODEL}, - {"gunModel12", 0xf00, CSPFT_XMODEL}, - {"gunModel13", 0xf04, CSPFT_XMODEL}, - {"gunModel14", 0xf08, CSPFT_XMODEL}, - {"gunModel15", 0xf0c, CSPFT_XMODEL}, - {"gunModel16", 0xf10, CSPFT_XMODEL}, - {"handModel", 0x2d4, CSPFT_XMODEL}, - {"hideTags", 0x1074, WFT_HIDETAGS}, - {"notetrackSoundMap", 0x10b4, WFT_NOTETRACKSOUNDMAP}, - {"idleAnim", 0xf18, CSPFT_STRING}, - {"idleAnimLeft", 0x1058, CSPFT_STRING}, - {"emptyIdleAnim", 0xf1c, CSPFT_STRING}, - {"emptyIdleAnimLeft", 0x105c, CSPFT_STRING}, - {"fireIntroAnim", 0xf20, CSPFT_STRING}, - {"fireAnim", 0xf24, CSPFT_STRING}, - {"fireAnimLeft", 0x104c, CSPFT_STRING}, - {"holdFireAnim", 0xf28, CSPFT_STRING}, - {"lastShotAnim", 0xf2c, CSPFT_STRING}, - {"lastShotAnimLeft", 0x1050, CSPFT_STRING}, - {"flourishAnim", 0xf30, CSPFT_STRING}, - {"flourishAnimLeft", 0x1054, CSPFT_STRING}, - {"detonateAnim", 0xffc, CSPFT_STRING}, - {"rechamberAnim", 0xf34, CSPFT_STRING}, - {"meleeAnim", 0xf38, CSPFT_STRING}, - {"meleeAnimEmpty", 0xf48, CSPFT_STRING}, - {"meleeAnim1", 0xf3c, CSPFT_STRING}, - {"meleeAnim2", 0xf40, CSPFT_STRING}, - {"meleeAnim3", 0xf44, CSPFT_STRING}, - {"meleeChargeAnim", 0xf4c, CSPFT_STRING}, - {"meleeChargeAnimEmpty", 0xf50, CSPFT_STRING}, - {"reloadAnim", 0xf54, CSPFT_STRING}, - {"reloadAnimRight", 0xf58, CSPFT_STRING}, - {"reloadAnimLeft", 0x1064, CSPFT_STRING}, - {"reloadEmptyAnim", 0xf5c, CSPFT_STRING}, - {"reloadEmptyAnimLeft", 0x1060, CSPFT_STRING}, - {"reloadStartAnim", 0xf60, CSPFT_STRING}, - {"reloadEndAnim", 0xf64, CSPFT_STRING}, - {"reloadQuickAnim", 0xf68, CSPFT_STRING}, - {"reloadQuickEmptyAnim", 0xf6c, CSPFT_STRING}, - {"raiseAnim", 0xf70, CSPFT_STRING}, - {"dropAnim", 0xf78, CSPFT_STRING}, - {"firstRaiseAnim", 0xf74, CSPFT_STRING}, - {"altRaiseAnim", 0xf7c, CSPFT_STRING}, - {"altDropAnim", 0xf80, CSPFT_STRING}, - {"quickRaiseAnim", 0xf84, CSPFT_STRING}, - {"quickDropAnim", 0xf88, CSPFT_STRING}, - {"emptyRaiseAnim", 0xf8c, CSPFT_STRING}, - {"emptyDropAnim", 0xf90, CSPFT_STRING}, - {"sprintInAnim", 0xf94, CSPFT_STRING}, - {"sprintLoopAnim", 0xf98, CSPFT_STRING}, - {"sprintOutAnim", 0xf9c, CSPFT_STRING}, - {"sprintInEmptyAnim", 0xfa0, CSPFT_STRING}, - {"sprintLoopEmptyAnim", 0xfa4, CSPFT_STRING}, - {"sprintOutEmptyAnim", 0xfa8, CSPFT_STRING}, - {"lowReadyInAnim", 0xfac, CSPFT_STRING}, - {"lowReadyLoopAnim", 0xfb0, CSPFT_STRING}, - {"lowReadyOutAnim", 0xfb4, CSPFT_STRING}, - {"contFireInAnim", 0xfb8, CSPFT_STRING}, - {"contFireLoopAnim", 0xfbc, CSPFT_STRING}, - {"contFireOutAnim", 0xfc0, CSPFT_STRING}, - {"crawlInAnim", 0xfc4, CSPFT_STRING}, - {"crawlForwardAnim", 0xfc8, CSPFT_STRING}, - {"crawlBackAnim", 0xfcc, CSPFT_STRING}, - {"crawlRightAnim", 0xfd0, CSPFT_STRING}, - {"crawlLeftAnim", 0xfd4, CSPFT_STRING}, - {"crawlOutAnim", 0xfd8, CSPFT_STRING}, - {"crawlEmptyInAnim", 0xfdc, CSPFT_STRING}, - {"crawlEmptyForwardAnim", 0xfe0, CSPFT_STRING}, - {"crawlEmptyBackAnim", 0xfe4, CSPFT_STRING}, - {"crawlEmptyRightAnim", 0xfe8, CSPFT_STRING}, - {"crawlEmptyLeftAnim", 0xfec, CSPFT_STRING}, - {"crawlEmptyOutAnim", 0xff0, CSPFT_STRING}, - {"deployAnim", 0xff4, CSPFT_STRING}, - {"nightVisionWearAnim", 0x1000, CSPFT_STRING}, - {"nightVisionRemoveAnim", 0x1004, CSPFT_STRING}, - {"adsFireAnim", 0x1008, CSPFT_STRING}, - {"adsLastShotAnim", 0x100c, CSPFT_STRING}, - {"adsRechamberAnim", 0x1014, CSPFT_STRING}, - {"adsUpAnim", 0x1068, CSPFT_STRING}, - {"adsDownAnim", 0x106c, CSPFT_STRING}, - {"adsUpOtherScopeAnim", 0x1070, CSPFT_STRING}, - {"adsFireIntroAnim", 0x1010, CSPFT_STRING}, - {"breakdownAnim", 0xff8, CSPFT_STRING}, - {"dtp_in", 0x1018, CSPFT_STRING}, - {"dtp_loop", 0x101c, CSPFT_STRING}, - {"dtp_out", 0x1020, CSPFT_STRING}, - {"dtp_empty_in", 0x1024, CSPFT_STRING}, - {"dtp_empty_loop", 0x1028, CSPFT_STRING}, - {"dtp_empty_out", 0x102c, CSPFT_STRING}, - {"slide_in", 0x1030, CSPFT_STRING}, - {"mantleAnim", 0x1034, CSPFT_STRING}, - {"sprintCameraAnim", 0x1038, CSPFT_STRING}, - {"dtpInCameraAnim", 0x103c, CSPFT_STRING}, - {"dtpLoopCameraAnim", 0x1040, CSPFT_STRING}, - {"dtpOutCameraAnim", 0x1044, CSPFT_STRING}, - {"mantleCameraAnim", 0x1048, CSPFT_STRING}, - {"script", 0xbb8, CSPFT_STRING}, - {"weaponType", 0x2e8, WFT_WEAPONTYPE}, - {"weaponClass", 0x2ec, WFT_WEAPONCLASS}, - {"penetrateType", 0x2f0, WFT_PENETRATE_TYPE}, - {"impactType", 0x2f4, WFT_IMPACT_TYPE}, - {"inventoryType", 0x2f8, WFT_INVENTORYTYPE}, - {"fireType", 0x2fc, WFT_FIRETYPE}, - {"clipType", 0x300, WFT_CLIPTYPE}, - {"barrelType", 0x304, WFT_BARRELTYPE}, - {"offhandClass", 0x32c, WFT_OFFHAND_CLASS}, - {"offhandSlot", 0x330, WFT_OFFHAND_SLOT}, - {"viewFlashEffect", 0x338, CSPFT_FX}, - {"worldFlashEffect", 0x33c, CSPFT_FX}, - {"barrelCooldownEffect", 0x340, CSPFT_FX}, - {"barrelCooldownMinCount", 0x344, CSPFT_INT}, - {"viewFlashOffsetF", 0x348, CSPFT_FLOAT}, - {"viewFlashOffsetR", 0x34c, CSPFT_FLOAT}, - {"viewFlashOffsetU", 0x350, CSPFT_FLOAT}, - {"worldFlashOffsetF", 0x354, CSPFT_FLOAT}, - {"worldFlashOffsetR", 0x358, CSPFT_FLOAT}, - {"worldFlashOffsetU", 0x35c, CSPFT_FLOAT}, - {"pickupSound", 0x360, CSPFT_STRING}, - {"pickupSoundPlayer", 0x364, CSPFT_STRING}, - {"ammoPickupSound", 0x368, CSPFT_STRING}, - {"ammoPickupSoundPlayer", 0x36c, CSPFT_STRING}, - {"projectileSound", 0x370, CSPFT_STRING}, - {"pullbackSound", 0x374, CSPFT_STRING}, - {"pullbackSoundPlayer", 0x378, CSPFT_STRING}, - {"fireSound", 0x37c, CSPFT_STRING}, - {"crackSound", 0x3bc, CSPFT_STRING}, - {"whizbySound", 0x3c0, CSPFT_STRING}, - {"fireSoundPlayer", 0x380, CSPFT_STRING}, - {"loopFireSound", 0x384, CSPFT_STRING}, - {"loopFireSoundPlayer", 0x388, CSPFT_STRING}, - {"loopFireEndSound", 0x38c, CSPFT_STRING}, - {"loopFireEndSoundPlayer", 0x390, CSPFT_STRING}, - {"startFireSound", 0x394, CSPFT_STRING}, - {"stopFireSound", 0x398, CSPFT_STRING}, - {"killcamStartFireSound", 0x39c, CSPFT_STRING}, - {"startFireSoundPlayer", 0x3a0, CSPFT_STRING}, - {"stopFireSoundPlayer", 0x3a4, CSPFT_STRING}, - {"killcamStartFireSoundPlayer", 0x3a8, CSPFT_STRING}, - {"lastShotSound", 0x3ac, CSPFT_STRING}, - {"lastShotSoundPlayer", 0x3b0, CSPFT_STRING}, - {"emptyFireSound", 0x3b4, CSPFT_STRING}, - {"emptyFireSoundPlayer", 0x3b8, CSPFT_STRING}, - {"meleeSwipeSound", 0x3c4, CSPFT_STRING}, - {"meleeSwipeSoundPlayer", 0x3c8, CSPFT_STRING}, - {"meleeHitSound", 0x3cc, CSPFT_STRING}, - {"meleeMissSound", 0x3d0, CSPFT_STRING}, - {"rechamberSound", 0x3d4, CSPFT_STRING}, - {"rechamberSoundPlayer", 0x3d8, CSPFT_STRING}, - {"reloadSound", 0x3dc, CSPFT_STRING}, - {"reloadSoundPlayer", 0x3e0, CSPFT_STRING}, - {"reloadEmptySound", 0x3e4, CSPFT_STRING}, - {"reloadEmptySoundPlayer", 0x3e8, CSPFT_STRING}, - {"reloadStartSound", 0x3ec, CSPFT_STRING}, - {"reloadStartSoundPlayer", 0x3f0, CSPFT_STRING}, - {"reloadEndSound", 0x3f4, CSPFT_STRING}, - {"reloadEndSoundPlayer", 0x3f8, CSPFT_STRING}, - {"rotateLoopSound", 0x3fc, CSPFT_STRING}, - {"rotateLoopSoundPlayer", 0x400, CSPFT_STRING}, - {"rotateStopSound", 0x404, CSPFT_STRING}, - {"rotateStopSoundPlayer", 0x408, CSPFT_STRING}, - {"deploySound", 0x40c, CSPFT_STRING}, - {"deploySoundPlayer", 0x410, CSPFT_STRING}, - {"finishDeploySound", 0x414, CSPFT_STRING}, - {"finishDeploySoundPlayer", 0x418, CSPFT_STRING}, - {"breakdownSound", 0x41c, CSPFT_STRING}, - {"breakdownSoundPlayer", 0x420, CSPFT_STRING}, - {"finishBreakdownSound", 0x424, CSPFT_STRING}, - {"finishBreakdownSoundPlayer", 0x428, CSPFT_STRING}, - {"detonateSound", 0x42c, CSPFT_STRING}, - {"detonateSoundPlayer", 0x430, CSPFT_STRING}, - {"nightVisionWearSound", 0x434, CSPFT_STRING}, - {"nightVisionWearSoundPlayer", 0x438, CSPFT_STRING}, - {"nightVisionRemoveSound", 0x43c, CSPFT_STRING}, - {"nightVisionRemoveSoundPlayer", 0x440, CSPFT_STRING}, - {"raiseSound", 0x44c, CSPFT_STRING}, - {"raiseSoundPlayer", 0x450, CSPFT_STRING}, - {"firstRaiseSound", 0x454, CSPFT_STRING}, - {"firstRaiseSoundPlayer", 0x458, CSPFT_STRING}, - {"altSwitchSound", 0x444, CSPFT_STRING}, - {"altSwitchSoundPlayer", 0x448, CSPFT_STRING}, - {"adsRaiseSoundPlayer", 0x45c, CSPFT_STRING}, - {"adsLowerSoundPlayer", 0x460, CSPFT_STRING}, - {"putawaySound", 0x464, CSPFT_STRING}, - {"putawaySoundPlayer", 0x468, CSPFT_STRING}, - {"overheatSound", 0x46c, CSPFT_STRING}, - {"overheatSoundPlayer", 0x470, CSPFT_STRING}, - {"adsZoomSound", 0x474, CSPFT_STRING}, - {"shellCasing", 0x478, CSPFT_STRING}, - {"shellCasingPlayer", 0x47c, CSPFT_STRING}, - {"bounceSound", 0x480, WFT_BOUNCE_SOUND}, - {"standMountedWeapdef", 0x484, CSPFT_STRING}, - {"crouchMountedWeapdef", 0x488, CSPFT_STRING}, - {"proneMountedWeapdef", 0x48c, CSPFT_STRING}, - {"viewShellEjectEffect", 0x49c, CSPFT_FX}, - {"worldShellEjectEffect", 0x4a0, CSPFT_FX}, - {"viewLastShotEjectEffect", 0x4a4, CSPFT_FX}, - {"worldLastShotEjectEffect", 0x4a8, CSPFT_FX}, - {"viewShellEjectOffsetF", 0x4ac, CSPFT_FLOAT}, - {"viewShellEjectOffsetR", 0x4b0, CSPFT_FLOAT}, - {"viewShellEjectOffsetU", 0x4b4, CSPFT_FLOAT}, - {"worldShellEjectOffsetF", 0x4b8, CSPFT_FLOAT}, - {"worldShellEjectOffsetR", 0x4bc, CSPFT_FLOAT}, - {"worldShellEjectOffsetU", 0x4c0, CSPFT_FLOAT}, - {"viewShellEjectRotationP", 0x4c4, CSPFT_FLOAT}, - {"viewShellEjectRotationY", 0x4c8, CSPFT_FLOAT}, - {"viewShellEjectRotationR", 0x4cc, CSPFT_FLOAT}, - {"worldShellEjectRotationP", 0x4d0, CSPFT_FLOAT}, - {"worldShellEjectRotationY", 0x4d4, CSPFT_FLOAT}, - {"worldShellEjectRotationR", 0x4d8, CSPFT_FLOAT}, - {"reticleCenter", 0x4dc, CSPFT_MATERIAL}, - {"reticleSide", 0x4e0, CSPFT_MATERIAL}, - {"reticleCenterSize", 0x4e4, CSPFT_INT}, - {"reticleSideSize", 0x4e8, CSPFT_INT}, - {"reticleMinOfs", 0x4ec, CSPFT_INT}, - {"activeReticleType", 0x4f0, WFT_ACTIVE_RETICLE_TYPE}, - {"standMoveF", 0x4f4, CSPFT_FLOAT}, - {"standMoveR", 0x4f8, CSPFT_FLOAT}, - {"standMoveU", 0x4fc, CSPFT_FLOAT}, - {"standRotP", 0x500, CSPFT_FLOAT}, - {"standRotY", 0x504, CSPFT_FLOAT}, - {"standRotR", 0x508, CSPFT_FLOAT}, - {"duckedOfsF", 0x50c, CSPFT_FLOAT}, - {"duckedOfsR", 0x510, CSPFT_FLOAT}, - {"duckedOfsU", 0x514, CSPFT_FLOAT}, - {"duckedMoveF", 0x518, CSPFT_FLOAT}, - {"duckedMoveR", 0x51c, CSPFT_FLOAT}, - {"duckedMoveU", 0x520, CSPFT_FLOAT}, - {"duckedSprintOfsF", 0x524, CSPFT_FLOAT}, - {"duckedSprintOfsR", 0x528, CSPFT_FLOAT}, - {"duckedSprintOfsU", 0x52c, CSPFT_FLOAT}, - {"duckedSprintRotP", 0x530, CSPFT_FLOAT}, - {"duckedSprintRotY", 0x534, CSPFT_FLOAT}, - {"duckedSprintRotR", 0x538, CSPFT_FLOAT}, - {"duckedSprintBobH", 0x53c, CSPFT_FLOAT}, - {"duckedSprintBobV", 0x540, CSPFT_FLOAT}, - {"duckedSprintScale", 0x544, CSPFT_FLOAT}, - {"sprintOfsF", 0x548, CSPFT_FLOAT}, - {"sprintOfsR", 0x54c, CSPFT_FLOAT}, - {"sprintOfsU", 0x550, CSPFT_FLOAT}, - {"sprintRotP", 0x554, CSPFT_FLOAT}, - {"sprintRotY", 0x558, CSPFT_FLOAT}, - {"sprintRotR", 0x55c, CSPFT_FLOAT}, - {"sprintBobH", 0x560, CSPFT_FLOAT}, - {"sprintBobV", 0x564, CSPFT_FLOAT}, - {"sprintScale", 0x568, CSPFT_FLOAT}, - {"lowReadyOfsF", 0x56c, CSPFT_FLOAT}, - {"lowReadyOfsR", 0x570, CSPFT_FLOAT}, - {"lowReadyOfsU", 0x574, CSPFT_FLOAT}, - {"lowReadyRotP", 0x578, CSPFT_FLOAT}, - {"lowReadyRotY", 0x57c, CSPFT_FLOAT}, - {"lowReadyRotR", 0x580, CSPFT_FLOAT}, - {"rideOfsF", 0x584, CSPFT_FLOAT}, - {"rideOfsR", 0x588, CSPFT_FLOAT}, - {"rideOfsU", 0x58c, CSPFT_FLOAT}, - {"rideRotP", 0x590, CSPFT_FLOAT}, - {"rideRotY", 0x594, CSPFT_FLOAT}, - {"rideRotR", 0x598, CSPFT_FLOAT}, - {"dtpOfsF", 0x59c, CSPFT_FLOAT}, - {"dtpOfsR", 0x5a0, CSPFT_FLOAT}, - {"dtpOfsU", 0x5a4, CSPFT_FLOAT}, - {"dtpRotP", 0x5a8, CSPFT_FLOAT}, - {"dtpRotY", 0x5ac, CSPFT_FLOAT}, - {"dtpRotR", 0x5b0, CSPFT_FLOAT}, - {"dtpBobH", 0x5b4, CSPFT_FLOAT}, - {"dtpBobV", 0x5b8, CSPFT_FLOAT}, - {"dtpScale", 0x5bc, CSPFT_FLOAT}, - {"mantleOfsF", 0x5c0, CSPFT_FLOAT}, - {"mantleOfsR", 0x5c4, CSPFT_FLOAT}, - {"mantleOfsU", 0x5c8, CSPFT_FLOAT}, - {"mantleRotP", 0x5cc, CSPFT_FLOAT}, - {"mantleRotY", 0x5d0, CSPFT_FLOAT}, - {"mantleRotR", 0x5d4, CSPFT_FLOAT}, - {"slideOfsF", 0x5d8, CSPFT_FLOAT}, - {"slideOfsR", 0x5dc, CSPFT_FLOAT}, - {"slideOfsU", 0x5e0, CSPFT_FLOAT}, - {"slideRotP", 0x5e4, CSPFT_FLOAT}, - {"slideRotY", 0x5e8, CSPFT_FLOAT}, - {"slideRotR", 0x5ec, CSPFT_FLOAT}, - {"duckedRotP", 0x5f0, CSPFT_FLOAT}, - {"duckedRotY", 0x5f4, CSPFT_FLOAT}, - {"duckedRotR", 0x5f8, CSPFT_FLOAT}, - {"proneOfsF", 0x5fc, CSPFT_FLOAT}, - {"proneOfsR", 0x600, CSPFT_FLOAT}, - {"proneOfsU", 0x604, CSPFT_FLOAT}, - {"proneMoveF", 0x608, CSPFT_FLOAT}, - {"proneMoveR", 0x60c, CSPFT_FLOAT}, - {"proneMoveU", 0x610, CSPFT_FLOAT}, - {"proneRotP", 0x614, CSPFT_FLOAT}, - {"proneRotY", 0x618, CSPFT_FLOAT}, - {"proneRotR", 0x61c, CSPFT_FLOAT}, - {"strafeMoveF", 0x620, CSPFT_FLOAT}, - {"strafeMoveR", 0x624, CSPFT_FLOAT}, - {"strafeMoveU", 0x628, CSPFT_FLOAT}, - {"strafeRotP", 0x62c, CSPFT_FLOAT}, - {"strafeRotY", 0x630, CSPFT_FLOAT}, - {"strafeRotR", 0x634, CSPFT_FLOAT}, - {"posMoveRate", 0x638, CSPFT_FLOAT}, - {"posProneMoveRate", 0x63c, CSPFT_FLOAT}, - {"standMoveMinSpeed", 0x640, CSPFT_FLOAT}, - {"duckedMoveMinSpeed", 0x644, CSPFT_FLOAT}, - {"proneMoveMinSpeed", 0x648, CSPFT_FLOAT}, - {"posRotRate", 0x64c, CSPFT_FLOAT}, - {"posProneRotRate", 0x650, CSPFT_FLOAT}, - {"standRotMinSpeed", 0x654, CSPFT_FLOAT}, - {"duckedRotMinSpeed", 0x658, CSPFT_FLOAT}, - {"proneRotMinSpeed", 0x65c, CSPFT_FLOAT}, - {"worldModel", 0x1104, CSPFT_XMODEL}, - {"worldModel2", 0x1108, CSPFT_XMODEL}, - {"worldModel3", 0x110c, CSPFT_XMODEL}, - {"worldModel4", 0x1110, CSPFT_XMODEL}, - {"worldModel5", 0x1114, CSPFT_XMODEL}, - {"worldModel6", 0x1118, CSPFT_XMODEL}, - {"worldModel7", 0x111c, CSPFT_XMODEL}, - {"worldModel8", 0x1120, CSPFT_XMODEL}, - {"worldModel9", 0x1124, CSPFT_XMODEL}, - {"worldModel10", 0x1128, CSPFT_XMODEL}, - {"worldModel11", 0x112c, CSPFT_XMODEL}, - {"worldModel12", 0x1130, CSPFT_XMODEL}, - {"worldModel13", 0x1134, CSPFT_XMODEL}, - {"worldModel14", 0x1138, CSPFT_XMODEL}, - {"worldModel15", 0x113c, CSPFT_XMODEL}, - {"worldModel16", 0x1140, CSPFT_XMODEL}, - {"attachViewModel1", 0x1144, CSPFT_XMODEL}, - {"attachViewModel2", 0x1148, CSPFT_XMODEL}, - {"attachViewModel3", 0x114c, CSPFT_XMODEL}, - {"attachViewModel4", 0x1150, CSPFT_XMODEL}, - {"attachViewModel5", 0x1154, CSPFT_XMODEL}, - {"attachViewModel6", 0x1158, CSPFT_XMODEL}, - {"attachViewModel7", 0x115c, CSPFT_XMODEL}, - {"attachViewModel8", 0x1160, CSPFT_XMODEL}, - {"attachWorldModel1", 0x1164, CSPFT_XMODEL}, - {"attachWorldModel2", 0x1168, CSPFT_XMODEL}, - {"attachWorldModel3", 0x116c, CSPFT_XMODEL}, - {"attachWorldModel4", 0x1170, CSPFT_XMODEL}, - {"attachWorldModel5", 0x1174, CSPFT_XMODEL}, - {"attachWorldModel6", 0x1178, CSPFT_XMODEL}, - {"attachWorldModel7", 0x117c, CSPFT_XMODEL}, - {"attachWorldModel8", 0x1180, CSPFT_XMODEL}, - {"attachViewModelTag1", 0x1184, CSPFT_STRING}, - {"attachViewModelTag2", 0x1188, CSPFT_STRING}, - {"attachViewModelTag3", 0x118c, CSPFT_STRING}, - {"attachViewModelTag4", 0x1190, CSPFT_STRING}, - {"attachViewModelTag5", 0x1194, CSPFT_STRING}, - {"attachViewModelTag6", 0x1198, CSPFT_STRING}, - {"attachViewModelTag7", 0x119c, CSPFT_STRING}, - {"attachViewModelTag8", 0x11a0, CSPFT_STRING}, - {"attachWorldModelTag1", 0x11a4, CSPFT_STRING}, - {"attachWorldModelTag2", 0x11a8, CSPFT_STRING}, - {"attachWorldModelTag3", 0x11ac, CSPFT_STRING}, - {"attachWorldModelTag4", 0x11b0, CSPFT_STRING}, - {"attachWorldModelTag5", 0x11b4, CSPFT_STRING}, - {"attachWorldModelTag6", 0x11b8, CSPFT_STRING}, - {"attachWorldModelTag7", 0x11bc, CSPFT_STRING}, - {"attachWorldModelTag8", 0x11c0, CSPFT_STRING}, - {"attachViewModelOffsetX1", 0x38, CSPFT_FLOAT}, - {"attachViewModelOffsetY1", 0x3c, CSPFT_FLOAT}, - {"attachViewModelOffsetZ1", 0x40, CSPFT_FLOAT}, - {"attachViewModelOffsetX2", 0x44, CSPFT_FLOAT}, - {"attachViewModelOffsetY2", 0x48, CSPFT_FLOAT}, - {"attachViewModelOffsetZ2", 0x4c, CSPFT_FLOAT}, - {"attachViewModelOffsetX3", 0x50, CSPFT_FLOAT}, - {"attachViewModelOffsetY3", 0x54, CSPFT_FLOAT}, - {"attachViewModelOffsetZ3", 0x58, CSPFT_FLOAT}, - {"attachViewModelOffsetX4", 0x5c, CSPFT_FLOAT}, - {"attachViewModelOffsetY4", 0x60, CSPFT_FLOAT}, - {"attachViewModelOffsetZ4", 0x64, CSPFT_FLOAT}, - {"attachViewModelOffsetX5", 0x68, CSPFT_FLOAT}, - {"attachViewModelOffsetY5", 0x6c, CSPFT_FLOAT}, - {"attachViewModelOffsetZ5", 0x70, CSPFT_FLOAT}, - {"attachViewModelOffsetX6", 0x74, CSPFT_FLOAT}, - {"attachViewModelOffsetY6", 0x78, CSPFT_FLOAT}, - {"attachViewModelOffsetZ6", 0x7c, CSPFT_FLOAT}, - {"attachViewModelOffsetX7", 0x80, CSPFT_FLOAT}, - {"attachViewModelOffsetY7", 0x84, CSPFT_FLOAT}, - {"attachViewModelOffsetZ7", 0x88, CSPFT_FLOAT}, - {"attachViewModelOffsetX8", 0x8c, CSPFT_FLOAT}, - {"attachViewModelOffsetY8", 0x90, CSPFT_FLOAT}, - {"attachViewModelOffsetZ8", 0x94, CSPFT_FLOAT}, - {"attachWorldModelOffsetX1", 0x98, CSPFT_FLOAT}, - {"attachWorldModelOffsetY1", 0x9c, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ1", 0xa0, CSPFT_FLOAT}, - {"attachWorldModelOffsetX2", 0xa4, CSPFT_FLOAT}, - {"attachWorldModelOffsetY2", 0xa8, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ2", 0xac, CSPFT_FLOAT}, - {"attachWorldModelOffsetX3", 0xb0, CSPFT_FLOAT}, - {"attachWorldModelOffsetY3", 0xb4, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ3", 0xb8, CSPFT_FLOAT}, - {"attachWorldModelOffsetX4", 0xbc, CSPFT_FLOAT}, - {"attachWorldModelOffsetY4", 0xc0, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ4", 0xc4, CSPFT_FLOAT}, - {"attachWorldModelOffsetX5", 0xc8, CSPFT_FLOAT}, - {"attachWorldModelOffsetY5", 0xcc, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ5", 0xd0, CSPFT_FLOAT}, - {"attachWorldModelOffsetX6", 0xd4, CSPFT_FLOAT}, - {"attachWorldModelOffsetY6", 0xd8, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ6", 0xdc, CSPFT_FLOAT}, - {"attachWorldModelOffsetX7", 0xe0, CSPFT_FLOAT}, - {"attachWorldModelOffsetY7", 0xe4, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ7", 0xe8, CSPFT_FLOAT}, - {"attachWorldModelOffsetX8", 0xec, CSPFT_FLOAT}, - {"attachWorldModelOffsetY8", 0xf0, CSPFT_FLOAT}, - {"attachWorldModelOffsetZ8", 0xf4, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch1", 0xf8, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw1", 0xfc, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll1", 0x100, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch2", 0x104, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw2", 0x108, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll2", 0x10c, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch3", 0x110, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw3", 0x114, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll3", 0x118, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch4", 0x11c, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw4", 0x120, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll4", 0x124, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch5", 0x128, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw5", 0x12c, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll5", 0x130, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch6", 0x134, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw6", 0x138, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll6", 0x13c, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch7", 0x140, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw7", 0x144, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll7", 0x148, CSPFT_FLOAT}, - {"attachViewModelOffsetPitch8", 0x14c, CSPFT_FLOAT}, - {"attachViewModelOffsetYaw8", 0x150, CSPFT_FLOAT}, - {"attachViewModelOffsetRoll8", 0x154, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch1", 0x158, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw1", 0x15c, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll1", 0x160, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch2", 0x164, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw2", 0x168, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll2", 0x16c, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch3", 0x170, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw3", 0x174, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll3", 0x178, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch4", 0x17c, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw4", 0x180, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll4", 0x184, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch5", 0x188, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw5", 0x18c, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll5", 0x190, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch6", 0x194, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw6", 0x198, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll6", 0x19c, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch7", 0x1a0, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw7", 0x1a4, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll7", 0x1a8, CSPFT_FLOAT}, - {"attachWorldModelOffsetPitch8", 0x1ac, CSPFT_FLOAT}, - {"attachWorldModelOffsetYaw8", 0x1b0, CSPFT_FLOAT}, - {"attachWorldModelOffsetRoll8", 0x1b4, CSPFT_FLOAT}, - {"ignoreAttachments", 0x1d8, CSPFT_BOOL}, - {"stowedModelOffsetsF", 0x1b8, CSPFT_FLOAT}, - {"stowedModelOffsetsR", 0x1bc, CSPFT_FLOAT}, - {"stowedModelOffsetsU", 0x1c0, CSPFT_FLOAT}, - {"stowedModelOffsetsPitch", 0x1c4, CSPFT_FLOAT}, - {"stowedModelOffsetsYaw", 0x1c8, CSPFT_FLOAT}, - {"stowedModelOffsetsRoll", 0x1cc, CSPFT_FLOAT}, - {"worldClipModel", 0x664, CSPFT_XMODEL}, - {"rocketModel", 0x668, CSPFT_XMODEL}, - {"mountedModel", 0x66c, CSPFT_XMODEL}, - {"AdditionalMeleeModel", 0x670, CSPFT_XMODEL}, - {"fireTypeIcon", 0x674, CSPFT_MATERIAL}, - {"hudIcon", 0x678, CSPFT_MATERIAL}, - {"hudIconRatio", 0x67c, WFT_ICONRATIO_HUD}, - {"indicatorIcon", 0x680, CSPFT_MATERIAL}, - {"indicatorIconRatio", 0x684, WFT_ICONRATIO_INDICATOR}, - {"ammoCounterIcon", 0x688, CSPFT_MATERIAL}, - {"ammoCounterIconRatio", 0x68c, WFT_ICONRATIO_AMMOCOUNTER}, - {"ammoCounterClip", 0x690, WFT_AMMOCOUNTER_CLIPTYPE}, - {"startAmmo", 0x694, CSPFT_INT}, - {"ammoDisplayName", 0x1fc, CSPFT_STRING}, - {"ammoName", 0x200, CSPFT_STRING}, - {"clipName", 0x208, CSPFT_STRING}, - {"maxAmmo", 0x698, CSPFT_INT}, - {"clipSize", 0x1dc, CSPFT_INT}, - {"shotCount", 0x69c, CSPFT_INT}, - {"sharedAmmoCapName", 0x6a0, CSPFT_STRING}, - {"sharedAmmoCap", 0x6a8, CSPFT_INT}, - {"unlimitedAmmo", 0x6ac, CSPFT_BOOL}, - {"ammoCountClipRelative", 0x6ad, CSPFT_BOOL}, - {"sharedAmmo", 0x8fc, CSPFT_BOOL}, - {"jamFireTime", 0x310, CSPFT_MILLISECONDS}, - {"overheatWeapon", 0x314, CSPFT_INT}, - {"overheatRate", 0x318, CSPFT_FLOAT}, - {"cooldownRate", 0x31c, CSPFT_FLOAT}, - {"overheatEndVal", 0x320, CSPFT_FLOAT}, - {"coolWhileFiring", 0x324, CSPFT_INT}, - {"fuelTankWeapon", 0x325, CSPFT_INT}, - {"tankLifeTime", 0x328, CSPFT_MILLISECONDS}, - {"damage", 0x6b0, CSPFT_INT}, - {"minDamage", 0x6c4, CSPFT_INT}, - {"maxDamageRange", 0x6c8, CSPFT_FLOAT}, - {"minDamageRange", 0x6dc, CSPFT_FLOAT}, - {"damage2", 0x6b4, CSPFT_INT}, - {"damage3", 0x6b8, CSPFT_INT}, - {"damage4", 0x6bc, CSPFT_INT}, - {"damage5", 0x6c0, CSPFT_INT}, - {"damageRange2", 0x6cc, CSPFT_FLOAT}, - {"damageRange3", 0x6d0, CSPFT_FLOAT}, - {"damageRange4", 0x6d4, CSPFT_FLOAT}, - {"damageRange5", 0x6d8, CSPFT_FLOAT}, - {"damageDuration", 0x6e4, CSPFT_FLOAT}, - {"damageInterval", 0x6e8, CSPFT_FLOAT}, - {"playerDamage", 0x6ec, CSPFT_INT}, - {"meleeDamage", 0x6f0, CSPFT_INT}, - {"minPlayerDamage", 0x6e0, CSPFT_INT}, - {"destabilizationRateTime", 0xbbc, CSPFT_FLOAT}, - {"destabilizationCurvatureMax", 0xbc0, CSPFT_FLOAT}, - {"destabilizeDistance", 0xbc4, CSPFT_INT}, - {"fireDelay", 0x6fc, CSPFT_MILLISECONDS}, - {"meleeDelay", 0x700, CSPFT_MILLISECONDS}, - {"meleeChargeDelay", 0x704, CSPFT_MILLISECONDS}, - {"spinUpTime", 0x70c, CSPFT_MILLISECONDS}, - {"spinDownTime", 0x710, CSPFT_MILLISECONDS}, - {"spinRate", 0x714, CSPFT_FLOAT}, - {"spinLoopSound", 0x718, CSPFT_STRING}, - {"spinLoopSoundPlayer", 0x71c, CSPFT_STRING}, - {"startSpinSound", 0x720, CSPFT_STRING}, - {"startSpinSoundPlayer", 0x724, CSPFT_STRING}, - {"stopSpinSound", 0x728, CSPFT_STRING}, - {"stopSpinSoundPlayer", 0x72c, CSPFT_STRING}, - {"applySpinPitch", 0x730, CSPFT_BOOL}, - {"introFireTime", 0xc28, CSPFT_MILLISECONDS}, - {"introFireLength", 0xc2c, CSPFT_INT}, - {"fireTime", 0x734, CSPFT_MILLISECONDS}, - {"flourishTime", 0x7fc, CSPFT_MILLISECONDS}, - {"lastFireTime", 0x738, CSPFT_MILLISECONDS}, - {"rechamberTime", 0x73c, CSPFT_MILLISECONDS}, - {"rechamberBoltTime", 0x740, CSPFT_MILLISECONDS}, - {"holdFireTime", 0x744, CSPFT_MILLISECONDS}, - {"burstFireDelay", 0x750, CSPFT_MILLISECONDS}, - {"detonateTime", 0x748, CSPFT_MILLISECONDS}, - {"detonateDelay", 0x708, CSPFT_MILLISECONDS}, - {"meleeTime", 0x74c, CSPFT_MILLISECONDS}, - {"meleeChargeTime", 0x754, CSPFT_MILLISECONDS}, - {"reloadTime", 0x1e0, CSPFT_MILLISECONDS}, - {"reloadShowRocketTime", 0x760, CSPFT_MILLISECONDS}, - {"reloadEmptyTime", 0x1e4, CSPFT_MILLISECONDS}, - {"reloadAddTime", 0x768, CSPFT_MILLISECONDS}, - {"reloadEmptyAddTime", 0x76c, CSPFT_MILLISECONDS}, - {"reloadQuickAddTime", 0x770, CSPFT_MILLISECONDS}, - {"reloadQuickEmptyAddTime", 0x774, CSPFT_MILLISECONDS}, - {"reloadStartTime", 0x778, CSPFT_MILLISECONDS}, - {"reloadStartAddTime", 0x77c, CSPFT_MILLISECONDS}, - {"reloadEndTime", 0x780, CSPFT_MILLISECONDS}, - {"reloadQuickTime", 0x1e8, CSPFT_MILLISECONDS}, - {"reloadQuickEmptyTime", 0x1ec, CSPFT_MILLISECONDS}, - {"dropTime", 0x784, CSPFT_MILLISECONDS}, - {"raiseTime", 0x788, CSPFT_MILLISECONDS}, - {"altDropTime", 0x78c, CSPFT_MILLISECONDS}, - {"altRaiseTime", 0x1f8, CSPFT_MILLISECONDS}, - {"quickDropTime", 0x790, CSPFT_MILLISECONDS}, - {"quickRaiseTime", 0x794, CSPFT_MILLISECONDS}, - {"firstRaiseTime", 0x798, CSPFT_MILLISECONDS}, - {"emptyRaiseTime", 0x79c, CSPFT_MILLISECONDS}, - {"emptyDropTime", 0x7a0, CSPFT_MILLISECONDS}, - {"sprintInTime", 0x7a4, CSPFT_MILLISECONDS}, - {"sprintLoopTime", 0x7a8, CSPFT_MILLISECONDS}, - {"sprintOutTime", 0x7ac, CSPFT_MILLISECONDS}, - {"lowReadyInTime", 0x7b0, CSPFT_MILLISECONDS}, - {"lowReadyLoopTime", 0x7b4, CSPFT_MILLISECONDS}, - {"lowReadyOutTime", 0x7b8, CSPFT_MILLISECONDS}, - {"contFireInTime", 0x7bc, CSPFT_MILLISECONDS}, - {"contFireLoopTime", 0x7c0, CSPFT_MILLISECONDS}, - {"contFireOutTime", 0x7c4, CSPFT_MILLISECONDS}, - {"dtpInTime", 0x7c8, CSPFT_MILLISECONDS}, - {"dtpLoopTime", 0x7cc, CSPFT_MILLISECONDS}, - {"dtpOutTime", 0x7d0, CSPFT_MILLISECONDS}, - {"crawlInTime", 0x7d4, CSPFT_MILLISECONDS}, - {"crawlForwardTime", 0x7d8, CSPFT_MILLISECONDS}, - {"crawlBackTime", 0x7dc, CSPFT_MILLISECONDS}, - {"crawlRightTime", 0x7e0, CSPFT_MILLISECONDS}, - {"crawlLeftTime", 0x7e4, CSPFT_MILLISECONDS}, - {"crawlOutFireTime", 0x7e8, CSPFT_MILLISECONDS}, - {"crawlOutTime", 0x7ec, CSPFT_MILLISECONDS}, - {"slideInTime", 0x7f0, CSPFT_MILLISECONDS}, - {"deployTime", 0x7f4, CSPFT_MILLISECONDS}, - {"breakdownTime", 0x7f8, CSPFT_MILLISECONDS}, - {"nightVisionWearTime", 0x800, CSPFT_MILLISECONDS}, - {"nightVisionWearTimeFadeOutEnd", 0x804, CSPFT_MILLISECONDS}, - {"nightVisionWearTimePowerUp", 0x808, CSPFT_MILLISECONDS}, - {"nightVisionRemoveTime", 0x80c, CSPFT_MILLISECONDS}, - {"nightVisionRemoveTimePowerDown", 0x810, CSPFT_MILLISECONDS}, - {"nightVisionRemoveTimeFadeInStart", 0x814, CSPFT_MILLISECONDS}, - {"fuseTime", 0x818, CSPFT_MILLISECONDS}, - {"aifuseTime", 0x81c, CSPFT_MILLISECONDS}, - {"lockOnRadius", 0x820, CSPFT_INT}, - {"lockOnSpeed", 0x824, CSPFT_INT}, - {"requireLockonToFire", 0x828, CSPFT_BOOL}, - {"noAdsWhenMagEmpty", 0x829, CSPFT_BOOL}, - {"avoidDropCleanup", 0x82a, CSPFT_BOOL}, - {"stackFire", 0x82c, CSPFT_INT}, - {"stackFireSpread", 0x830, CSPFT_FLOAT}, - {"stackFireAccuracyDecay", 0x834, CSPFT_FLOAT}, - {"stackSound", 0x838, CSPFT_STRING}, - {"autoAimRange", 0x83c, CSPFT_FLOAT}, - {"aimAssistRange", 0x840, CSPFT_FLOAT}, - {"aimAssistRangeAds", 0x210, CSPFT_FLOAT}, - {"mountableWeapon", 0x844, CSPFT_BOOL}, - {"aimPadding", 0x848, CSPFT_FLOAT}, - {"enemyCrosshairRange", 0x84c, CSPFT_FLOAT}, - {"crosshairColorChange", 0x850, CSPFT_BOOL}, - {"moveSpeedScale", 0x854, CSPFT_FLOAT}, - {"adsMoveSpeedScale", 0x858, CSPFT_FLOAT}, - {"sprintDurationScale", 0x85c, CSPFT_FLOAT}, - {"idleCrouchFactor", 0x8c0, CSPFT_FLOAT}, - {"idleProneFactor", 0x8c4, CSPFT_FLOAT}, - {"gunMaxPitch", 0x8c8, CSPFT_FLOAT}, - {"gunMaxYaw", 0x8cc, CSPFT_FLOAT}, - {"swayMaxAngle", 0x8d0, CSPFT_FLOAT}, - {"swayLerpSpeed", 0x8d4, CSPFT_FLOAT}, - {"swayPitchScale", 0x8d8, CSPFT_FLOAT}, - {"swayYawScale", 0x8dc, CSPFT_FLOAT}, - {"swayHorizScale", 0x8e0, CSPFT_FLOAT}, - {"swayVertScale", 0x8e4, CSPFT_FLOAT}, - {"swayShellShockScale", 0x8e8, CSPFT_FLOAT}, - {"adsSwayMaxAngle", 0x8ec, CSPFT_FLOAT}, - {"adsSwayLerpSpeed", 0x8f0, CSPFT_FLOAT}, - {"adsSwayPitchScale", 0x8f4, CSPFT_FLOAT}, - {"adsSwayYawScale", 0x8f8, CSPFT_FLOAT}, - {"adsSwayHorizScale", 0x214, CSPFT_FLOAT}, - {"adsSwayVertScale", 0x218, CSPFT_FLOAT}, - {"meleeChargeRange", 0xa18, CSPFT_FLOAT}, - {"rifleBullet", 0x8fd, CSPFT_BOOL}, - {"armorPiercing", 0x8fe, CSPFT_BOOL}, - {"boltAction", 0x900, CSPFT_BOOL}, - {"shotsBeforeRechamber", 0x95c, CSPFT_INT}, - {"useAltTagFlash", 0x901, CSPFT_BOOL}, - {"useAntiLagRewind", 0x902, CSPFT_BOOL}, - {"isCarriedKillstreakWeapon", 0x903, CSPFT_BOOL}, - {"aimDownSight", 0x904, CSPFT_BOOL}, - {"rechamberWhileAds", 0x905, CSPFT_BOOL}, - {"reloadWhileAds", 0x906, CSPFT_BOOL}, - {"adsViewErrorMin", 0x908, CSPFT_FLOAT}, - {"adsViewErrorMax", 0x90c, CSPFT_FLOAT}, - {"clipOnly", 0x911, CSPFT_BOOL}, - {"canUseInVehicle", 0x912, CSPFT_BOOL}, - {"noDropsOrRaises", 0x913, CSPFT_BOOL}, - {"cookOffHold", 0x910, CSPFT_BOOL}, - {"adsFire", 0x914, CSPFT_BOOL}, - {"cancelAutoHolsterWhenEmpty", 0x915, CSPFT_BOOL}, - {"suppressAmmoReserveDisplay", 0x916, CSPFT_BOOL}, - {"laserSight", 0x917, CSPFT_BOOL}, - {"laserSightDuringNightvision", 0x918, CSPFT_BOOL}, - {"bayonet", 0x91a, CSPFT_BOOL}, - {"dualWield", 0x91b, CSPFT_BOOL}, - {"hideThirdPerson", 0x919, CSPFT_BOOL}, - {"explodeOnGround", 0x91c, CSPFT_BOOL}, - {"throwBack", 0x91d, CSPFT_BOOL}, - {"retrievable", 0x91e, CSPFT_BOOL}, - {"dieOnRespawn", 0x91f, CSPFT_BOOL}, - {"noThirdPersonDropsOrRaises", 0x920, CSPFT_BOOL}, - {"continuousFire", 0x921, CSPFT_BOOL}, - {"useAsMelee", 0xa1c, CSPFT_BOOL}, - {"antiQuickScope", 0x250, CSPFT_BOOL}, - {"noPing", 0x922, CSPFT_BOOL}, - {"forceBounce", 0x923, CSPFT_BOOL}, - {"useDroppedModelAsStowed", 0x924, CSPFT_BOOL}, - {"noQuickDropWhenEmpty", 0x925, CSPFT_BOOL}, - {"keepCrosshairWhenADS", 0x926, CSPFT_BOOL}, - {"useOnlyAltWeaoponHideTagsInAltMode", 0x927, CSPFT_BOOL}, - {"altWeaponAdsOnly", 0x928, CSPFT_BOOL}, - {"altWeaponDisableSwitching", 0x929, CSPFT_BOOL}, - {"killIcon", 0x92c, CSPFT_MATERIAL}, - {"killIconRatio", 0x930, WFT_ICONRATIO_KILL}, - {"flipKillIcon", 0x934, CSPFT_BOOL}, - {"dpadIcon", 0x25c, CSPFT_MATERIAL}, - {"dpadIconRatio", 0x260, WFT_ICONRATIO_DPAD}, - {"noAmmoOnDpadIcon", 0x264, CSPFT_BOOL}, - {"noPartialReload", 0x935, CSPFT_BOOL}, - {"segmentedReload", 0x936, CSPFT_BOOL}, - {"noADSAutoReload", 0x937, CSPFT_BOOL}, - {"reloadAmmoAdd", 0x938, CSPFT_INT}, - {"reloadStartAdd", 0x93c, CSPFT_INT}, - {"attachmentUnique", 0x14, CSPFT_STRING}, - {"altWeapon", 0x10, CSPFT_STRING}, - {"DualWieldWeapon", 0x944, CSPFT_STRING}, - {"grenadeWeapon", 0x940, CSPFT_STRING}, - {"dropAmmoMin", 0x94c, CSPFT_INT}, - {"dropAmmoMax", 0x950, CSPFT_INT}, - {"dropClipAmmoMin", 0x954, CSPFT_INT}, - {"dropClipAmmoMax", 0x958, CSPFT_INT}, - {"blocksProne", 0x960, CSPFT_BOOL}, - {"silenced", 0x244, CSPFT_BOOL}, - {"dualMag", 0x245, CSPFT_BOOL}, - {"infrared", 0x246, CSPFT_BOOL}, - {"tvguided", 0x247, CSPFT_BOOL}, - {"airburstWeapon", 0x8ff, CSPFT_BOOL}, - {"perks1", 0x248, CSPFT_UINT}, - {"perks0", 0x24c, CSPFT_UINT}, - {"isRollingGrenade", 0x964, CSPFT_QBOOLEAN}, - {"useBallisticPrediction", 0x968, CSPFT_QBOOLEAN}, - {"isValuable", 0x96c, CSPFT_QBOOLEAN}, - {"isTacticalInsertion", 0x970, CSPFT_QBOOLEAN}, - {"isReviveWeapon", 0x974, CSPFT_BOOL}, - {"bUseRigidBodyOnVehicle", 0x975, CSPFT_BOOL}, - {"showIndicator", 0x961, CSPFT_BOOL}, - {"explosionRadius", 0x978, CSPFT_INT}, - {"explosionRadiusMin", 0x97c, CSPFT_INT}, - {"indicatorRadius", 0x980, CSPFT_INT}, - {"explosionInnerDamage", 0x984, CSPFT_INT}, - {"explosionOuterDamage", 0x988, CSPFT_INT}, - {"damageConeAngle", 0x98c, CSPFT_FLOAT}, - {"projectileSpeed", 0x990, CSPFT_INT}, - {"projectileSpeedRelativeUp", 0x998, CSPFT_INT}, - {"projectileSpeedUp", 0x994, CSPFT_INT}, - {"projectileSpeedForward", 0x99c, CSPFT_INT}, - {"projectileTakeParentVel", 0x9a0, CSPFT_FLOAT}, - {"projectileActivateDist", 0x9a4, CSPFT_INT}, - {"projectileLifetime", 0x9a8, CSPFT_FLOAT}, - {"timeToAccelerate", 0x9ac, CSPFT_FLOAT}, - {"projectileCurvature", 0x9b0, CSPFT_FLOAT}, - {"projectileModel", 0x9b4, CSPFT_XMODEL}, - {"projExplosionType", 0x9b8, WFT_PROJ_EXPLOSION}, - {"projExplosionEffect", 0x9bc, CSPFT_FX}, - {"projExplosionEffectForceNormalUp", 0x9c0, CSPFT_BOOL}, - {"projExplosionEffect2", 0x9c4, CSPFT_FX}, - {"projExplosionEffect2ForceNormalUp", 0x9c8, CSPFT_BOOL}, - {"projExplosionEffect3", 0x9cc, CSPFT_FX}, - {"projExplosionEffect3ForceNormalUp", 0x9d0, CSPFT_BOOL}, - {"projExplosionEffect4", 0x9d4, CSPFT_FX}, - {"projExplosionEffect4ForceNormalUp", 0x9d8, CSPFT_BOOL}, - {"projExplosionEffect5", 0x9dc, CSPFT_FX}, - {"projExplosionEffect5ForceNormalUp", 0x9e0, CSPFT_BOOL}, - {"projExplosionSound", 0x9e8, CSPFT_STRING}, - {"projDudEffect", 0x9e4, CSPFT_FX}, - {"projDudSound", 0x9ec, CSPFT_STRING}, - {"projImpactExplode", 0x9f8, CSPFT_BOOL}, - {"sentientImpactExplode", 0x9f9, CSPFT_BOOL}, - {"explodeWhenStationary", 0x9fa, CSPFT_BOOL}, - {"bulletImpactExplode", 0x9fb, CSPFT_BOOL}, - {"mortarShellSound", 0x9f0, CSPFT_STRING}, - {"tankShellSound", 0x9f4, CSPFT_STRING}, - {"stickiness", 0x9fc, WFT_STICKINESS}, - {"rotateType", 0xa00, WFT_ROTATETYPE}, - {"hasDetonator", 0xa05, CSPFT_BOOL}, - {"plantable", 0xa04, CSPFT_BOOL}, - {"timedDetonation", 0xa06, CSPFT_BOOL}, - {"noCrumpleMissile", 0xa07, CSPFT_BOOL}, - {"rotate", 0xa08, CSPFT_BOOL}, - {"keepRolling", 0xa09, CSPFT_BOOL}, - {"holdButtonToThrow", 0xa0a, CSPFT_BOOL}, - {"offhandHoldIsCancelable", 0xa0b, CSPFT_BOOL}, - {"freezeMovementWhenFiring", 0xa0c, CSPFT_BOOL}, - {"lowAmmoWarningThreshold", 0xa10, CSPFT_FLOAT}, - {"explosionTag", 0x6f8, WFT_EXPLOSION_TAG}, - {"bDisallowAtMatchStart", 0xa14, CSPFT_BOOL}, - {"isCameraSensor", 0xa1d, CSPFT_BOOL}, - {"isAcousticSensor", 0xa1e, CSPFT_BOOL}, - {"isLaserSensor", 0xa1f, CSPFT_BOOL}, - {"isHoldUseGrenade", 0xa20, CSPFT_BOOL}, - {"parallelDefaultBounce", 0x11c4, CSPFT_FLOAT}, - {"parallelAsphaltBounce", 0x121c, CSPFT_FLOAT}, - {"parallelBarkBounce", 0x11c8, CSPFT_FLOAT}, - {"parallelBrickBounce", 0x11cc, CSPFT_FLOAT}, - {"parallelCarpetBounce", 0x11d0, CSPFT_FLOAT}, - {"parallelCeramicBounce", 0x1220, CSPFT_FLOAT}, - {"parallelClothBounce", 0x11d4, CSPFT_FLOAT}, - {"parallelConcreteBounce", 0x11d8, CSPFT_FLOAT}, - {"parallelCushionBounce", 0x122c, CSPFT_FLOAT}, - {"parallelDirtBounce", 0x11dc, CSPFT_FLOAT}, - {"parallelFleshBounce", 0x11e0, CSPFT_FLOAT}, - {"parallelFoliageBounce", 0x11e4, CSPFT_FLOAT}, - {"parallelFruitBounce", 0x1230, CSPFT_FLOAT}, - {"parallelGlassBounce", 0x11e8, CSPFT_FLOAT}, - {"parallelGrassBounce", 0x11ec, CSPFT_FLOAT}, - {"parallelGravelBounce", 0x11f0, CSPFT_FLOAT}, - {"parallelIceBounce", 0x11f4, CSPFT_FLOAT}, - {"parallelMetalBounce", 0x11f8, CSPFT_FLOAT}, - {"parallelMudBounce", 0x11fc, CSPFT_FLOAT}, - {"parallelPaintedMetalBounce", 0x1234, CSPFT_FLOAT}, - {"parallelPaperBounce", 0x1200, CSPFT_FLOAT}, - {"parallelPlasterBounce", 0x1204, CSPFT_FLOAT}, - {"parallelPlasticBounce", 0x1224, CSPFT_FLOAT}, - {"parallelRockBounce", 0x1208, CSPFT_FLOAT}, - {"parallelRubberBounce", 0x1228, CSPFT_FLOAT}, - {"parallelSandBounce", 0x120c, CSPFT_FLOAT}, - {"parallelSnowBounce", 0x1210, CSPFT_FLOAT}, - {"parallelWaterBounce", 0x1214, CSPFT_FLOAT}, - {"parallelWoodBounce", 0x1218, CSPFT_FLOAT}, - {"parallelRiotShieldBounce", 0x1240, CSPFT_FLOAT}, - {"perpendicularDefaultBounce", 0x1244, CSPFT_FLOAT}, - {"perpendicularAsphaltBounce", 0x129c, CSPFT_FLOAT}, - {"perpendicularBarkBounce", 0x1248, CSPFT_FLOAT}, - {"perpendicularBrickBounce", 0x124c, CSPFT_FLOAT}, - {"perpendicularCarpetBounce", 0x1250, CSPFT_FLOAT}, - {"perpendicularCeramicBounce", 0x12a0, CSPFT_FLOAT}, - {"perpendicularClothBounce", 0x1254, CSPFT_FLOAT}, - {"perpendicularConcreteBounce", 0x1258, CSPFT_FLOAT}, - {"perpendicularCushionBounce", 0x12ac, CSPFT_FLOAT}, - {"perpendicularDirtBounce", 0x125c, CSPFT_FLOAT}, - {"perpendicularFleshBounce", 0x1260, CSPFT_FLOAT}, - {"perpendicularFoliageBounce", 0x1264, CSPFT_FLOAT}, - {"perpendicularFruitBounce", 0x12b0, CSPFT_FLOAT}, - {"perpendicularGlassBounce", 0x1268, CSPFT_FLOAT}, - {"perpendicularGrassBounce", 0x126c, CSPFT_FLOAT}, - {"perpendicularGravelBounce", 0x1270, CSPFT_FLOAT}, - {"perpendicularIceBounce", 0x1274, CSPFT_FLOAT}, - {"perpendicularMetalBounce", 0x1278, CSPFT_FLOAT}, - {"perpendicularMudBounce", 0x127c, CSPFT_FLOAT}, - {"perpendicularPaintedMetalBounce", 0x12b4, CSPFT_FLOAT}, - {"perpendicularPaperBounce", 0x1280, CSPFT_FLOAT}, - {"perpendicularPlasterBounce", 0x1284, CSPFT_FLOAT}, - {"perpendicularPlasticBounce", 0x12a4, CSPFT_FLOAT}, - {"perpendicularRockBounce", 0x1288, CSPFT_FLOAT}, - {"perpendicularRubberBounce", 0x12a8, CSPFT_FLOAT}, - {"perpendicularSandBounce", 0x128c, CSPFT_FLOAT}, - {"perpendicularSnowBounce", 0x1290, CSPFT_FLOAT}, - {"perpendicularWaterBounce", 0x1294, CSPFT_FLOAT}, - {"perpendicularWoodBounce", 0x1298, CSPFT_FLOAT}, - {"perpendicularRiotShieldBounce", 0x12c0, CSPFT_FLOAT}, - {"projTrailEffect", 0xa2c, CSPFT_FX}, - {"projectileRed", 0xa30, CSPFT_FLOAT}, - {"projectileGreen", 0xa34, CSPFT_FLOAT}, - {"projectileBlue", 0xa38, CSPFT_FLOAT}, - {"guidedMissileType", 0xa3c, WFT_GUIDED_MISSILE_TYPE}, - {"maxSteeringAccel", 0xa40, CSPFT_FLOAT}, - {"projIgnitionDelay", 0xa44, CSPFT_INT}, - {"projIgnitionEffect", 0xa48, CSPFT_FX}, - {"projIgnitionSound", 0xa4c, CSPFT_STRING}, - {"tagFx_preparationEffect", 0xc10, CSPFT_FX}, - {"tagFlash_preparationEffect", 0xc14, CSPFT_FX}, - {"adsTransInTime", 0x1f0, CSPFT_MILLISECONDS}, - {"adsTransOutTime", 0x1f4, CSPFT_MILLISECONDS}, - {"adsIdleAmount", 0x8b0, CSPFT_FLOAT}, - {"adsIdleSpeed", 0x8b8, CSPFT_FLOAT}, - {"adsZoomFov1", 0x224, CSPFT_FLOAT}, - {"adsZoomFov2", 0x228, CSPFT_FLOAT}, - {"adsZoomFov3", 0x22c, CSPFT_FLOAT}, - {"adsZoomInFrac", 0x230, CSPFT_FLOAT}, - {"adsZoomOutFrac", 0x234, CSPFT_FLOAT}, - {"adsOverlayShader", 0x254, CSPFT_MATERIAL_STREAM}, - {"adsOverlayShaderLowRes", 0x258, CSPFT_MATERIAL_STREAM}, - {"adsOverlayReticle", 0x860, WFT_OVERLAYRETICLE}, - {"adsOverlayInterface", 0x864, WFT_OVERLAYINTERFACE}, - {"adsOverlayWidth", 0x868, CSPFT_FLOAT}, - {"adsOverlayHeight", 0x86c, CSPFT_FLOAT}, - {"adsOverlayAlphaScale", 0x238, CSPFT_FLOAT}, - {"adsBobFactor", 0x870, CSPFT_FLOAT}, - {"adsViewBobMult", 0x874, CSPFT_FLOAT}, - {"holdBreathToSteady", 0x878, CSPFT_BOOL}, - {"adsAimPitch", 0xa50, CSPFT_FLOAT}, - {"adsCrosshairInFrac", 0xa54, CSPFT_FLOAT}, - {"adsCrosshairOutFrac", 0xa58, CSPFT_FLOAT}, - {"adsReloadTransTime", 0xb40, CSPFT_MILLISECONDS}, - {"adsGunKickReducedKickBullets", 0xa5c, CSPFT_INT}, - {"adsGunKickReducedKickPercent", 0xa60, CSPFT_FLOAT}, - {"adsGunKickPitchMin", 0xa64, CSPFT_FLOAT}, - {"adsGunKickPitchMax", 0xa68, CSPFT_FLOAT}, - {"adsGunKickYawMin", 0xa6c, CSPFT_FLOAT}, - {"adsGunKickYawMax", 0xa70, CSPFT_FLOAT}, - {"adsGunKickAccel", 0xa74, CSPFT_FLOAT}, - {"adsGunKickSpeedMax", 0xa78, CSPFT_FLOAT}, - {"adsGunKickSpeedDecay", 0xa7c, CSPFT_FLOAT}, - {"adsGunKickStaticDecay", 0xa80, CSPFT_FLOAT}, - {"adsViewKickPitchMin", 0xa84, CSPFT_FLOAT}, - {"adsViewKickPitchMax", 0xa88, CSPFT_FLOAT}, - {"adsViewKickMinMagnitude", 0xa8c, CSPFT_FLOAT}, - {"adsViewKickYawMin", 0xa90, CSPFT_FLOAT}, - {"adsViewKickYawMax", 0xa94, CSPFT_FLOAT}, - {"adsRecoilReductionRate", 0xa98, CSPFT_FLOAT}, - {"adsRecoilReductionLimit", 0xa9c, CSPFT_FLOAT}, - {"adsRecoilReturnRate", 0xaa0, CSPFT_FLOAT}, - {"adsViewKickCenterSpeed", 0x21c, CSPFT_FLOAT}, - {"adsViewKickCenterDuckedScale", 0xaf4, CSPFT_FLOAT}, - {"adsViewKickCenterProneScale", 0xaf8, CSPFT_FLOAT}, - {"adsSpread", 0xaac, CSPFT_FLOAT}, - {"guidedMissileType", 0xa3c, WFT_GUIDED_MISSILE_TYPE}, - {"antiQuickScopeTime", 0xafc, CSPFT_FLOAT}, - {"antiQuickScopeScale", 0xb00, CSPFT_FLOAT}, - {"antiQuickScopeSpreadMultiplier", 0xb04, CSPFT_FLOAT}, - {"antiQuickScopeSpreadMax", 0xb08, CSPFT_FLOAT}, - {"antiQuickScopeSwayFactor", 0xb0c, CSPFT_FLOAT}, - {"hipSpreadStandMin", 0x87c, CSPFT_FLOAT}, - {"hipSpreadDuckedMin", 0x880, CSPFT_FLOAT}, - {"hipSpreadProneMin", 0x884, CSPFT_FLOAT}, - {"hipSpreadMax", 0x888, CSPFT_FLOAT}, - {"hipSpreadDuckedMax", 0x88c, CSPFT_FLOAT}, - {"hipSpreadProneMax", 0x890, CSPFT_FLOAT}, - {"hipSpreadDecayRate", 0x894, CSPFT_FLOAT}, - {"hipSpreadFireAdd", 0x898, CSPFT_FLOAT}, - {"hipSpreadTurnAdd", 0x89c, CSPFT_FLOAT}, - {"hipSpreadMoveAdd", 0x8a0, CSPFT_FLOAT}, - {"hipSpreadDuckedDecay", 0x8a4, CSPFT_FLOAT}, - {"hipSpreadProneDecay", 0x8a8, CSPFT_FLOAT}, - {"hipReticleSidePos", 0x8ac, CSPFT_FLOAT}, - {"hipIdleAmount", 0x8b4, CSPFT_FLOAT}, - {"hipIdleSpeed", 0x8bc, CSPFT_FLOAT}, - {"hipGunKickReducedKickBullets", 0xab0, CSPFT_INT}, - {"hipGunKickReducedKickPercent", 0xab4, CSPFT_FLOAT}, - {"hipGunKickPitchMin", 0xab8, CSPFT_FLOAT}, - {"hipGunKickPitchMax", 0xabc, CSPFT_FLOAT}, - {"hipGunKickYawMin", 0xac0, CSPFT_FLOAT}, - {"hipGunKickYawMax", 0xac4, CSPFT_FLOAT}, - {"hipGunKickAccel", 0xac8, CSPFT_FLOAT}, - {"hipGunKickSpeedMax", 0xacc, CSPFT_FLOAT}, - {"hipGunKickSpeedDecay", 0xad0, CSPFT_FLOAT}, - {"hipGunKickStaticDecay", 0xad4, CSPFT_FLOAT}, - {"hipViewKickPitchMin", 0xad8, CSPFT_FLOAT}, - {"hipViewKickPitchMax", 0xadc, CSPFT_FLOAT}, - {"hipViewKickMinMagnitude", 0xae0, CSPFT_FLOAT}, - {"hipViewKickYawMin", 0xae4, CSPFT_FLOAT}, - {"hipViewKickYawMax", 0xae8, CSPFT_FLOAT}, - {"hipViewKickCenterSpeed", 0x220, CSPFT_FLOAT}, - {"leftArc", 0xb44, CSPFT_FLOAT}, - {"rightArc", 0xb48, CSPFT_FLOAT}, - {"topArc", 0xb4c, CSPFT_FLOAT}, - {"bottomArc", 0xb50, CSPFT_FLOAT}, - {"accuracy", 0xb54, CSPFT_FLOAT}, - {"aiSpread", 0xb58, CSPFT_FLOAT}, - {"playerSpread", 0xb5c, CSPFT_FLOAT}, - {"maxVertTurnSpeed", 0xb68, CSPFT_FLOAT}, - {"maxHorTurnSpeed", 0xb6c, CSPFT_FLOAT}, - {"minVertTurnSpeed", 0xb60, CSPFT_FLOAT}, - {"minHorTurnSpeed", 0xb64, CSPFT_FLOAT}, - {"pitchConvergenceTime", 0xb70, CSPFT_FLOAT}, - {"yawConvergenceTime", 0xb74, CSPFT_FLOAT}, - {"suppressionTime", 0xb78, CSPFT_FLOAT}, - {"maxRange", 0xb7c, CSPFT_FLOAT}, - {"animHorRotateInc", 0xb80, CSPFT_FLOAT}, - {"playerPositionDist", 0xb84, CSPFT_FLOAT}, - {"stance", 0x334, WFT_STANCE}, - {"useHintString", 0xb88, CSPFT_STRING}, - {"dropHintString", 0xb8c, CSPFT_STRING}, - {"horizViewJitter", 0xb98, CSPFT_FLOAT}, - {"vertViewJitter", 0xb9c, CSPFT_FLOAT}, - {"cameraShakeScale", 0xba0, CSPFT_FLOAT}, - {"cameraShakeDuration", 0xba4, CSPFT_INT}, - {"cameraShakeRadius", 0xba8, CSPFT_INT}, - {"explosionCameraShakeScale", 0xbac, CSPFT_FLOAT}, - {"explosionCameraShakeDuration", 0xbb0, CSPFT_INT}, - {"explosionCameraShakeRadius", 0xbb4, CSPFT_INT}, - {"fightDist", 0xb10, CSPFT_FLOAT}, - {"maxDist", 0xb14, CSPFT_FLOAT}, - {"aiVsAiAccuracyGraph", 0xb18, CSPFT_STRING}, - {"aiVsPlayerAccuracyGraph", 0xb1c, CSPFT_STRING}, - {"locNone", 0x12c4, CSPFT_FLOAT}, - {"locHelmet", 0x12c8, CSPFT_FLOAT}, - {"locHead", 0x12cc, CSPFT_FLOAT}, - {"locNeck", 0x12d0, CSPFT_FLOAT}, - {"locTorsoUpper", 0x12d4, CSPFT_FLOAT}, - {"locTorsoMid", 0x12d8, CSPFT_FLOAT}, - {"locTorsoLower", 0x12dc, CSPFT_FLOAT}, - {"locRightArmUpper", 0x12e0, CSPFT_FLOAT}, - {"locRightArmLower", 0x12e8, CSPFT_FLOAT}, - {"locRightHand", 0x12f0, CSPFT_FLOAT}, - {"locLeftArmUpper", 0x12e4, CSPFT_FLOAT}, - {"locLeftArmLower", 0x12ec, CSPFT_FLOAT}, - {"locLeftHand", 0x12f4, CSPFT_FLOAT}, - {"locRightLegUpper", 0x12f8, CSPFT_FLOAT}, - {"locRightLegLower", 0x1300, CSPFT_FLOAT}, - {"locRightFoot", 0x1308, CSPFT_FLOAT}, - {"locLeftLegUpper", 0x12fc, CSPFT_FLOAT}, - {"locLeftLegLower", 0x1304, CSPFT_FLOAT}, - {"locLeftFoot", 0x130c, CSPFT_FLOAT}, - {"locGun", 0x1310, CSPFT_FLOAT}, - {"fireRumble", 0xbcc, CSPFT_STRING}, - {"meleeImpactRumble", 0xbd0, CSPFT_STRING}, - {"reloadRumble", 0xbd4, CSPFT_STRING}, - {"explosionRumble", 0xbd8, CSPFT_STRING}, - {"tracerType", 0xbdc, CSPFT_TRACER}, - {"enemyTracerType", 0xbe0, CSPFT_TRACER}, - {"adsDofStart", 0xbe4, CSPFT_FLOAT}, - {"adsDofEnd", 0xbe8, CSPFT_FLOAT}, - {"scanSpeed", 0xbf4, CSPFT_FLOAT}, - {"scanAccel", 0xbf8, CSPFT_FLOAT}, - {"scanPauseTime", 0xbfc, CSPFT_MILLISECONDS}, - {"flameTableFirstPerson", 0xc00, CSPFT_STRING}, - {"flameTableThirdPerson", 0xc04, CSPFT_STRING}, - {"mmsWeapon", 0x265, CSPFT_BOOL}, - {"mmsInScope", 0x266, CSPFT_BOOL}, - {"mmsFOV", 0x268, CSPFT_FLOAT}, - {"mmsAspect", 0x26c, CSPFT_FLOAT}, - {"mmsMaxDist", 0x270, CSPFT_FLOAT}, - {"ikLeftHandIdlePosF", 0x274, CSPFT_FLOAT}, - {"ikLeftHandIdlePosR", 0x278, CSPFT_FLOAT}, - {"ikLeftHandIdlePosU", 0x27c, CSPFT_FLOAT}, - {"ikLeftHandOffsetF", 0x280, CSPFT_FLOAT}, - {"ikLeftHandOffsetR", 0x284, CSPFT_FLOAT}, - {"ikLeftHandOffsetU", 0x288, CSPFT_FLOAT}, - {"ikLeftHandRotationP", 0x28c, CSPFT_FLOAT}, - {"ikLeftHandRotationY", 0x290, CSPFT_FLOAT}, - {"ikLeftHandRotationR", 0x294, CSPFT_FLOAT}, - {"usingLeftHandProneIK", 0x298, CSPFT_BOOL}, - {"ikLeftHandProneOffsetF", 0x29c, CSPFT_FLOAT}, - {"ikLeftHandProneOffsetR", 0x2a0, CSPFT_FLOAT}, - {"ikLeftHandProneOffsetU", 0x2a4, CSPFT_FLOAT}, - {"ikLeftHandProneRotationP", 0x2a8, CSPFT_FLOAT}, - {"ikLeftHandProneRotationY", 0x2ac, CSPFT_FLOAT}, - {"ikLeftHandProneRotationR", 0x2b0, CSPFT_FLOAT}, - {"ikLeftHandUiViewerOffsetF", 0x2b4, CSPFT_FLOAT}, - {"ikLeftHandUiViewerOffsetR", 0x2b8, CSPFT_FLOAT}, - {"ikLeftHandUiViewerOffsetU", 0x2bc, CSPFT_FLOAT}, - {"ikLeftHandUiViewerRotationP", 0x2c0, CSPFT_FLOAT}, - {"ikLeftHandUiViewerRotationY", 0x2c4, CSPFT_FLOAT}, - {"ikLeftHandUiViewerRotationR", 0x2c8, CSPFT_FLOAT}, - {"parentWeaponName", 0x30c, CSPFT_STRING}, - {"doGibbing", 0xc18, CSPFT_BOOL}, - {"maxGibDistance", 0xc1c, CSPFT_FLOAT}, - {"altScopeADSTransInTime", 0xc20, CSPFT_FLOAT}, - {"altScopeADSTransOutTime", 0xc24, CSPFT_FLOAT}, - {"meleeSwipeEffect", 0xc30, CSPFT_FX}, - {"meleeImpactEffect", 0xc34, CSPFT_FX}, - {"meleeImpactNoBloodEffect", 0xc38, CSPFT_FX}, - {"throwBackType", 0xc3c, CSPFT_STRING}, - {"camo", 0xc40, WFT_WEAPON_CAMO}, - {"customFloat0", 0xc44, CSPFT_FLOAT}, - {"customFloat1", 0xc48, CSPFT_FLOAT}, - {"customFloat2", 0xc4c, CSPFT_FLOAT}, - {"customBool0", 0xc50, CSPFT_BOOL}, - {"customBool1", 0xc54, CSPFT_BOOL}, - {"customBool2", 0xc58, CSPFT_BOOL}, + {"displayName", offsetof(WeaponFullDef, weapVariantDef.szDisplayName), CSPFT_STRING}, + {"AIOverlayDescription", offsetof(WeaponFullDef, weapDef.szOverlayName), CSPFT_STRING}, + {"modeName", offsetof(WeaponFullDef, weapDef.szModeName), CSPFT_STRING}, + {"playerAnimType", offsetof(WeaponFullDef, weapDef.playerAnimType), WFT_ANIMTYPE}, + {"gunModel", offsetof(WeaponFullDef, gunXModel[0]), CSPFT_XMODEL}, + {"gunModel2", offsetof(WeaponFullDef, gunXModel[1]), CSPFT_XMODEL}, + {"gunModel3", offsetof(WeaponFullDef, gunXModel[2]), CSPFT_XMODEL}, + {"gunModel4", offsetof(WeaponFullDef, gunXModel[3]), CSPFT_XMODEL}, + {"gunModel5", offsetof(WeaponFullDef, gunXModel[4]), CSPFT_XMODEL}, + {"gunModel6", offsetof(WeaponFullDef, gunXModel[5]), CSPFT_XMODEL}, + {"gunModel7", offsetof(WeaponFullDef, gunXModel[6]), CSPFT_XMODEL}, + {"gunModel8", offsetof(WeaponFullDef, gunXModel[7]), CSPFT_XMODEL}, + {"gunModel9", offsetof(WeaponFullDef, gunXModel[8]), CSPFT_XMODEL}, + {"gunModel10", offsetof(WeaponFullDef, gunXModel[9]), CSPFT_XMODEL}, + {"gunModel11", offsetof(WeaponFullDef, gunXModel[10]), CSPFT_XMODEL}, + {"gunModel12", offsetof(WeaponFullDef, gunXModel[11]), CSPFT_XMODEL}, + {"gunModel13", offsetof(WeaponFullDef, gunXModel[12]), CSPFT_XMODEL}, + {"gunModel14", offsetof(WeaponFullDef, gunXModel[13]), CSPFT_XMODEL}, + {"gunModel15", offsetof(WeaponFullDef, gunXModel[14]), CSPFT_XMODEL}, + {"gunModel16", offsetof(WeaponFullDef, gunXModel[15]), CSPFT_XMODEL}, + {"handModel", offsetof(WeaponFullDef, weapDef.handXModel), CSPFT_XMODEL}, + {"hideTags", offsetof(WeaponFullDef, hideTags), WFT_HIDETAGS}, + {"notetrackSoundMap", offsetof(WeaponFullDef, notetrackSoundMapKeys), WFT_NOTETRACKSOUNDMAP}, + {"idleAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_IDLE]), CSPFT_STRING}, + {"idleAnimLeft", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_IDLE_LEFT]), CSPFT_STRING}, + {"emptyIdleAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_EMPTY_IDLE]), CSPFT_STRING}, + {"emptyIdleAnimLeft", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_EMPTY_IDLE_LEFT]), CSPFT_STRING}, + {"fireIntroAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_FIRE_INTRO]), CSPFT_STRING}, + {"fireAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_FIRE]), CSPFT_STRING}, + {"fireAnimLeft", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_FIRE_LEFT]), CSPFT_STRING}, + {"holdFireAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_HOLD_FIRE]), CSPFT_STRING}, + {"lastShotAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_LASTSHOT]), CSPFT_STRING}, + {"lastShotAnimLeft", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_LASTSHOT_LEFT]), CSPFT_STRING}, + {"flourishAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_FINALSHOT]), CSPFT_STRING}, + {"flourishAnimLeft", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_FINALSHOT_LEFT]), CSPFT_STRING}, + {"detonateAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DETONATE]), CSPFT_STRING}, + {"rechamberAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RECHAMBER]), CSPFT_STRING}, + {"meleeAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MELEE]), CSPFT_STRING}, + {"meleeAnimEmpty", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MELEE_EMPTY]), CSPFT_STRING}, + {"meleeAnim1", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MELEE1]), CSPFT_STRING}, + {"meleeAnim2", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MELEE2]), CSPFT_STRING}, + {"meleeAnim3", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MELEE3]), CSPFT_STRING}, + {"meleeChargeAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MELEE_CHARGE]), CSPFT_STRING}, + {"meleeChargeAnimEmpty", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MELEE_CHARGE_EMPTY]), CSPFT_STRING}, + {"reloadAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD]), CSPFT_STRING}, + {"reloadAnimRight", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_RIGHT]), CSPFT_STRING}, + {"reloadAnimLeft", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_LEFT]), CSPFT_STRING}, + {"reloadEmptyAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_EMPTY]), CSPFT_STRING}, + {"reloadEmptyAnimLeft", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_EMPTY_LEFT]), CSPFT_STRING}, + {"reloadStartAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_START]), CSPFT_STRING}, + {"reloadEndAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_END]), CSPFT_STRING}, + {"reloadQuickAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_QUICK]), CSPFT_STRING}, + {"reloadQuickEmptyAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RELOAD_QUICK_EMPTY]), CSPFT_STRING}, + {"raiseAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_RAISE]), CSPFT_STRING}, + {"dropAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DROP]), CSPFT_STRING}, + {"firstRaiseAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_FIRST_RAISE]), CSPFT_STRING}, + {"altRaiseAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ALT_RAISE]), CSPFT_STRING}, + {"altDropAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ALT_DROP]), CSPFT_STRING}, + {"quickRaiseAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_QUICK_RAISE]), CSPFT_STRING}, + {"quickDropAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_QUICK_DROP]), CSPFT_STRING}, + {"emptyRaiseAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_EMPTY_RAISE]), CSPFT_STRING}, + {"emptyDropAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_EMPTY_DROP]), CSPFT_STRING}, + {"sprintInAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_SPRINT_IN]), CSPFT_STRING}, + {"sprintLoopAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_SPRINT_LOOP]), CSPFT_STRING}, + {"sprintOutAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_SPRINT_OUT]), CSPFT_STRING}, + {"sprintInEmptyAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_SPRINT_EMPTY_IN]), CSPFT_STRING}, + {"sprintLoopEmptyAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_SPRINT_EMPTY_LOOP]), CSPFT_STRING}, + {"sprintOutEmptyAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_SPRINT_EMPTY_OUT]), CSPFT_STRING}, + {"lowReadyInAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_LOWREADY_IN]), CSPFT_STRING}, + {"lowReadyLoopAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_LOWREADY_LOOP]), CSPFT_STRING}, + {"lowReadyOutAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_LOWREADY_OUT]), CSPFT_STRING}, + {"contFireInAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CONT_FIRE_IN]), CSPFT_STRING}, + {"contFireLoopAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CONT_FIRE_LOOP]), CSPFT_STRING}, + {"contFireOutAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CONT_FIRE_OUT]), CSPFT_STRING}, + {"crawlInAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_IN]), CSPFT_STRING}, + {"crawlForwardAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_FORWARD]), CSPFT_STRING}, + {"crawlBackAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_BACK]), CSPFT_STRING}, + {"crawlRightAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_RIGHT]), CSPFT_STRING}, + {"crawlLeftAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_LEFT]), CSPFT_STRING}, + {"crawlOutAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_OUT]), CSPFT_STRING}, + {"crawlEmptyInAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_EMPTY_IN]), CSPFT_STRING}, + {"crawlEmptyForwardAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_EMPTY_FORWARD]), CSPFT_STRING}, + {"crawlEmptyBackAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_EMPTY_BACK]), CSPFT_STRING}, + {"crawlEmptyRightAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_EMPTY_RIGHT]), CSPFT_STRING}, + {"crawlEmptyLeftAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_EMPTY_LEFT]), CSPFT_STRING}, + {"crawlEmptyOutAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CRAWL_EMPTY_OUT]), CSPFT_STRING}, + {"deployAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DEPLOY]), CSPFT_STRING}, + {"nightVisionWearAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_NIGHTVISION_WEAR]), CSPFT_STRING}, + {"nightVisionRemoveAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_NIGHTVISION_REMOVE]), CSPFT_STRING}, + {"adsFireAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ADS_FIRE]), CSPFT_STRING}, + {"adsLastShotAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ADS_LASTSHOT]), CSPFT_STRING}, + {"adsRechamberAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ADS_RECHAMBER]), CSPFT_STRING}, + {"adsUpAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ADS_UP]), CSPFT_STRING}, + {"adsDownAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ADS_DOWN]), CSPFT_STRING}, + {"adsUpOtherScopeAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ADS_UP_OTHER_SCOPE]), CSPFT_STRING}, + {"adsFireIntroAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_ADS_FIRE_INTRO]), CSPFT_STRING}, + {"breakdownAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_BREAKDOWN]), CSPFT_STRING}, + {"dtp_in", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DTP_IN]), CSPFT_STRING}, + {"dtp_loop", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DTP_LOOP]), CSPFT_STRING}, + {"dtp_out", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DTP_OUT]), CSPFT_STRING}, + {"dtp_empty_in", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DTP_EMPTY_IN]), CSPFT_STRING}, + {"dtp_empty_loop", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DTP_EMPTY_LOOP]), CSPFT_STRING}, + {"dtp_empty_out", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_DTP_EMPTY_OUT]), CSPFT_STRING}, + {"slide_in", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_SLIDE_IN]), CSPFT_STRING}, + {"mantleAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_MANTLE]), CSPFT_STRING}, + {"sprintCameraAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CAMERA_SPRINT_LOOP]), CSPFT_STRING}, + {"dtpInCameraAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CAMERA_DTP_IN]), CSPFT_STRING}, + {"dtpLoopCameraAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CAMERA_DTP_LOOP]), CSPFT_STRING}, + {"dtpOutCameraAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CAMERA_DTP_OUT]), CSPFT_STRING}, + {"mantleCameraAnim", offsetof(WeaponFullDef, szXAnims[WEAP_ANIM_CAMERA_MANTLE]), CSPFT_STRING}, + {"script", offsetof(WeaponFullDef, weapDef.szScript), CSPFT_STRING}, + {"weaponType", offsetof(WeaponFullDef, weapDef.weapType), WFT_WEAPONTYPE}, + {"weaponClass", offsetof(WeaponFullDef, weapDef.weapClass), WFT_WEAPONCLASS}, + {"penetrateType", offsetof(WeaponFullDef, weapDef.penetrateTWeaponAttachmentype), WFT_PENETRATE_TYPE}, + {"impactType", offsetof(WeaponFullDef, weapDef.impactType), WFT_IMPACT_TYPE}, + {"inventoryType", offsetof(WeaponFullDef, weapDef.inventoryType), WFT_INVENTORYTYPE}, + {"fireType", offsetof(WeaponFullDef, weapDef.fireType), WFT_FIRETYPE}, + {"clipType", offsetof(WeaponFullDef, weapDef.clipType), WFT_CLIPTYPE}, + {"barrelType", offsetof(WeaponFullDef, weapDef.barrelType), WFT_BARRELTYPE}, + {"offhandClass", offsetof(WeaponFullDef, weapDef.offhandClass), WFT_OFFHAND_CLASS}, + {"offhandSlot", offsetof(WeaponFullDef, weapDef.offhandSlot), WFT_OFFHAND_SLOT}, + {"viewFlashEffect", offsetof(WeaponFullDef, weapDef.viewFlashEffect), CSPFT_FX}, + {"worldFlashEffect", offsetof(WeaponFullDef, weapDef.worldFlashEffect), CSPFT_FX}, + {"barrelCooldownEffect", offsetof(WeaponFullDef, weapDef.barrelCooldownEffect), CSPFT_FX}, + {"barrelCooldownMinCount", offsetof(WeaponFullDef, weapDef.barrelCooldownMinCount), CSPFT_INT}, + {"viewFlashOffsetF", offsetof(WeaponFullDef, weapDef.vViewFlashOffset.x), CSPFT_FLOAT}, + {"viewFlashOffsetR", offsetof(WeaponFullDef, weapDef.vViewFlashOffset.y), CSPFT_FLOAT}, + {"viewFlashOffsetU", offsetof(WeaponFullDef, weapDef.vViewFlashOffset.z), CSPFT_FLOAT}, + {"worldFlashOffsetF", offsetof(WeaponFullDef, weapDef.vWorldFlashOffset.x), CSPFT_FLOAT}, + {"worldFlashOffsetR", offsetof(WeaponFullDef, weapDef.vWorldFlashOffset.y), CSPFT_FLOAT}, + {"worldFlashOffsetU", offsetof(WeaponFullDef, weapDef.vWorldFlashOffset.z), CSPFT_FLOAT}, + {"pickupSound", offsetof(WeaponFullDef, weapDef.pickupSound), CSPFT_STRING}, + {"pickupSoundPlayer", offsetof(WeaponFullDef, weapDef.pickupSoundPlayer), CSPFT_STRING}, + {"ammoPickupSound", offsetof(WeaponFullDef, weapDef.ammoPickupSound), CSPFT_STRING}, + {"ammoPickupSoundPlayer", offsetof(WeaponFullDef, weapDef.ammoPickupSoundPlayer), CSPFT_STRING}, + {"projectileSound", offsetof(WeaponFullDef, weapDef.projectileSound), CSPFT_STRING}, + {"pullbackSound", offsetof(WeaponFullDef, weapDef.pullbackSound), CSPFT_STRING}, + {"pullbackSoundPlayer", offsetof(WeaponFullDef, weapDef.pullbackSoundPlayer), CSPFT_STRING}, + {"fireSound", offsetof(WeaponFullDef, weapDef.fireSound), CSPFT_STRING}, + {"crackSound", offsetof(WeaponFullDef, weapDef.crackSound), CSPFT_STRING}, + {"whizbySound", offsetof(WeaponFullDef, weapDef.whizbySound), CSPFT_STRING}, + {"fireSoundPlayer", offsetof(WeaponFullDef, weapDef.fireSoundPlayer), CSPFT_STRING}, + {"loopFireSound", offsetof(WeaponFullDef, weapDef.fireLoopSound), CSPFT_STRING}, + {"loopFireSoundPlayer", offsetof(WeaponFullDef, weapDef.fireLoopSoundPlayer), CSPFT_STRING}, + {"loopFireEndSound", offsetof(WeaponFullDef, weapDef.fireLoopEndSound), CSPFT_STRING}, + {"loopFireEndSoundPlayer", offsetof(WeaponFullDef, weapDef.fireLoopEndSoundPlayer), CSPFT_STRING}, + {"startFireSound", offsetof(WeaponFullDef, weapDef.fireStartSound), CSPFT_STRING}, + {"stopFireSound", offsetof(WeaponFullDef, weapDef.fireStopSound), CSPFT_STRING}, + {"killcamStartFireSound", offsetof(WeaponFullDef, weapDef.fireKillcamSound), CSPFT_STRING}, + {"startFireSoundPlayer", offsetof(WeaponFullDef, weapDef.fireStartSoundPlayer), CSPFT_STRING}, + {"stopFireSoundPlayer", offsetof(WeaponFullDef, weapDef.fireStopSoundPlayer), CSPFT_STRING}, + {"killcamStartFireSoundPlayer", offsetof(WeaponFullDef, weapDef.fireKillcamSoundPlayer), CSPFT_STRING}, + {"lastShotSound", offsetof(WeaponFullDef, weapDef.fireLastSound), CSPFT_STRING}, + {"lastShotSoundPlayer", offsetof(WeaponFullDef, weapDef.fireLastSoundPlayer), CSPFT_STRING}, + {"emptyFireSound", offsetof(WeaponFullDef, weapDef.emptyFireSound), CSPFT_STRING}, + {"emptyFireSoundPlayer", offsetof(WeaponFullDef, weapDef.emptyFireSoundPlayer), CSPFT_STRING}, + {"meleeSwipeSound", offsetof(WeaponFullDef, weapDef.meleeSwipeSound), CSPFT_STRING}, + {"meleeSwipeSoundPlayer", offsetof(WeaponFullDef, weapDef.meleeSwipeSoundPlayer), CSPFT_STRING}, + {"meleeHitSound", offsetof(WeaponFullDef, weapDef.meleeHitSound), CSPFT_STRING}, + {"meleeMissSound", offsetof(WeaponFullDef, weapDef.meleeMissSound), CSPFT_STRING}, + {"rechamberSound", offsetof(WeaponFullDef, weapDef.rechamberSound), CSPFT_STRING}, + {"rechamberSoundPlayer", offsetof(WeaponFullDef, weapDef.rechamberSoundPlayer), CSPFT_STRING}, + {"reloadSound", offsetof(WeaponFullDef, weapDef.reloadSound), CSPFT_STRING}, + {"reloadSoundPlayer", offsetof(WeaponFullDef, weapDef.reloadSoundPlayer), CSPFT_STRING}, + {"reloadEmptySound", offsetof(WeaponFullDef, weapDef.reloadEmptySound), CSPFT_STRING}, + {"reloadEmptySoundPlayer", offsetof(WeaponFullDef, weapDef.reloadEmptySoundPlayer), CSPFT_STRING}, + {"reloadStartSound", offsetof(WeaponFullDef, weapDef.reloadStartSound), CSPFT_STRING}, + {"reloadStartSoundPlayer", offsetof(WeaponFullDef, weapDef.reloadStartSoundPlayer), CSPFT_STRING}, + {"reloadEndSound", offsetof(WeaponFullDef, weapDef.reloadEndSound), CSPFT_STRING}, + {"reloadEndSoundPlayer", offsetof(WeaponFullDef, weapDef.reloadEndSoundPlayer), CSPFT_STRING}, + {"rotateLoopSound", offsetof(WeaponFullDef, weapDef.rotateLoopSound), CSPFT_STRING}, + {"rotateLoopSoundPlayer", offsetof(WeaponFullDef, weapDef.rotateLoopSoundPlayer), CSPFT_STRING}, + {"rotateStopSound", offsetof(WeaponFullDef, weapDef.rotateStopSound), CSPFT_STRING}, + {"rotateStopSoundPlayer", offsetof(WeaponFullDef, weapDef.rotateStopSoundPlayer), CSPFT_STRING}, + {"deploySound", offsetof(WeaponFullDef, weapDef.deploySound), CSPFT_STRING}, + {"deploySoundPlayer", offsetof(WeaponFullDef, weapDef.deploySoundPlayer), CSPFT_STRING}, + {"finishDeploySound", offsetof(WeaponFullDef, weapDef.finishDeploySound), CSPFT_STRING}, + {"finishDeploySoundPlayer", offsetof(WeaponFullDef, weapDef.finishDeploySoundPlayer), CSPFT_STRING}, + {"breakdownSound", offsetof(WeaponFullDef, weapDef.breakdownSound), CSPFT_STRING}, + {"breakdownSoundPlayer", offsetof(WeaponFullDef, weapDef.breakdownSoundPlayer), CSPFT_STRING}, + {"finishBreakdownSound", offsetof(WeaponFullDef, weapDef.finishBreakdownSound), CSPFT_STRING}, + {"finishBreakdownSoundPlayer", offsetof(WeaponFullDef, weapDef.finishBreakdownSoundPlayer), CSPFT_STRING}, + {"detonateSound", offsetof(WeaponFullDef, weapDef.detonateSound), CSPFT_STRING}, + {"detonateSoundPlayer", offsetof(WeaponFullDef, weapDef.detonateSoundPlayer), CSPFT_STRING}, + {"nightVisionWearSound", offsetof(WeaponFullDef, weapDef.nightVisionWearSound), CSPFT_STRING}, + {"nightVisionWearSoundPlayer", offsetof(WeaponFullDef, weapDef.nightVisionWearSoundPlayer), CSPFT_STRING}, + {"nightVisionRemoveSound", offsetof(WeaponFullDef, weapDef.nightVisionRemoveSound), CSPFT_STRING}, + {"nightVisionRemoveSoundPlayer", offsetof(WeaponFullDef, weapDef.nightVisionRemoveSoundPlayer), CSPFT_STRING}, + {"raiseSound", offsetof(WeaponFullDef, weapDef.raiseSound), CSPFT_STRING}, + {"raiseSoundPlayer", offsetof(WeaponFullDef, weapDef.raiseSoundPlayer), CSPFT_STRING}, + {"firstRaiseSound", offsetof(WeaponFullDef, weapDef.firstRaiseSound), CSPFT_STRING}, + {"firstRaiseSoundPlayer", offsetof(WeaponFullDef, weapDef.firstRaiseSoundPlayer), CSPFT_STRING}, + {"altSwitchSound", offsetof(WeaponFullDef, weapDef.altSwitchSound), CSPFT_STRING}, + {"altSwitchSoundPlayer", offsetof(WeaponFullDef, weapDef.altSwitchSoundPlayer), CSPFT_STRING}, + {"adsRaiseSoundPlayer", offsetof(WeaponFullDef, weapDef.adsRaiseSoundPlayer), CSPFT_STRING}, + {"adsLowerSoundPlayer", offsetof(WeaponFullDef, weapDef.adsLowerSoundPlayer), CSPFT_STRING}, + {"putawaySound", offsetof(WeaponFullDef, weapDef.putawaySound), CSPFT_STRING}, + {"putawaySoundPlayer", offsetof(WeaponFullDef, weapDef.putawaySoundPlayer), CSPFT_STRING}, + {"overheatSound", offsetof(WeaponFullDef, weapDef.overheatSound), CSPFT_STRING}, + {"overheatSoundPlayer", offsetof(WeaponFullDef, weapDef.overheatSoundPlayer), CSPFT_STRING}, + {"adsZoomSound", offsetof(WeaponFullDef, weapDef.adsZoomSound), CSPFT_STRING}, + {"shellCasing", offsetof(WeaponFullDef, weapDef.shellCasing), CSPFT_STRING}, + {"shellCasingPlayer", offsetof(WeaponFullDef, weapDef.shellCasingPlayer), CSPFT_STRING}, + {"bounceSound", offsetof(WeaponFullDef, weapDef.bounceSound), WFT_BOUNCE_SOUND}, + {"standMountedWeapdef", offsetof(WeaponFullDef, weapDef.standMountedWeapdef), CSPFT_STRING}, + {"crouchMountedWeapdef", offsetof(WeaponFullDef, weapDef.crouchMountedWeapdef), CSPFT_STRING}, + {"proneMountedWeapdef", offsetof(WeaponFullDef, weapDef.proneMountedWeapdef), CSPFT_STRING}, + {"viewShellEjectEffect", offsetof(WeaponFullDef, weapDef.viewShellEjectEffect), CSPFT_FX}, + {"worldShellEjectEffect", offsetof(WeaponFullDef, weapDef.worldShellEjectEffect), CSPFT_FX}, + {"viewLastShotEjectEffect", offsetof(WeaponFullDef, weapDef.viewLastShotEjectEffect), CSPFT_FX}, + {"worldLastShotEjectEffect", offsetof(WeaponFullDef, weapDef.worldLastShotEjectEffect), CSPFT_FX}, + {"viewShellEjectOffsetF", offsetof(WeaponFullDef, weapDef.vViewShellEjectOffset.x), CSPFT_FLOAT}, + {"viewShellEjectOffsetR", offsetof(WeaponFullDef, weapDef.vViewShellEjectOffset.y), CSPFT_FLOAT}, + {"viewShellEjectOffsetU", offsetof(WeaponFullDef, weapDef.vViewShellEjectOffset.z), CSPFT_FLOAT}, + {"worldShellEjectOffsetF", offsetof(WeaponFullDef, weapDef.vWorldShellEjectOffset.x), CSPFT_FLOAT}, + {"worldShellEjectOffsetR", offsetof(WeaponFullDef, weapDef.vWorldShellEjectOffset.y), CSPFT_FLOAT}, + {"worldShellEjectOffsetU", offsetof(WeaponFullDef, weapDef.vWorldShellEjectOffset.z), CSPFT_FLOAT}, + {"viewShellEjectRotationP", offsetof(WeaponFullDef, weapDef.vViewShellEjectRotation.x), CSPFT_FLOAT}, + {"viewShellEjectRotationY", offsetof(WeaponFullDef, weapDef.vViewShellEjectRotation.y), CSPFT_FLOAT}, + {"viewShellEjectRotationR", offsetof(WeaponFullDef, weapDef.vViewShellEjectRotation.z), CSPFT_FLOAT}, + {"worldShellEjectRotationP", offsetof(WeaponFullDef, weapDef.vWorldShellEjectRotation.x), CSPFT_FLOAT}, + {"worldShellEjectRotationY", offsetof(WeaponFullDef, weapDef.vWorldShellEjectRotation.y), CSPFT_FLOAT}, + {"worldShellEjectRotationR", offsetof(WeaponFullDef, weapDef.vWorldShellEjectRotation.z), CSPFT_FLOAT}, + {"reticleCenter", offsetof(WeaponFullDef, weapDef.reticleCenter), CSPFT_MATERIAL}, + {"reticleSide", offsetof(WeaponFullDef, weapDef.reticleSide), CSPFT_MATERIAL}, + {"reticleCenterSize", offsetof(WeaponFullDef, weapDef.iReticleCenterSize), CSPFT_INT}, + {"reticleSideSize", offsetof(WeaponFullDef, weapDef.iReticleSideSize), CSPFT_INT}, + {"reticleMinOfs", offsetof(WeaponFullDef, weapDef.iReticleMinOfs), CSPFT_INT}, + {"activeReticleType", offsetof(WeaponFullDef, weapDef.activeReticleType), WFT_ACTIVE_RETICLE_TYPE}, + {"standMoveF", offsetof(WeaponFullDef, weapDef.vStandMove.x), CSPFT_FLOAT}, + {"standMoveR", offsetof(WeaponFullDef, weapDef.vStandMove.y), CSPFT_FLOAT}, + {"standMoveU", offsetof(WeaponFullDef, weapDef.vStandMove.z), CSPFT_FLOAT}, + {"standRotP", offsetof(WeaponFullDef, weapDef.vStandRot.x), CSPFT_FLOAT}, + {"standRotY", offsetof(WeaponFullDef, weapDef.vStandRot.y), CSPFT_FLOAT}, + {"standRotR", offsetof(WeaponFullDef, weapDef.vStandRot.z), CSPFT_FLOAT}, + {"duckedOfsF", offsetof(WeaponFullDef, weapDef.vDuckedOfs.x), CSPFT_FLOAT}, + {"duckedOfsR", offsetof(WeaponFullDef, weapDef.vDuckedOfs.y), CSPFT_FLOAT}, + {"duckedOfsU", offsetof(WeaponFullDef, weapDef.vDuckedOfs.z), CSPFT_FLOAT}, + {"duckedMoveF", offsetof(WeaponFullDef, weapDef.vDuckedMove.x), CSPFT_FLOAT}, + {"duckedMoveR", offsetof(WeaponFullDef, weapDef.vDuckedMove.y), CSPFT_FLOAT}, + {"duckedMoveU", offsetof(WeaponFullDef, weapDef.vDuckedMove.z), CSPFT_FLOAT}, + {"duckedSprintOfsF", offsetof(WeaponFullDef, weapDef.vDuckedSprintOfs.x), CSPFT_FLOAT}, + {"duckedSprintOfsR", offsetof(WeaponFullDef, weapDef.vDuckedSprintOfs.y), CSPFT_FLOAT}, + {"duckedSprintOfsU", offsetof(WeaponFullDef, weapDef.vDuckedSprintOfs.z), CSPFT_FLOAT}, + {"duckedSprintRotP", offsetof(WeaponFullDef, weapDef.vDuckedSprintRot.x), CSPFT_FLOAT}, + {"duckedSprintRotY", offsetof(WeaponFullDef, weapDef.vDuckedSprintRot.y), CSPFT_FLOAT}, + {"duckedSprintRotR", offsetof(WeaponFullDef, weapDef.vDuckedSprintRot.z), CSPFT_FLOAT}, + {"duckedSprintBobH", offsetof(WeaponFullDef, weapDef.vDuckedSprintBob.x), CSPFT_FLOAT}, + {"duckedSprintBobV", offsetof(WeaponFullDef, weapDef.vDuckedSprintBob.y), CSPFT_FLOAT}, + {"duckedSprintScale", offsetof(WeaponFullDef, weapDef.fDuckedSprintCycleScale), CSPFT_FLOAT}, + {"sprintOfsF", offsetof(WeaponFullDef, weapDef.vSprintOfs.x), CSPFT_FLOAT}, + {"sprintOfsR", offsetof(WeaponFullDef, weapDef.vSprintOfs.y), CSPFT_FLOAT}, + {"sprintOfsU", offsetof(WeaponFullDef, weapDef.vSprintOfs.z), CSPFT_FLOAT}, + {"sprintRotP", offsetof(WeaponFullDef, weapDef.vSprintRot.x), CSPFT_FLOAT}, + {"sprintRotY", offsetof(WeaponFullDef, weapDef.vSprintRot.y), CSPFT_FLOAT}, + {"sprintRotR", offsetof(WeaponFullDef, weapDef.vSprintRot.z), CSPFT_FLOAT}, + {"sprintBobH", offsetof(WeaponFullDef, weapDef.vSprintBob.x), CSPFT_FLOAT}, + {"sprintBobV", offsetof(WeaponFullDef, weapDef.vSprintBob.y), CSPFT_FLOAT}, + {"sprintScale", offsetof(WeaponFullDef, weapDef.fSprintCycleScale), CSPFT_FLOAT}, + {"lowReadyOfsF", offsetof(WeaponFullDef, weapDef.vLowReadyOfs.x), CSPFT_FLOAT}, + {"lowReadyOfsR", offsetof(WeaponFullDef, weapDef.vLowReadyOfs.y), CSPFT_FLOAT}, + {"lowReadyOfsU", offsetof(WeaponFullDef, weapDef.vLowReadyOfs.z), CSPFT_FLOAT}, + {"lowReadyRotP", offsetof(WeaponFullDef, weapDef.vLowReadyRot.x), CSPFT_FLOAT}, + {"lowReadyRotY", offsetof(WeaponFullDef, weapDef.vLowReadyRot.y), CSPFT_FLOAT}, + {"lowReadyRotR", offsetof(WeaponFullDef, weapDef.vLowReadyRot.z), CSPFT_FLOAT}, + {"rideOfsF", offsetof(WeaponFullDef, weapDef.vRideOfs.x), CSPFT_FLOAT}, + {"rideOfsR", offsetof(WeaponFullDef, weapDef.vRideOfs.y), CSPFT_FLOAT}, + {"rideOfsU", offsetof(WeaponFullDef, weapDef.vRideOfs.z), CSPFT_FLOAT}, + {"rideRotP", offsetof(WeaponFullDef, weapDef.vRideRot.x), CSPFT_FLOAT}, + {"rideRotY", offsetof(WeaponFullDef, weapDef.vRideRot.y), CSPFT_FLOAT}, + {"rideRotR", offsetof(WeaponFullDef, weapDef.vRideRot.z), CSPFT_FLOAT}, + {"dtpOfsF", offsetof(WeaponFullDef, weapDef.vDtpOfs.x), CSPFT_FLOAT}, + {"dtpOfsR", offsetof(WeaponFullDef, weapDef.vDtpOfs.y), CSPFT_FLOAT}, + {"dtpOfsU", offsetof(WeaponFullDef, weapDef.vDtpOfs.z), CSPFT_FLOAT}, + {"dtpRotP", offsetof(WeaponFullDef, weapDef.vDtpRot.x), CSPFT_FLOAT}, + {"dtpRotY", offsetof(WeaponFullDef, weapDef.vDtpRot.y), CSPFT_FLOAT}, + {"dtpRotR", offsetof(WeaponFullDef, weapDef.vDtpRot.z), CSPFT_FLOAT}, + {"dtpBobH", offsetof(WeaponFullDef, weapDef.vDtpBob.x), CSPFT_FLOAT}, + {"dtpBobV", offsetof(WeaponFullDef, weapDef.vDtpBob.y), CSPFT_FLOAT}, + {"dtpScale", offsetof(WeaponFullDef, weapDef.fDtpCycleScale), CSPFT_FLOAT}, + {"mantleOfsF", offsetof(WeaponFullDef, weapDef.vMantleOfs.x), CSPFT_FLOAT}, + {"mantleOfsR", offsetof(WeaponFullDef, weapDef.vMantleOfs.y), CSPFT_FLOAT}, + {"mantleOfsU", offsetof(WeaponFullDef, weapDef.vMantleOfs.z), CSPFT_FLOAT}, + {"mantleRotP", offsetof(WeaponFullDef, weapDef.vMantleRot.x), CSPFT_FLOAT}, + {"mantleRotY", offsetof(WeaponFullDef, weapDef.vMantleRot.y), CSPFT_FLOAT}, + {"mantleRotR", offsetof(WeaponFullDef, weapDef.vMantleRot.z), CSPFT_FLOAT}, + {"slideOfsF", offsetof(WeaponFullDef, weapDef.vSlideOfs.x), CSPFT_FLOAT}, + {"slideOfsR", offsetof(WeaponFullDef, weapDef.vSlideOfs.y), CSPFT_FLOAT}, + {"slideOfsU", offsetof(WeaponFullDef, weapDef.vSlideOfs.z), CSPFT_FLOAT}, + {"slideRotP", offsetof(WeaponFullDef, weapDef.vSlideRot.x), CSPFT_FLOAT}, + {"slideRotY", offsetof(WeaponFullDef, weapDef.vSlideRot.y), CSPFT_FLOAT}, + {"slideRotR", offsetof(WeaponFullDef, weapDef.vSlideRot.z), CSPFT_FLOAT}, + {"duckedRotP", offsetof(WeaponFullDef, weapDef.vDuckedRot.x), CSPFT_FLOAT}, + {"duckedRotY", offsetof(WeaponFullDef, weapDef.vDuckedRot.y), CSPFT_FLOAT}, + {"duckedRotR", offsetof(WeaponFullDef, weapDef.vDuckedRot.z), CSPFT_FLOAT}, + {"proneOfsF", offsetof(WeaponFullDef, weapDef.vProneOfs.x), CSPFT_FLOAT}, + {"proneOfsR", offsetof(WeaponFullDef, weapDef.vProneOfs.y), CSPFT_FLOAT}, + {"proneOfsU", offsetof(WeaponFullDef, weapDef.vProneOfs.z), CSPFT_FLOAT}, + {"proneMoveF", offsetof(WeaponFullDef, weapDef.vProneMove.x), CSPFT_FLOAT}, + {"proneMoveR", offsetof(WeaponFullDef, weapDef.vProneMove.y), CSPFT_FLOAT}, + {"proneMoveU", offsetof(WeaponFullDef, weapDef.vProneMove.z), CSPFT_FLOAT}, + {"proneRotP", offsetof(WeaponFullDef, weapDef.vProneRot.x), CSPFT_FLOAT}, + {"proneRotY", offsetof(WeaponFullDef, weapDef.vProneRot.y), CSPFT_FLOAT}, + {"proneRotR", offsetof(WeaponFullDef, weapDef.vProneRot.z), CSPFT_FLOAT}, + {"strafeMoveF", offsetof(WeaponFullDef, weapDef.vStrafeMove.x), CSPFT_FLOAT}, + {"strafeMoveR", offsetof(WeaponFullDef, weapDef.vStrafeMove.y), CSPFT_FLOAT}, + {"strafeMoveU", offsetof(WeaponFullDef, weapDef.vStrafeMove.z), CSPFT_FLOAT}, + {"strafeRotP", offsetof(WeaponFullDef, weapDef.vStrafeRot.x), CSPFT_FLOAT}, + {"strafeRotY", offsetof(WeaponFullDef, weapDef.vStrafeRot.y), CSPFT_FLOAT}, + {"strafeRotR", offsetof(WeaponFullDef, weapDef.vStrafeRot.z), CSPFT_FLOAT}, + {"posMoveRate", offsetof(WeaponFullDef, weapDef.fPosMoveRate), CSPFT_FLOAT}, + {"posProneMoveRate", offsetof(WeaponFullDef, weapDef.fPosProneMoveRate), CSPFT_FLOAT}, + {"standMoveMinSpeed", offsetof(WeaponFullDef, weapDef.fStandMoveMinSpeed), CSPFT_FLOAT}, + {"duckedMoveMinSpeed", offsetof(WeaponFullDef, weapDef.fDuckedMoveMinSpeed), CSPFT_FLOAT}, + {"proneMoveMinSpeed", offsetof(WeaponFullDef, weapDef.fProneMoveMinSpeed), CSPFT_FLOAT}, + {"posRotRate", offsetof(WeaponFullDef, weapDef.fPosRotRate), CSPFT_FLOAT}, + {"posProneRotRate", offsetof(WeaponFullDef, weapDef.fPosProneRotRate), CSPFT_FLOAT}, + {"standRotMinSpeed", offsetof(WeaponFullDef, weapDef.fStandRotMinSpeed), CSPFT_FLOAT}, + {"duckedRotMinSpeed", offsetof(WeaponFullDef, weapDef.fDuckedRotMinSpeed), CSPFT_FLOAT}, + {"proneRotMinSpeed", offsetof(WeaponFullDef, weapDef.fProneRotMinSpeed), CSPFT_FLOAT}, + {"worldModel", offsetof(WeaponFullDef, worldModel[0]), CSPFT_XMODEL}, + {"worldModel2", offsetof(WeaponFullDef, worldModel[1]), CSPFT_XMODEL}, + {"worldModel3", offsetof(WeaponFullDef, worldModel[2]), CSPFT_XMODEL}, + {"worldModel4", offsetof(WeaponFullDef, worldModel[3]), CSPFT_XMODEL}, + {"worldModel5", offsetof(WeaponFullDef, worldModel[4]), CSPFT_XMODEL}, + {"worldModel6", offsetof(WeaponFullDef, worldModel[5]), CSPFT_XMODEL}, + {"worldModel7", offsetof(WeaponFullDef, worldModel[6]), CSPFT_XMODEL}, + {"worldModel8", offsetof(WeaponFullDef, worldModel[7]), CSPFT_XMODEL}, + {"worldModel9", offsetof(WeaponFullDef, worldModel[8]), CSPFT_XMODEL}, + {"worldModel10", offsetof(WeaponFullDef, worldModel[9]), CSPFT_XMODEL}, + {"worldModel11", offsetof(WeaponFullDef, worldModel[10]), CSPFT_XMODEL}, + {"worldModel12", offsetof(WeaponFullDef, worldModel[11]), CSPFT_XMODEL}, + {"worldModel13", offsetof(WeaponFullDef, worldModel[12]), CSPFT_XMODEL}, + {"worldModel14", offsetof(WeaponFullDef, worldModel[13]), CSPFT_XMODEL}, + {"worldModel15", offsetof(WeaponFullDef, worldModel[14]), CSPFT_XMODEL}, + {"worldModel16", offsetof(WeaponFullDef, worldModel[15]), CSPFT_XMODEL}, + {"attachViewModel1", offsetof(WeaponFullDef, attachViewModel[0]), CSPFT_XMODEL}, + {"attachViewModel2", offsetof(WeaponFullDef, attachViewModel[1]), CSPFT_XMODEL}, + {"attachViewModel3", offsetof(WeaponFullDef, attachViewModel[2]), CSPFT_XMODEL}, + {"attachViewModel4", offsetof(WeaponFullDef, attachViewModel[3]), CSPFT_XMODEL}, + {"attachViewModel5", offsetof(WeaponFullDef, attachViewModel[4]), CSPFT_XMODEL}, + {"attachViewModel6", offsetof(WeaponFullDef, attachViewModel[5]), CSPFT_XMODEL}, + {"attachViewModel7", offsetof(WeaponFullDef, attachViewModel[6]), CSPFT_XMODEL}, + {"attachViewModel8", offsetof(WeaponFullDef, attachViewModel[7]), CSPFT_XMODEL}, + {"attachWorldModel1", offsetof(WeaponFullDef, attachWorldModel[0]), CSPFT_XMODEL}, + {"attachWorldModel2", offsetof(WeaponFullDef, attachWorldModel[1]), CSPFT_XMODEL}, + {"attachWorldModel3", offsetof(WeaponFullDef, attachWorldModel[2]), CSPFT_XMODEL}, + {"attachWorldModel4", offsetof(WeaponFullDef, attachWorldModel[3]), CSPFT_XMODEL}, + {"attachWorldModel5", offsetof(WeaponFullDef, attachWorldModel[4]), CSPFT_XMODEL}, + {"attachWorldModel6", offsetof(WeaponFullDef, attachWorldModel[5]), CSPFT_XMODEL}, + {"attachWorldModel7", offsetof(WeaponFullDef, attachWorldModel[6]), CSPFT_XMODEL}, + {"attachWorldModel8", offsetof(WeaponFullDef, attachWorldModel[7]), CSPFT_XMODEL}, + {"attachViewModelTag1", offsetof(WeaponFullDef, attachViewModelTag[0]), CSPFT_STRING}, + {"attachViewModelTag2", offsetof(WeaponFullDef, attachViewModelTag[1]), CSPFT_STRING}, + {"attachViewModelTag3", offsetof(WeaponFullDef, attachViewModelTag[2]), CSPFT_STRING}, + {"attachViewModelTag4", offsetof(WeaponFullDef, attachViewModelTag[3]), CSPFT_STRING}, + {"attachViewModelTag5", offsetof(WeaponFullDef, attachViewModelTag[4]), CSPFT_STRING}, + {"attachViewModelTag6", offsetof(WeaponFullDef, attachViewModelTag[5]), CSPFT_STRING}, + {"attachViewModelTag7", offsetof(WeaponFullDef, attachViewModelTag[6]), CSPFT_STRING}, + {"attachViewModelTag8", offsetof(WeaponFullDef, attachViewModelTag[7]), CSPFT_STRING}, + {"attachWorldModelTag1", offsetof(WeaponFullDef, attachWorldModelTag[0]), CSPFT_STRING}, + {"attachWorldModelTag2", offsetof(WeaponFullDef, attachWorldModelTag[1]), CSPFT_STRING}, + {"attachWorldModelTag3", offsetof(WeaponFullDef, attachWorldModelTag[2]), CSPFT_STRING}, + {"attachWorldModelTag4", offsetof(WeaponFullDef, attachWorldModelTag[3]), CSPFT_STRING}, + {"attachWorldModelTag5", offsetof(WeaponFullDef, attachWorldModelTag[4]), CSPFT_STRING}, + {"attachWorldModelTag6", offsetof(WeaponFullDef, attachWorldModelTag[5]), CSPFT_STRING}, + {"attachWorldModelTag7", offsetof(WeaponFullDef, attachWorldModelTag[6]), CSPFT_STRING}, + {"attachWorldModelTag8", offsetof(WeaponFullDef, attachWorldModelTag[7]), CSPFT_STRING}, + {"attachViewModelOffsetX1", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[0]), CSPFT_FLOAT}, + {"attachViewModelOffsetY1", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[1]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ1", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[2]), CSPFT_FLOAT}, + {"attachViewModelOffsetX2", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[3]), CSPFT_FLOAT}, + {"attachViewModelOffsetY2", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[4]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ2", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[5]), CSPFT_FLOAT}, + {"attachViewModelOffsetX3", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[6]), CSPFT_FLOAT}, + {"attachViewModelOffsetY3", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[7]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ3", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[8]), CSPFT_FLOAT}, + {"attachViewModelOffsetX4", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[9]), CSPFT_FLOAT}, + {"attachViewModelOffsetY4", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[10]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ4", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[11]), CSPFT_FLOAT}, + {"attachViewModelOffsetX5", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[12]), CSPFT_FLOAT}, + {"attachViewModelOffsetY5", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[13]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ5", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[14]), CSPFT_FLOAT}, + {"attachViewModelOffsetX6", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[15]), CSPFT_FLOAT}, + {"attachViewModelOffsetY6", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[16]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ6", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[17]), CSPFT_FLOAT}, + {"attachViewModelOffsetX7", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[18]), CSPFT_FLOAT}, + {"attachViewModelOffsetY7", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[19]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ7", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[20]), CSPFT_FLOAT}, + {"attachViewModelOffsetX8", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[21]), CSPFT_FLOAT}, + {"attachViewModelOffsetY8", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[22]), CSPFT_FLOAT}, + {"attachViewModelOffsetZ8", offsetof(WeaponFullDef, weapVariantDef.attachViewModelOffsets[23]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX1", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[0]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY1", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[1]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ1", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[2]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX2", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[3]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY2", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[4]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ2", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[5]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX3", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[6]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY3", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[7]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ3", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[8]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX4", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[9]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY4", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[10]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ4", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[11]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX5", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[12]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY5", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[13]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ5", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[14]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX6", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[15]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY6", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[16]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ6", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[17]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX7", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[18]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY7", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[19]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ7", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[20]), CSPFT_FLOAT}, + {"attachWorldModelOffsetX8", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[21]), CSPFT_FLOAT}, + {"attachWorldModelOffsetY8", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[22]), CSPFT_FLOAT}, + {"attachWorldModelOffsetZ8", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelOffsets[23]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch1", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[0]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw1", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[1]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll1", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[2]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch2", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[3]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw2", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[4]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll2", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[5]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch3", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[6]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw3", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[7]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll3", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[8]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch4", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[9]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw4", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[10]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll4", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[11]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch5", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[12]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw5", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[13]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll5", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[14]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch6", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[15]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw6", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[16]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll6", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[17]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch7", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[18]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw7", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[19]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll7", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[20]), CSPFT_FLOAT}, + {"attachViewModelOffsetPitch8", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[21]), CSPFT_FLOAT}, + {"attachViewModelOffsetYaw8", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[22]), CSPFT_FLOAT}, + {"attachViewModelOffsetRoll8", offsetof(WeaponFullDef, weapVariantDef.attachViewModelRotations[23]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch1", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[0]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw1", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[1]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll1", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[2]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch2", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[3]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw2", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[4]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll2", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[5]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch3", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[6]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw3", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[7]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll3", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[8]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch4", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[9]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw4", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[10]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll4", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[11]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch5", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[12]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw5", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[13]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll5", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[14]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch6", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[15]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw6", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[16]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll6", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[17]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch7", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[18]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw7", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[19]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll7", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[20]), CSPFT_FLOAT}, + {"attachWorldModelOffsetPitch8", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[21]), CSPFT_FLOAT}, + {"attachWorldModelOffsetYaw8", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[22]), CSPFT_FLOAT}, + {"attachWorldModelOffsetRoll8", offsetof(WeaponFullDef, weapVariantDef.attachWorldModelRotations[23]), CSPFT_FLOAT}, + {"ignoreAttachments", offsetof(WeaponFullDef, weapVariantDef.bIgnoreAttachments), CSPFT_BOOL}, + {"stowedModelOffsetsF", offsetof(WeaponFullDef, weapVariantDef.stowedModelOffsets.x), CSPFT_FLOAT}, + {"stowedModelOffsetsR", offsetof(WeaponFullDef, weapVariantDef.stowedModelOffsets.y), CSPFT_FLOAT}, + {"stowedModelOffsetsU", offsetof(WeaponFullDef, weapVariantDef.stowedModelOffsets.z), CSPFT_FLOAT}, + {"stowedModelOffsetsPitch", offsetof(WeaponFullDef, weapVariantDef.stowedModelRotations.x), CSPFT_FLOAT}, + {"stowedModelOffsetsYaw", offsetof(WeaponFullDef, weapVariantDef.stowedModelRotations.y), CSPFT_FLOAT}, + {"stowedModelOffsetsRoll", offsetof(WeaponFullDef, weapVariantDef.stowedModelRotations.z), CSPFT_FLOAT}, + {"worldClipModel", offsetof(WeaponFullDef, weapDef.worldClipModel), CSPFT_XMODEL}, + {"rocketModel", offsetof(WeaponFullDef, weapDef.rocketModel), CSPFT_XMODEL}, + {"mountedModel", offsetof(WeaponFullDef, weapDef.mountedModel), CSPFT_XMODEL}, + {"AdditionalMeleeModel", offsetof(WeaponFullDef, weapDef.additionalMeleeModel), CSPFT_XMODEL}, + {"fireTypeIcon", offsetof(WeaponFullDef, weapDef.fireTypeIcon), CSPFT_MATERIAL}, + {"hudIcon", offsetof(WeaponFullDef, weapDef.hudIcon), CSPFT_MATERIAL}, + {"hudIconRatio", offsetof(WeaponFullDef, weapDef.hudIconRatio), WFT_ICONRATIO_HUD}, + {"indicatorIcon", offsetof(WeaponFullDef, weapDef.indicatorIcon), CSPFT_MATERIAL}, + {"indicatorIconRatio", offsetof(WeaponFullDef, weapDef.indicatorIconRatio), WFT_ICONRATIO_INDICATOR}, + {"ammoCounterIcon", offsetof(WeaponFullDef, weapDef.ammoCounterIcon), CSPFT_MATERIAL}, + {"ammoCounterIconRatio", offsetof(WeaponFullDef, weapDef.ammoCounterIconRatio), WFT_ICONRATIO_AMMOCOUNTER}, + {"ammoCounterClip", offsetof(WeaponFullDef, weapDef.ammoCounterClip), WFT_AMMOCOUNTER_CLIPTYPE}, + {"startAmmo", offsetof(WeaponFullDef, weapDef.iStartAmmo), CSPFT_INT}, + {"ammoDisplayName", offsetof(WeaponFullDef, weapVariantDef.szAmmoDisplayName), CSPFT_STRING}, + {"ammoName", offsetof(WeaponFullDef, weapVariantDef.szAmmoName), CSPFT_STRING}, + {"clipName", offsetof(WeaponFullDef, weapVariantDef.szClipName), CSPFT_STRING}, + {"maxAmmo", offsetof(WeaponFullDef, weapDef.iMaxAmmo), CSPFT_INT}, + {"clipSize", offsetof(WeaponFullDef, weapVariantDef.iClipSize), CSPFT_INT}, + {"shotCount", offsetof(WeaponFullDef, weapDef.shotCount), CSPFT_INT}, + {"sharedAmmoCapName", offsetof(WeaponFullDef, weapDef.szSharedAmmoCapName), CSPFT_STRING}, + {"sharedAmmoCap", offsetof(WeaponFullDef, weapDef.iSharedAmmoCap), CSPFT_INT}, + {"unlimitedAmmo", offsetof(WeaponFullDef, weapDef.unlimitedAmmo), CSPFT_BOOL}, + {"ammoCountClipRelative", offsetof(WeaponFullDef, weapDef.ammoCountClipRelative), CSPFT_BOOL}, + {"sharedAmmo", offsetof(WeaponFullDef, weapDef.sharedAmmo), CSPFT_BOOL}, + {"jamFireTime", offsetof(WeaponFullDef, weapDef.iJamFireTime), CSPFT_MILLISECONDS}, + {"overheatWeapon", offsetof(WeaponFullDef, weapDef.overheatWeapon), CSPFT_INT}, + {"overheatRate", offsetof(WeaponFullDef, weapDef.overheatRate), CSPFT_FLOAT}, + {"cooldownRate", offsetof(WeaponFullDef, weapDef.cooldownRate), CSPFT_FLOAT}, + {"overheatEndVal", offsetof(WeaponFullDef, weapDef.overheatEndVal), CSPFT_FLOAT}, + {"coolWhileFiring", offsetof(WeaponFullDef, weapDef.coolWhileFiring), CSPFT_INT}, + {"fuelTankWeapon", offsetof(WeaponFullDef, weapDef.fuelTankWeapon), CSPFT_INT}, + {"tankLifeTime", offsetof(WeaponFullDef, weapDef.iTankLifeTime), CSPFT_MILLISECONDS}, + {"damage", offsetof(WeaponFullDef, weapDef.damage[0]), CSPFT_INT}, + {"minDamage", offsetof(WeaponFullDef, weapDef.damage[5]), CSPFT_INT}, + {"maxDamageRange", offsetof(WeaponFullDef, weapDef.damageRange[0]), CSPFT_FLOAT}, + {"minDamageRange", offsetof(WeaponFullDef, weapDef.damageRange[5]), CSPFT_FLOAT}, + {"damage2", offsetof(WeaponFullDef, weapDef.damage[1]), CSPFT_INT}, + {"damage3", offsetof(WeaponFullDef, weapDef.damage[2]), CSPFT_INT}, + {"damage4", offsetof(WeaponFullDef, weapDef.damage[3]), CSPFT_INT}, + {"damage5", offsetof(WeaponFullDef, weapDef.damage[4]), CSPFT_INT}, + {"damageRange2", offsetof(WeaponFullDef, weapDef.damageRange[1]), CSPFT_FLOAT}, + {"damageRange3", offsetof(WeaponFullDef, weapDef.damageRange[2]), CSPFT_FLOAT}, + {"damageRange4", offsetof(WeaponFullDef, weapDef.damageRange[3]), CSPFT_FLOAT}, + {"damageRange5", offsetof(WeaponFullDef, weapDef.damageRange[4]), CSPFT_FLOAT}, + {"damageDuration", offsetof(WeaponFullDef, weapDef.damageDuration), CSPFT_FLOAT}, + {"damageInterval", offsetof(WeaponFullDef, weapDef.damageInterval), CSPFT_FLOAT}, + {"playerDamage", offsetof(WeaponFullDef, weapDef.playerDamage), CSPFT_INT}, + {"meleeDamage", offsetof(WeaponFullDef, weapDef.iMeleeDamage), CSPFT_INT}, + {"minPlayerDamage", offsetof(WeaponFullDef, weapDef.minPlayerDamage), CSPFT_INT}, + {"destabilizationRateTime", offsetof(WeaponFullDef, weapDef.destabilizationRateTime), CSPFT_FLOAT}, + {"destabilizationCurvatureMax", offsetof(WeaponFullDef, weapDef.destabilizationCurvatureMax), CSPFT_FLOAT}, + {"destabilizeDistance", offsetof(WeaponFullDef, weapDef.destabilizeDistance), CSPFT_INT}, + {"fireDelay", offsetof(WeaponFullDef, weapDef.iFireDelay), CSPFT_MILLISECONDS}, + {"meleeDelay", offsetof(WeaponFullDef, weapDef.iMeleeDelay), CSPFT_MILLISECONDS}, + {"meleeChargeDelay", offsetof(WeaponFullDef, weapDef.meleeChargeDelay), CSPFT_MILLISECONDS}, + {"spinUpTime", offsetof(WeaponFullDef, weapDef.iSpinUpTime), CSPFT_MILLISECONDS}, + {"spinDownTime", offsetof(WeaponFullDef, weapDef.iSpinDownTime), CSPFT_MILLISECONDS}, + {"spinRate", offsetof(WeaponFullDef, weapDef.spinRate), CSPFT_FLOAT}, + {"spinLoopSound", offsetof(WeaponFullDef, weapDef.spinLoopSound), CSPFT_STRING}, + {"spinLoopSoundPlayer", offsetof(WeaponFullDef, weapDef.spinLoopSoundPlayer), CSPFT_STRING}, + {"startSpinSound", offsetof(WeaponFullDef, weapDef.startSpinSound), CSPFT_STRING}, + {"startSpinSoundPlayer", offsetof(WeaponFullDef, weapDef.startSpinSoundPlayer), CSPFT_STRING}, + {"stopSpinSound", offsetof(WeaponFullDef, weapDef.stopSpinSound), CSPFT_STRING}, + {"stopSpinSoundPlayer", offsetof(WeaponFullDef, weapDef.stopSpinSoundPlayer), CSPFT_STRING}, + {"applySpinPitch", offsetof(WeaponFullDef, weapDef.applySpinPitch), CSPFT_BOOL}, + {"introFireTime", offsetof(WeaponFullDef, weapDef.iIntroFireTime), CSPFT_MILLISECONDS}, + {"introFireLength", offsetof(WeaponFullDef, weapDef.iIntroFireLength), CSPFT_INT}, + {"fireTime", offsetof(WeaponFullDef, weapDef.iFireTime), CSPFT_MILLISECONDS}, + {"flourishTime", offsetof(WeaponFullDef, weapDef.iFlourishTime), CSPFT_MILLISECONDS}, + {"lastFireTime", offsetof(WeaponFullDef, weapDef.iLastFireTime), CSPFT_MILLISECONDS}, + {"rechamberTime", offsetof(WeaponFullDef, weapDef.iRechamberTime), CSPFT_MILLISECONDS}, + {"rechamberBoltTime", offsetof(WeaponFullDef, weapDef.iRechamberBoltTime), CSPFT_MILLISECONDS}, + {"holdFireTime", offsetof(WeaponFullDef, weapDef.iHoldFireTime), CSPFT_MILLISECONDS}, + {"burstFireDelay", offsetof(WeaponFullDef, weapDef.iBurstDelayTime), CSPFT_MILLISECONDS}, + {"detonateTime", offsetof(WeaponFullDef, weapDef.iDetonateTime), CSPFT_MILLISECONDS}, + {"detonateDelay", offsetof(WeaponFullDef, weapDef.iDetonateDelay), CSPFT_MILLISECONDS}, + {"meleeTime", offsetof(WeaponFullDef, weapDef.iMeleeTime), CSPFT_MILLISECONDS}, + {"meleeChargeTime", offsetof(WeaponFullDef, weapDef.meleeChargeTime), CSPFT_MILLISECONDS}, + {"reloadTime", offsetof(WeaponFullDef, weapVariantDef.iReloadTime), CSPFT_MILLISECONDS}, + {"reloadShowRocketTime", offsetof(WeaponFullDef, weapDef.reloadShowRocketTime), CSPFT_MILLISECONDS}, + {"reloadEmptyTime", offsetof(WeaponFullDef, weapVariantDef.iReloadEmptyTime), CSPFT_MILLISECONDS}, + {"reloadAddTime", offsetof(WeaponFullDef, weapDef.iReloadAddTime), CSPFT_MILLISECONDS}, + {"reloadEmptyAddTime", offsetof(WeaponFullDef, weapDef.iReloadEmptyAddTime), CSPFT_MILLISECONDS}, + {"reloadQuickAddTime", offsetof(WeaponFullDef, weapDef.iReloadQuickAddTime), CSPFT_MILLISECONDS}, + {"reloadQuickEmptyAddTime", offsetof(WeaponFullDef, weapDef.iReloadQuickEmptyAddTime), CSPFT_MILLISECONDS}, + {"reloadStartTime", offsetof(WeaponFullDef, weapDef.iReloadStartTime), CSPFT_MILLISECONDS}, + {"reloadStartAddTime", offsetof(WeaponFullDef, weapDef.iReloadStartAddTime), CSPFT_MILLISECONDS}, + {"reloadEndTime", offsetof(WeaponFullDef, weapDef.iReloadEndTime), CSPFT_MILLISECONDS}, + {"reloadQuickTime", offsetof(WeaponFullDef, weapVariantDef.iReloadQuickTime), CSPFT_MILLISECONDS}, + {"reloadQuickEmptyTime", offsetof(WeaponFullDef, weapVariantDef.iReloadQuickEmptyTime), CSPFT_MILLISECONDS}, + {"dropTime", offsetof(WeaponFullDef, weapDef.iDropTime), CSPFT_MILLISECONDS}, + {"raiseTime", offsetof(WeaponFullDef, weapDef.iRaiseTime), CSPFT_MILLISECONDS}, + {"altDropTime", offsetof(WeaponFullDef, weapDef.iAltDropTime), CSPFT_MILLISECONDS}, + {"altRaiseTime", offsetof(WeaponFullDef, weapVariantDef.iAltRaiseTime), CSPFT_MILLISECONDS}, + {"quickDropTime", offsetof(WeaponFullDef, weapDef.quickDropTime), CSPFT_MILLISECONDS}, + {"quickRaiseTime", offsetof(WeaponFullDef, weapDef.quickRaiseTime), CSPFT_MILLISECONDS}, + {"firstRaiseTime", offsetof(WeaponFullDef, weapDef.iFirstRaiseTime), CSPFT_MILLISECONDS}, + {"emptyRaiseTime", offsetof(WeaponFullDef, weapDef.iEmptyRaiseTime), CSPFT_MILLISECONDS}, + {"emptyDropTime", offsetof(WeaponFullDef, weapDef.iEmptyDropTime), CSPFT_MILLISECONDS}, + {"sprintInTime", offsetof(WeaponFullDef, weapDef.sprintInTime), CSPFT_MILLISECONDS}, + {"sprintLoopTime", offsetof(WeaponFullDef, weapDef.sprintLoopTime), CSPFT_MILLISECONDS}, + {"sprintOutTime", offsetof(WeaponFullDef, weapDef.sprintOutTime), CSPFT_MILLISECONDS}, + {"lowReadyInTime", offsetof(WeaponFullDef, weapDef.lowReadyInTime), CSPFT_MILLISECONDS}, + {"lowReadyLoopTime", offsetof(WeaponFullDef, weapDef.lowReadyLoopTime), CSPFT_MILLISECONDS}, + {"lowReadyOutTime", offsetof(WeaponFullDef, weapDef.lowReadyOutTime), CSPFT_MILLISECONDS}, + {"contFireInTime", offsetof(WeaponFullDef, weapDef.contFireInTime), CSPFT_MILLISECONDS}, + {"contFireLoopTime", offsetof(WeaponFullDef, weapDef.contFireLoopTime), CSPFT_MILLISECONDS}, + {"contFireOutTime", offsetof(WeaponFullDef, weapDef.contFireOutTime), CSPFT_MILLISECONDS}, + {"dtpInTime", offsetof(WeaponFullDef, weapDef.dtpInTime), CSPFT_MILLISECONDS}, + {"dtpLoopTime", offsetof(WeaponFullDef, weapDef.dtpLoopTime), CSPFT_MILLISECONDS}, + {"dtpOutTime", offsetof(WeaponFullDef, weapDef.dtpOutTime), CSPFT_MILLISECONDS}, + {"crawlInTime", offsetof(WeaponFullDef, weapDef.crawlInTime), CSPFT_MILLISECONDS}, + {"crawlForwardTime", offsetof(WeaponFullDef, weapDef.crawlForwardTime), CSPFT_MILLISECONDS}, + {"crawlBackTime", offsetof(WeaponFullDef, weapDef.crawlBackTime), CSPFT_MILLISECONDS}, + {"crawlRightTime", offsetof(WeaponFullDef, weapDef.crawlRightTime), CSPFT_MILLISECONDS}, + {"crawlLeftTime", offsetof(WeaponFullDef, weapDef.crawlLeftTime), CSPFT_MILLISECONDS}, + {"crawlOutFireTime", offsetof(WeaponFullDef, weapDef.crawlOutFireTime), CSPFT_MILLISECONDS}, + {"crawlOutTime", offsetof(WeaponFullDef, weapDef.crawlOutTime), CSPFT_MILLISECONDS}, + {"slideInTime", offsetof(WeaponFullDef, weapDef.slideInTime), CSPFT_MILLISECONDS}, + {"deployTime", offsetof(WeaponFullDef, weapDef.deployTime), CSPFT_MILLISECONDS}, + {"breakdownTime", offsetof(WeaponFullDef, weapDef.breakdownTime), CSPFT_MILLISECONDS}, + {"nightVisionWearTime", offsetof(WeaponFullDef, weapDef.nightVisionWearTime), CSPFT_MILLISECONDS}, + {"nightVisionWearTimeFadeOutEnd", offsetof(WeaponFullDef, weapDef.nightVisionWearTimeFadeOutEnd), CSPFT_MILLISECONDS}, + {"nightVisionWearTimePowerUp", offsetof(WeaponFullDef, weapDef.nightVisionWearTimePowerUp), CSPFT_MILLISECONDS}, + {"nightVisionRemoveTime", offsetof(WeaponFullDef, weapDef.nightVisionRemoveTime), CSPFT_MILLISECONDS}, + {"nightVisionRemoveTimePowerDown", offsetof(WeaponFullDef, weapDef.nightVisionRemoveTimePowerDown), CSPFT_MILLISECONDS}, + {"nightVisionRemoveTimeFadeInStart", offsetof(WeaponFullDef, weapDef.nightVisionRemoveTimeFadeInStart), CSPFT_MILLISECONDS}, + {"fuseTime", offsetof(WeaponFullDef, weapDef.fuseTime), CSPFT_MILLISECONDS}, + {"aifuseTime", offsetof(WeaponFullDef, weapDef.aiFuseTime), CSPFT_MILLISECONDS}, + {"lockOnRadius", offsetof(WeaponFullDef, weapDef.lockOnRadius), CSPFT_INT}, + {"lockOnSpeed", offsetof(WeaponFullDef, weapDef.lockOnSpeed), CSPFT_INT}, + {"requireLockonToFire", offsetof(WeaponFullDef, weapDef.requireLockonToFire), CSPFT_BOOL}, + {"noAdsWhenMagEmpty", offsetof(WeaponFullDef, weapDef.noAdsWhenMagEmpty), CSPFT_BOOL}, + {"avoidDropCleanup", offsetof(WeaponFullDef, weapDef.avoidDropCleanup), CSPFT_BOOL}, + {"stackFire", offsetof(WeaponFullDef, weapDef.stackFire), CSPFT_INT}, + {"stackFireSpread", offsetof(WeaponFullDef, weapDef.stackFireSpread), CSPFT_FLOAT}, + {"stackFireAccuracyDecay", offsetof(WeaponFullDef, weapDef.stackFireAccuracyDecay), CSPFT_FLOAT}, + {"stackSound", offsetof(WeaponFullDef, weapDef.stackSound), CSPFT_STRING}, + {"autoAimRange", offsetof(WeaponFullDef, weapDef.autoAimRange), CSPFT_FLOAT}, + {"aimAssistRange", offsetof(WeaponFullDef, weapDef.aimAssistRange), CSPFT_FLOAT}, + {"aimAssistRangeAds", offsetof(WeaponFullDef, weapVariantDef.fAimAssistRangeAds), CSPFT_FLOAT}, + {"mountableWeapon", offsetof(WeaponFullDef, weapDef.mountableWeapon), CSPFT_BOOL}, + {"aimPadding", offsetof(WeaponFullDef, weapDef.aimPadding), CSPFT_FLOAT}, + {"enemyCrosshairRange", offsetof(WeaponFullDef, weapDef.enemyCrosshairRange), CSPFT_FLOAT}, + {"crosshairColorChange", offsetof(WeaponFullDef, weapDef.crosshairColorChange), CSPFT_BOOL}, + {"moveSpeedScale", offsetof(WeaponFullDef, weapDef.moveSpeedScale), CSPFT_FLOAT}, + {"adsMoveSpeedScale", offsetof(WeaponFullDef, weapDef.adsMoveSpeedScale), CSPFT_FLOAT}, + {"sprintDurationScale", offsetof(WeaponFullDef, weapDef.sprintDurationScale), CSPFT_FLOAT}, + {"idleCrouchFactor", offsetof(WeaponFullDef, weapDef.fIdleCrouchFactor), CSPFT_FLOAT}, + {"idleProneFactor", offsetof(WeaponFullDef, weapDef.fIdleProneFactor), CSPFT_FLOAT}, + {"gunMaxPitch", offsetof(WeaponFullDef, weapDef.fGunMaxPitch), CSPFT_FLOAT}, + {"gunMaxYaw", offsetof(WeaponFullDef, weapDef.fGunMaxYaw), CSPFT_FLOAT}, + {"swayMaxAngle", offsetof(WeaponFullDef, weapDef.swayMaxAngle), CSPFT_FLOAT}, + {"swayLerpSpeed", offsetof(WeaponFullDef, weapDef.swayLerpSpeed), CSPFT_FLOAT}, + {"swayPitchScale", offsetof(WeaponFullDef, weapDef.swayPitchScale), CSPFT_FLOAT}, + {"swayYawScale", offsetof(WeaponFullDef, weapDef.swayYawScale), CSPFT_FLOAT}, + {"swayHorizScale", offsetof(WeaponFullDef, weapDef.swayHorizScale), CSPFT_FLOAT}, + {"swayVertScale", offsetof(WeaponFullDef, weapDef.swayVertScale), CSPFT_FLOAT}, + {"swayShellShockScale", offsetof(WeaponFullDef, weapDef.swayShellShockScale), CSPFT_FLOAT}, + {"adsSwayMaxAngle", offsetof(WeaponFullDef, weapDef.adsSwayMaxAngle), CSPFT_FLOAT}, + {"adsSwayLerpSpeed", offsetof(WeaponFullDef, weapDef.adsSwayLerpSpeed), CSPFT_FLOAT}, + {"adsSwayPitchScale", offsetof(WeaponFullDef, weapDef.adsSwayPitchScale), CSPFT_FLOAT}, + {"adsSwayYawScale", offsetof(WeaponFullDef, weapDef.adsSwayYawScale), CSPFT_FLOAT}, + {"adsSwayHorizScale", offsetof(WeaponFullDef, weapVariantDef.fAdsSwayHorizScale), CSPFT_FLOAT}, + {"adsSwayVertScale", offsetof(WeaponFullDef, weapVariantDef.fAdsSwayVertScale), CSPFT_FLOAT}, + {"meleeChargeRange", offsetof(WeaponFullDef, weapDef.meleeChargeRange), CSPFT_FLOAT}, + {"rifleBullet", offsetof(WeaponFullDef, weapDef.bRifleBullet), CSPFT_BOOL}, + {"armorPiercing", offsetof(WeaponFullDef, weapDef.armorPiercing), CSPFT_BOOL}, + {"boltAction", offsetof(WeaponFullDef, weapDef.bBoltAction), CSPFT_BOOL}, + {"shotsBeforeRechamber", offsetof(WeaponFullDef, weapDef.iShotsBeforeRechamber), CSPFT_INT}, + {"useAltTagFlash", offsetof(WeaponFullDef, weapDef.bUseAltTagFlash), CSPFT_BOOL}, + {"useAntiLagRewind", offsetof(WeaponFullDef, weapDef.bUseAntiLagRewind), CSPFT_BOOL}, + {"isCarriedKillstreakWeapon", offsetof(WeaponFullDef, weapDef.bIsCarriedKillstreakWeapon), CSPFT_BOOL}, + {"aimDownSight", offsetof(WeaponFullDef, weapDef.aimDownSight), CSPFT_BOOL}, + {"rechamberWhileAds", offsetof(WeaponFullDef, weapDef.bRechamberWhileAds), CSPFT_BOOL}, + {"reloadWhileAds", offsetof(WeaponFullDef, weapDef.bReloadWhileAds), CSPFT_BOOL}, + {"adsViewErrorMin", offsetof(WeaponFullDef, weapDef.adsViewErrorMin), CSPFT_FLOAT}, + {"adsViewErrorMax", offsetof(WeaponFullDef, weapDef.adsViewErrorMax), CSPFT_FLOAT}, + {"clipOnly", offsetof(WeaponFullDef, weapDef.bClipOnly), CSPFT_BOOL}, + {"canUseInVehicle", offsetof(WeaponFullDef, weapDef.bCanUseInVehicle), CSPFT_BOOL}, + {"noDropsOrRaises", offsetof(WeaponFullDef, weapDef.bNoDropsOrRaises), CSPFT_BOOL}, + {"cookOffHold", offsetof(WeaponFullDef, weapDef.bCookOffHold), CSPFT_BOOL}, + {"adsFire", offsetof(WeaponFullDef, weapDef.adsFireOnly), CSPFT_BOOL}, + {"cancelAutoHolsterWhenEmpty", offsetof(WeaponFullDef, weapDef.cancelAutoHolsterWhenEmpty), CSPFT_BOOL}, + {"suppressAmmoReserveDisplay", offsetof(WeaponFullDef, weapDef.suppressAmmoReserveDisplay), CSPFT_BOOL}, + {"laserSight", offsetof(WeaponFullDef, weapDef.laserSight), CSPFT_BOOL}, + {"laserSightDuringNightvision", offsetof(WeaponFullDef, weapDef.laserSightDuringNightvision), CSPFT_BOOL}, + {"bayonet", offsetof(WeaponFullDef, weapDef.bHasBayonet), CSPFT_BOOL}, + {"dualWield", offsetof(WeaponFullDef, weapDef.bDualWield), CSPFT_BOOL}, + {"hideThirdPerson", offsetof(WeaponFullDef, weapDef.bHideThirdPerson), CSPFT_BOOL}, + {"explodeOnGround", offsetof(WeaponFullDef, weapDef.bExplodeOnGround), CSPFT_BOOL}, + {"throwBack", offsetof(WeaponFullDef, weapDef.bThrowBack), CSPFT_BOOL}, + {"retrievable", offsetof(WeaponFullDef, weapDef.bRetrievable), CSPFT_BOOL}, + {"dieOnRespawn", offsetof(WeaponFullDef, weapDef.bDieOnRespawn), CSPFT_BOOL}, + {"noThirdPersonDropsOrRaises", offsetof(WeaponFullDef, weapDef.bNoThirdPersonDropsOrRaises), CSPFT_BOOL}, + {"continuousFire", offsetof(WeaponFullDef, weapDef.bContinuousFire), CSPFT_BOOL}, + {"useAsMelee", offsetof(WeaponFullDef, weapDef.bUseAsMelee), CSPFT_BOOL}, + {"antiQuickScope", offsetof(WeaponFullDef, weapVariantDef.bAntiQuickScope), CSPFT_BOOL}, + {"noPing", offsetof(WeaponFullDef, weapDef.bNoPing), CSPFT_BOOL}, + {"forceBounce", offsetof(WeaponFullDef, weapDef.bForceBounce), CSPFT_BOOL}, + {"useDroppedModelAsStowed", offsetof(WeaponFullDef, weapDef.bUseDroppedModelAsStowed), CSPFT_BOOL}, + {"noQuickDropWhenEmpty", offsetof(WeaponFullDef, weapDef.bNoQuickDropWhenEmpty), CSPFT_BOOL}, + {"keepCrosshairWhenADS", offsetof(WeaponFullDef, weapDef.bKeepCrosshairWhenADS), CSPFT_BOOL}, + {"useOnlyAltWeaoponHideTagsInAltMode", offsetof(WeaponFullDef, weapDef.bUseOnlyAltWeaoponHideTagsInAltMode), CSPFT_BOOL}, + {"altWeaponAdsOnly", offsetof(WeaponFullDef, weapDef.bAltWeaponAdsOnly), CSPFT_BOOL}, + {"altWeaponDisableSwitching", offsetof(WeaponFullDef, weapDef.bAltWeaponDisableSwitching), CSPFT_BOOL}, + {"killIcon", offsetof(WeaponFullDef, weapDef.killIcon), CSPFT_MATERIAL}, + {"killIconRatio", offsetof(WeaponFullDef, weapDef.killIconRatio), WFT_ICONRATIO_KILL}, + {"flipKillIcon", offsetof(WeaponFullDef, weapDef.flipKillIcon), CSPFT_BOOL}, + {"dpadIcon", offsetof(WeaponFullDef, weapVariantDef.dpadIcon), CSPFT_MATERIAL}, + {"dpadIconRatio", offsetof(WeaponFullDef, weapVariantDef.dpadIconRatio), WFT_ICONRATIO_DPAD}, + {"noAmmoOnDpadIcon", offsetof(WeaponFullDef, weapVariantDef.noAmmoOnDpadIcon), CSPFT_BOOL}, + {"noPartialReload", offsetof(WeaponFullDef, weapDef.bNoPartialReload), CSPFT_BOOL}, + {"segmentedReload", offsetof(WeaponFullDef, weapDef.bSegmentedReload), CSPFT_BOOL}, + {"noADSAutoReload", offsetof(WeaponFullDef, weapDef.bNoADSAutoReload), CSPFT_BOOL}, + {"reloadAmmoAdd", offsetof(WeaponFullDef, weapDef.iReloadAmmoAdd), CSPFT_INT}, + {"reloadStartAdd", offsetof(WeaponFullDef, weapDef.iReloadStartAdd), CSPFT_INT}, + {"attachmentUnique", offsetof(WeaponFullDef, weapVariantDef.szAttachmentUnique), CSPFT_STRING}, + {"altWeapon", offsetof(WeaponFullDef, weapVariantDef.szAltWeaponName), CSPFT_STRING}, + {"DualWieldWeapon", offsetof(WeaponFullDef, weapDef.szDualWieldWeaponName), CSPFT_STRING}, + {"grenadeWeapon", offsetof(WeaponFullDef, weapDef.szSpawnedGrenadeWeaponName), CSPFT_STRING}, + {"dropAmmoMin", offsetof(WeaponFullDef, weapDef.iDropAmmoMin), CSPFT_INT}, + {"dropAmmoMax", offsetof(WeaponFullDef, weapDef.iDropAmmoMax), CSPFT_INT}, + {"dropClipAmmoMin", offsetof(WeaponFullDef, weapDef.iDropClipAmmoMin), CSPFT_INT}, + {"dropClipAmmoMax", offsetof(WeaponFullDef, weapDef.iDropClipAmmoMax), CSPFT_INT}, + {"blocksProne", offsetof(WeaponFullDef, weapDef.blocksProne), CSPFT_BOOL}, + {"silenced", offsetof(WeaponFullDef, weapVariantDef.bSilenced), CSPFT_BOOL}, + {"dualMag", offsetof(WeaponFullDef, weapVariantDef.bDualMag), CSPFT_BOOL}, + {"infrared", offsetof(WeaponFullDef, weapVariantDef.bInfraRed), CSPFT_BOOL}, + {"tvguided", offsetof(WeaponFullDef, weapVariantDef.bTVGuided), CSPFT_BOOL}, + {"airburstWeapon", offsetof(WeaponFullDef, weapDef.bAirburstWeapon), CSPFT_BOOL}, + {"perks1", offsetof(WeaponFullDef, weapVariantDef.perks[0]), CSPFT_UINT}, + {"perks0", offsetof(WeaponFullDef, weapVariantDef.perks[1]), CSPFT_UINT}, + {"isRollingGrenade", offsetof(WeaponFullDef, weapDef.isRollingGrenade), CSPFT_QBOOLEAN}, + {"useBallisticPrediction", offsetof(WeaponFullDef, weapDef.useBallisticPrediction), CSPFT_QBOOLEAN}, + {"isValuable", offsetof(WeaponFullDef, weapDef.isValuable), CSPFT_QBOOLEAN}, + {"isTacticalInsertion", offsetof(WeaponFullDef, weapDef.isTacticalInsertion), CSPFT_QBOOLEAN}, + {"isReviveWeapon", offsetof(WeaponFullDef, weapDef.isReviveWeapon), CSPFT_BOOL}, + {"bUseRigidBodyOnVehicle", offsetof(WeaponFullDef, weapDef.bUseRigidBodyOnVehicle), CSPFT_BOOL}, + {"showIndicator", offsetof(WeaponFullDef, weapDef.bShowIndicator), CSPFT_BOOL}, + {"explosionRadius", offsetof(WeaponFullDef, weapDef.iExplosionRadius), CSPFT_INT}, + {"explosionRadiusMin", offsetof(WeaponFullDef, weapDef.iExplosionRadiusMin), CSPFT_INT}, + {"indicatorRadius", offsetof(WeaponFullDef, weapDef.iIndicatorRadius), CSPFT_INT}, + {"explosionInnerDamage", offsetof(WeaponFullDef, weapDef.iExplosionInnerDamage), CSPFT_INT}, + {"explosionOuterDamage", offsetof(WeaponFullDef, weapDef.iExplosionOuterDamage), CSPFT_INT}, + {"damageConeAngle", offsetof(WeaponFullDef, weapDef.damageConeAngle), CSPFT_FLOAT}, + {"projectileSpeed", offsetof(WeaponFullDef, weapDef.iProjectileSpeed), CSPFT_INT}, + {"projectileSpeedRelativeUp", offsetof(WeaponFullDef, weapDef.iProjectileSpeedRelativeUp), CSPFT_INT}, + {"projectileSpeedUp", offsetof(WeaponFullDef, weapDef.iProjectileSpeedUp), CSPFT_INT}, + {"projectileSpeedForward", offsetof(WeaponFullDef, weapDef.iProjectileSpeedForward), CSPFT_INT}, + {"projectileTakeParentVel", offsetof(WeaponFullDef, weapDef.fProjectileTakeParentVelocity), CSPFT_FLOAT}, + {"projectileActivateDist", offsetof(WeaponFullDef, weapDef.iProjectileActivateDist), CSPFT_INT}, + {"projectileLifetime", offsetof(WeaponFullDef, weapDef.projLifetime), CSPFT_FLOAT}, + {"timeToAccelerate", offsetof(WeaponFullDef, weapDef.timeToAccelerate), CSPFT_FLOAT}, + {"projectileCurvature", offsetof(WeaponFullDef, weapDef.projectileCurvature), CSPFT_FLOAT}, + {"projectileModel", offsetof(WeaponFullDef, weapDef.projectileModel), CSPFT_XMODEL}, + {"projExplosionType", offsetof(WeaponFullDef, weapDef.projExplosion), WFT_PROJ_EXPLOSION}, + {"projExplosionEffect", offsetof(WeaponFullDef, weapDef.projExplosionEffect), CSPFT_FX}, + {"projExplosionEffectForceNormalUp", offsetof(WeaponFullDef, weapDef.projExplosionEffectForceNormalUp), CSPFT_BOOL}, + {"projExplosionEffect2", offsetof(WeaponFullDef, weapDef.projExplosionEffect2), CSPFT_FX}, + {"projExplosionEffect2ForceNormalUp", offsetof(WeaponFullDef, weapDef.projExplosionEffect2ForceNormalUp), CSPFT_BOOL}, + {"projExplosionEffect3", offsetof(WeaponFullDef, weapDef.projExplosionEffect3), CSPFT_FX}, + {"projExplosionEffect3ForceNormalUp", offsetof(WeaponFullDef, weapDef.projExplosionEffect3ForceNormalUp), CSPFT_BOOL}, + {"projExplosionEffect4", offsetof(WeaponFullDef, weapDef.projExplosionEffect4), CSPFT_FX}, + {"projExplosionEffect4ForceNormalUp", offsetof(WeaponFullDef, weapDef.projExplosionEffect4ForceNormalUp), CSPFT_BOOL}, + {"projExplosionEffect5", offsetof(WeaponFullDef, weapDef.projExplosionEffect5), CSPFT_FX}, + {"projExplosionEffect5ForceNormalUp", offsetof(WeaponFullDef, weapDef.projExplosionEffect5ForceNormalUp), CSPFT_BOOL}, + {"projExplosionSound", offsetof(WeaponFullDef, weapDef.projExplosionSound), CSPFT_STRING}, + {"projDudEffect", offsetof(WeaponFullDef, weapDef.projDudEffect), CSPFT_FX}, + {"projDudSound", offsetof(WeaponFullDef, weapDef.projDudSound), CSPFT_STRING}, + {"projImpactExplode", offsetof(WeaponFullDef, weapDef.bProjImpactExplode), CSPFT_BOOL}, + {"sentientImpactExplode", offsetof(WeaponFullDef, weapDef.bProjSentientImpactExplode), CSPFT_BOOL}, + {"explodeWhenStationary", offsetof(WeaponFullDef, weapDef.bProjExplodeWhenStationary), CSPFT_BOOL}, + {"bulletImpactExplode", offsetof(WeaponFullDef, weapDef.bBulletImpactExplode), CSPFT_BOOL}, + {"mortarShellSound", offsetof(WeaponFullDef, weapDef.mortarShellSound), CSPFT_STRING}, + {"tankShellSound", offsetof(WeaponFullDef, weapDef.tankShellSound), CSPFT_STRING}, + {"stickiness", offsetof(WeaponFullDef, weapDef.stickiness), WFT_STICKINESS}, + {"rotateType", offsetof(WeaponFullDef, weapDef.rotateType), WFT_ROTATETYPE}, + {"hasDetonator", offsetof(WeaponFullDef, weapDef.hasDetonator), CSPFT_BOOL}, + {"plantable", offsetof(WeaponFullDef, weapDef.plantable), CSPFT_BOOL}, + {"timedDetonation", offsetof(WeaponFullDef, weapDef.timedDetonation), CSPFT_BOOL}, + {"noCrumpleMissile", offsetof(WeaponFullDef, weapDef.bNoCrumpleMissile), CSPFT_BOOL}, + {"rotate", offsetof(WeaponFullDef, weapDef.rotate), CSPFT_BOOL}, + {"keepRolling", offsetof(WeaponFullDef, weapDef.bKeepRolling), CSPFT_BOOL}, + {"holdButtonToThrow", offsetof(WeaponFullDef, weapDef.holdButtonToThrow), CSPFT_BOOL}, + {"offhandHoldIsCancelable", offsetof(WeaponFullDef, weapDef.offhandHoldIsCancelable), CSPFT_BOOL}, + {"freezeMovementWhenFiring", offsetof(WeaponFullDef, weapDef.freezeMovementWhenFiring), CSPFT_BOOL}, + {"lowAmmoWarningThreshold", offsetof(WeaponFullDef, weapDef.lowAmmoWarningThreshold), CSPFT_FLOAT}, + {"explosionTag", offsetof(WeaponFullDef, weapDef.explosionTag), WFT_EXPLOSION_TAG}, + {"bDisallowAtMatchStart", offsetof(WeaponFullDef, weapDef.bDisallowAtMatchStart), CSPFT_BOOL}, + {"isCameraSensor", offsetof(WeaponFullDef, weapDef.isCameraSensor), CSPFT_BOOL}, + {"isAcousticSensor", offsetof(WeaponFullDef, weapDef.isAcousticSensor), CSPFT_BOOL}, + {"isLaserSensor", offsetof(WeaponFullDef, weapDef.isLaserSensor), CSPFT_BOOL}, + {"isHoldUseGrenade", offsetof(WeaponFullDef, weapDef.isHoldUseGrenade), CSPFT_BOOL}, + {"parallelDefaultBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_DEFAULT]), CSPFT_FLOAT}, + {"parallelAsphaltBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_ASPHALT]), CSPFT_FLOAT}, + {"parallelBarkBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_BARK]), CSPFT_FLOAT}, + {"parallelBrickBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_BRICK]), CSPFT_FLOAT}, + {"parallelCarpetBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_CARPET]), CSPFT_FLOAT}, + {"parallelCeramicBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_CERAMIC]), CSPFT_FLOAT}, + {"parallelClothBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_CLOTH]), CSPFT_FLOAT}, + {"parallelConcreteBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_CONCRETE]), CSPFT_FLOAT}, + {"parallelCushionBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_CUSHION]), CSPFT_FLOAT}, + {"parallelDirtBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_DIRT]), CSPFT_FLOAT}, + {"parallelFleshBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_FLESH]), CSPFT_FLOAT}, + {"parallelFoliageBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_FOLIAGE]), CSPFT_FLOAT}, + {"parallelFruitBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_FRUIT]), CSPFT_FLOAT}, + {"parallelGlassBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_GLASS]), CSPFT_FLOAT}, + {"parallelGrassBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_GRASS]), CSPFT_FLOAT}, + {"parallelGravelBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_GRAVEL]), CSPFT_FLOAT}, + {"parallelIceBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_ICE]), CSPFT_FLOAT}, + {"parallelMetalBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_METAL]), CSPFT_FLOAT}, + {"parallelMudBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_MUD]), CSPFT_FLOAT}, + {"parallelPaintedMetalBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_PAINTED_METAL]), CSPFT_FLOAT}, + {"parallelPaperBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_PAPER]), CSPFT_FLOAT}, + {"parallelPlasterBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_PLASTER]), CSPFT_FLOAT}, + {"parallelPlasticBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_PLASTIC]), CSPFT_FLOAT}, + {"parallelRockBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_ROCK]), CSPFT_FLOAT}, + {"parallelRubberBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_RUBBER]), CSPFT_FLOAT}, + {"parallelSandBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_SAND]), CSPFT_FLOAT}, + {"parallelSnowBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_SNOW]), CSPFT_FLOAT}, + {"parallelWaterBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_WATER]), CSPFT_FLOAT}, + {"parallelWoodBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_WOOD]), CSPFT_FLOAT}, + {"parallelRiotShieldBounce", offsetof(WeaponFullDef, parallelBounce[SURF_TYPE_RIOT_SHIELD]), CSPFT_FLOAT}, + {"perpendicularDefaultBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_DEFAULT]), CSPFT_FLOAT}, + {"perpendicularAsphaltBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_ASPHALT]), CSPFT_FLOAT}, + {"perpendicularBarkBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_BARK]), CSPFT_FLOAT}, + {"perpendicularBrickBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_BRICK]), CSPFT_FLOAT}, + {"perpendicularCarpetBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_CARPET]), CSPFT_FLOAT}, + {"perpendicularCeramicBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_CERAMIC]), CSPFT_FLOAT}, + {"perpendicularClothBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_CLOTH]), CSPFT_FLOAT}, + {"perpendicularConcreteBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_CONCRETE]), CSPFT_FLOAT}, + {"perpendicularCushionBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_CUSHION]), CSPFT_FLOAT}, + {"perpendicularDirtBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_DIRT]), CSPFT_FLOAT}, + {"perpendicularFleshBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_FLESH]), CSPFT_FLOAT}, + {"perpendicularFoliageBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_FOLIAGE]), CSPFT_FLOAT}, + {"perpendicularFruitBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_FRUIT]), CSPFT_FLOAT}, + {"perpendicularGlassBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_GLASS]), CSPFT_FLOAT}, + {"perpendicularGrassBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_GRASS]), CSPFT_FLOAT}, + {"perpendicularGravelBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_GRAVEL]), CSPFT_FLOAT}, + {"perpendicularIceBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_ICE]), CSPFT_FLOAT}, + {"perpendicularMetalBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_METAL]), CSPFT_FLOAT}, + {"perpendicularMudBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_MUD]), CSPFT_FLOAT}, + {"perpendicularPaintedMetalBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_PAINTED_METAL]), CSPFT_FLOAT}, + {"perpendicularPaperBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_PAPER]), CSPFT_FLOAT}, + {"perpendicularPlasterBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_PLASTER]), CSPFT_FLOAT}, + {"perpendicularPlasticBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_PLASTIC]), CSPFT_FLOAT}, + {"perpendicularRockBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_ROCK]), CSPFT_FLOAT}, + {"perpendicularRubberBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_RUBBER]), CSPFT_FLOAT}, + {"perpendicularSandBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_SAND]), CSPFT_FLOAT}, + {"perpendicularSnowBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_SNOW]), CSPFT_FLOAT}, + {"perpendicularWaterBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_WATER]), CSPFT_FLOAT}, + {"perpendicularWoodBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_WOOD]), CSPFT_FLOAT}, + {"perpendicularRiotShieldBounce", offsetof(WeaponFullDef, perpendicularBounce[SURF_TYPE_RIOT_SHIELD]), CSPFT_FLOAT}, + {"projTrailEffect", offsetof(WeaponFullDef, weapDef.projTrailEffect), CSPFT_FX}, + {"projectileRed", offsetof(WeaponFullDef, weapDef.vProjectileColor.x), CSPFT_FLOAT}, + {"projectileGreen", offsetof(WeaponFullDef, weapDef.vProjectileColor.y), CSPFT_FLOAT}, + {"projectileBlue", offsetof(WeaponFullDef, weapDef.vProjectileColor.z), CSPFT_FLOAT}, + {"guidedMissileType", offsetof(WeaponFullDef, weapDef.guidedMissileType), WFT_GUIDED_MISSILE_TYPE}, + {"maxSteeringAccel", offsetof(WeaponFullDef, weapDef.maxSteeringAccel), CSPFT_FLOAT}, + {"projIgnitionDelay", offsetof(WeaponFullDef, weapDef.projIgnitionDelay), CSPFT_INT}, + {"projIgnitionEffect", offsetof(WeaponFullDef, weapDef.projIgnitionEffect), CSPFT_FX}, + {"projIgnitionSound", offsetof(WeaponFullDef, weapDef.projIgnitionSound), CSPFT_STRING}, + {"tagFx_preparationEffect", offsetof(WeaponFullDef, weapDef.tagFx_preparationEffect), CSPFT_FX}, + {"tagFlash_preparationEffect", offsetof(WeaponFullDef, weapDef.tagFlash_preparationEffect), CSPFT_FX}, + {"adsTransInTime", offsetof(WeaponFullDef, weapVariantDef.iAdsTransInTime), CSPFT_MILLISECONDS}, + {"adsTransOutTime", offsetof(WeaponFullDef, weapVariantDef.iAdsTransOutTime), CSPFT_MILLISECONDS}, + {"adsIdleAmount", offsetof(WeaponFullDef, weapDef.fAdsIdleAmount), CSPFT_FLOAT}, + {"adsIdleSpeed", offsetof(WeaponFullDef, weapDef.adsIdleSpeed), CSPFT_FLOAT}, + {"adsZoomFov1", offsetof(WeaponFullDef, weapVariantDef.fAdsZoomFov1), CSPFT_FLOAT}, + {"adsZoomFov2", offsetof(WeaponFullDef, weapVariantDef.fAdsZoomFov2), CSPFT_FLOAT}, + {"adsZoomFov3", offsetof(WeaponFullDef, weapVariantDef.fAdsZoomFov3), CSPFT_FLOAT}, + {"adsZoomInFrac", offsetof(WeaponFullDef, weapVariantDef.fAdsZoomInFrac), CSPFT_FLOAT}, + {"adsZoomOutFrac", offsetof(WeaponFullDef, weapVariantDef.fAdsZoomOutFrac), CSPFT_FLOAT}, + {"adsOverlayShader", offsetof(WeaponFullDef, weapVariantDef.overlayMaterial), CSPFT_MATERIAL_STREAM}, + {"adsOverlayShaderLowRes", offsetof(WeaponFullDef, weapVariantDef.overlayMaterialLowRes), CSPFT_MATERIAL_STREAM}, + {"adsOverlayReticle", offsetof(WeaponFullDef, weapDef.overlayReticle), WFT_OVERLAYRETICLE}, + {"adsOverlayInterface", offsetof(WeaponFullDef, weapDef.overlayInterface), WFT_OVERLAYINTERFACE}, + {"adsOverlayWidth", offsetof(WeaponFullDef, weapDef.overlayWidth), CSPFT_FLOAT}, + {"adsOverlayHeight", offsetof(WeaponFullDef, weapDef.overlayHeight), CSPFT_FLOAT}, + {"adsOverlayAlphaScale", offsetof(WeaponFullDef, weapVariantDef.fOverlayAlphaScale), CSPFT_FLOAT}, + {"adsBobFactor", offsetof(WeaponFullDef, weapDef.fAdsBobFactor), CSPFT_FLOAT}, + {"adsViewBobMult", offsetof(WeaponFullDef, weapDef.fAdsViewBobMult), CSPFT_FLOAT}, + {"holdBreathToSteady", offsetof(WeaponFullDef, weapDef.bHoldBreathToSteady), CSPFT_BOOL}, + {"adsAimPitch", offsetof(WeaponFullDef, weapDef.fAdsAimPitch), CSPFT_FLOAT}, + {"adsCrosshairInFrac", offsetof(WeaponFullDef, weapDef.fAdsCrosshairInFrac), CSPFT_FLOAT}, + {"adsCrosshairOutFrac", offsetof(WeaponFullDef, weapDef.fAdsCrosshairOutFrac), CSPFT_FLOAT}, + {"adsReloadTransTime", offsetof(WeaponFullDef, weapDef.iPositionReloadTransTime), CSPFT_MILLISECONDS}, + {"adsGunKickReducedKickBullets", offsetof(WeaponFullDef, weapDef.adsGunKickReducedKickBullets), CSPFT_INT}, + {"adsGunKickReducedKickPercent", offsetof(WeaponFullDef, weapDef.adsGunKickReducedKickPercent), CSPFT_FLOAT}, + {"adsGunKickPitchMin", offsetof(WeaponFullDef, weapDef.fAdsGunKickPitchMin), CSPFT_FLOAT}, + {"adsGunKickPitchMax", offsetof(WeaponFullDef, weapDef.fAdsGunKickPitchMax), CSPFT_FLOAT}, + {"adsGunKickYawMin", offsetof(WeaponFullDef, weapDef.fAdsGunKickYawMin), CSPFT_FLOAT}, + {"adsGunKickYawMax", offsetof(WeaponFullDef, weapDef.fAdsGunKickYawMax), CSPFT_FLOAT}, + {"adsGunKickAccel", offsetof(WeaponFullDef, weapDef.fAdsGunKickAccel), CSPFT_FLOAT}, + {"adsGunKickSpeedMax", offsetof(WeaponFullDef, weapDef.fAdsGunKickSpeedMax), CSPFT_FLOAT}, + {"adsGunKickSpeedDecay", offsetof(WeaponFullDef, weapDef.fAdsGunKickSpeedDecay), CSPFT_FLOAT}, + {"adsGunKickStaticDecay", offsetof(WeaponFullDef, weapDef.fAdsGunKickStaticDecay), CSPFT_FLOAT}, + {"adsViewKickPitchMin", offsetof(WeaponFullDef, weapDef.fAdsViewKickPitchMin), CSPFT_FLOAT}, + {"adsViewKickPitchMax", offsetof(WeaponFullDef, weapDef.fAdsViewKickPitchMax), CSPFT_FLOAT}, + {"adsViewKickMinMagnitude", offsetof(WeaponFullDef, weapDef.fAdsViewKickMinMagnitude), CSPFT_FLOAT}, + {"adsViewKickYawMin", offsetof(WeaponFullDef, weapDef.fAdsViewKickYawMin), CSPFT_FLOAT}, + {"adsViewKickYawMax", offsetof(WeaponFullDef, weapDef.fAdsViewKickYawMax), CSPFT_FLOAT}, + {"adsRecoilReductionRate", offsetof(WeaponFullDef, weapDef.fAdsRecoilReductionRate), CSPFT_FLOAT}, + {"adsRecoilReductionLimit", offsetof(WeaponFullDef, weapDef.fAdsRecoilReductionLimit), CSPFT_FLOAT}, + {"adsRecoilReturnRate", offsetof(WeaponFullDef, weapDef.fAdsRecoilReturnRate), CSPFT_FLOAT}, + {"adsViewKickCenterSpeed", offsetof(WeaponFullDef, weapVariantDef.fAdsViewKickCenterSpeed), CSPFT_FLOAT}, + {"adsViewKickCenterDuckedScale", offsetof(WeaponFullDef, weapDef.fAdsViewKickCenterDuckedScale), CSPFT_FLOAT}, + {"adsViewKickCenterProneScale", offsetof(WeaponFullDef, weapDef.fAdsViewKickCenterProneScale), CSPFT_FLOAT}, + {"adsSpread", offsetof(WeaponFullDef, weapDef.fAdsSpread), CSPFT_FLOAT}, + {"guidedMissileType", offsetof(WeaponFullDef, weapDef.guidedMissileType), WFT_GUIDED_MISSILE_TYPE}, + {"antiQuickScopeTime", offsetof(WeaponFullDef, weapDef.fAntiQuickScopeTime), CSPFT_FLOAT}, + {"antiQuickScopeScale", offsetof(WeaponFullDef, weapDef.fAntiQuickScopeScale), CSPFT_FLOAT}, + {"antiQuickScopeSpreadMultiplier", offsetof(WeaponFullDef, weapDef.fAntiQuickScopeSpreadMultiplier), CSPFT_FLOAT}, + {"antiQuickScopeSpreadMax", offsetof(WeaponFullDef, weapDef.fAntiQuickScopeSpreadMax), CSPFT_FLOAT}, + {"antiQuickScopeSwayFactor", offsetof(WeaponFullDef, weapDef.fAntiQuickScopeSwayFactor), CSPFT_FLOAT}, + {"hipSpreadStandMin", offsetof(WeaponFullDef, weapDef.fHipSpreadStandMin), CSPFT_FLOAT}, + {"hipSpreadDuckedMin", offsetof(WeaponFullDef, weapDef.fHipSpreadDuckedMin), CSPFT_FLOAT}, + {"hipSpreadProneMin", offsetof(WeaponFullDef, weapDef.fHipSpreadProneMin), CSPFT_FLOAT}, + {"hipSpreadMax", offsetof(WeaponFullDef, weapDef.hipSpreadStandMax), CSPFT_FLOAT}, + {"hipSpreadDuckedMax", offsetof(WeaponFullDef, weapDef.hipSpreadDuckedMax), CSPFT_FLOAT}, + {"hipSpreadProneMax", offsetof(WeaponFullDef, weapDef.hipSpreadProneMax), CSPFT_FLOAT}, + {"hipSpreadDecayRate", offsetof(WeaponFullDef, weapDef.fHipSpreadDecayRate), CSPFT_FLOAT}, + {"hipSpreadFireAdd", offsetof(WeaponFullDef, weapDef.fHipSpreadFireAdd), CSPFT_FLOAT}, + {"hipSpreadTurnAdd", offsetof(WeaponFullDef, weapDef.fHipSpreadTurnAdd), CSPFT_FLOAT}, + {"hipSpreadMoveAdd", offsetof(WeaponFullDef, weapDef.fHipSpreadMoveAdd), CSPFT_FLOAT}, + {"hipSpreadDuckedDecay", offsetof(WeaponFullDef, weapDef.fHipSpreadDuckedDecay), CSPFT_FLOAT}, + {"hipSpreadProneDecay", offsetof(WeaponFullDef, weapDef.fHipSpreadProneDecay), CSPFT_FLOAT}, + {"hipReticleSidePos", offsetof(WeaponFullDef, weapDef.fHipReticleSidePos), CSPFT_FLOAT}, + {"hipIdleAmount", offsetof(WeaponFullDef, weapDef.fHipIdleAmount), CSPFT_FLOAT}, + {"hipIdleSpeed", offsetof(WeaponFullDef, weapDef.hipIdleSpeed), CSPFT_FLOAT}, + {"hipGunKickReducedKickBullets", offsetof(WeaponFullDef, weapDef.hipGunKickReducedKickBullets), CSPFT_INT}, + {"hipGunKickReducedKickPercent", offsetof(WeaponFullDef, weapDef.hipGunKickReducedKickPercent), CSPFT_FLOAT}, + {"hipGunKickPitchMin", offsetof(WeaponFullDef, weapDef.fHipGunKickPitchMin), CSPFT_FLOAT}, + {"hipGunKickPitchMax", offsetof(WeaponFullDef, weapDef.fHipGunKickPitchMax), CSPFT_FLOAT}, + {"hipGunKickYawMin", offsetof(WeaponFullDef, weapDef.fHipGunKickYawMin), CSPFT_FLOAT}, + {"hipGunKickYawMax", offsetof(WeaponFullDef, weapDef.fHipGunKickYawMax), CSPFT_FLOAT}, + {"hipGunKickAccel", offsetof(WeaponFullDef, weapDef.fHipGunKickAccel), CSPFT_FLOAT}, + {"hipGunKickSpeedMax", offsetof(WeaponFullDef, weapDef.fHipGunKickSpeedMax), CSPFT_FLOAT}, + {"hipGunKickSpeedDecay", offsetof(WeaponFullDef, weapDef.fHipGunKickSpeedDecay), CSPFT_FLOAT}, + {"hipGunKickStaticDecay", offsetof(WeaponFullDef, weapDef.fHipGunKickStaticDecay), CSPFT_FLOAT}, + {"hipViewKickPitchMin", offsetof(WeaponFullDef, weapDef.fHipViewKickPitchMin), CSPFT_FLOAT}, + {"hipViewKickPitchMax", offsetof(WeaponFullDef, weapDef.fHipViewKickPitchMax), CSPFT_FLOAT}, + {"hipViewKickMinMagnitude", offsetof(WeaponFullDef, weapDef.fHipViewKickMinMagnitude), CSPFT_FLOAT}, + {"hipViewKickYawMin", offsetof(WeaponFullDef, weapDef.fHipViewKickYawMin), CSPFT_FLOAT}, + {"hipViewKickYawMax", offsetof(WeaponFullDef, weapDef.fHipViewKickYawMax), CSPFT_FLOAT}, + {"hipViewKickCenterSpeed", offsetof(WeaponFullDef, weapVariantDef.fHipViewKickCenterSpeed), CSPFT_FLOAT}, + {"leftArc", offsetof(WeaponFullDef, weapDef.leftArc), CSPFT_FLOAT}, + {"rightArc", offsetof(WeaponFullDef, weapDef.rightArc), CSPFT_FLOAT}, + {"topArc", offsetof(WeaponFullDef, weapDef.topArc), CSPFT_FLOAT}, + {"bottomArc", offsetof(WeaponFullDef, weapDef.bottomArc), CSPFT_FLOAT}, + {"accuracy", offsetof(WeaponFullDef, weapDef.accuracy), CSPFT_FLOAT}, + {"aiSpread", offsetof(WeaponFullDef, weapDef.aiSpread), CSPFT_FLOAT}, + {"playerSpread", offsetof(WeaponFullDef, weapDef.playerSpread), CSPFT_FLOAT}, + {"maxVertTurnSpeed", offsetof(WeaponFullDef, weapDef.maxTurnSpeed[0]), CSPFT_FLOAT}, + {"maxHorTurnSpeed", offsetof(WeaponFullDef, weapDef.maxTurnSpeed[1]), CSPFT_FLOAT}, + {"minVertTurnSpeed", offsetof(WeaponFullDef, weapDef.minTurnSpeed[0]), CSPFT_FLOAT}, + {"minHorTurnSpeed", offsetof(WeaponFullDef, weapDef.minTurnSpeed[1]), CSPFT_FLOAT}, + {"pitchConvergenceTime", offsetof(WeaponFullDef, weapDef.pitchConvergenceTime), CSPFT_FLOAT}, + {"yawConvergenceTime", offsetof(WeaponFullDef, weapDef.yawConvergenceTime), CSPFT_FLOAT}, + {"suppressionTime", offsetof(WeaponFullDef, weapDef.suppressTime), CSPFT_FLOAT}, + {"maxRange", offsetof(WeaponFullDef, weapDef.maxRange), CSPFT_FLOAT}, + {"animHorRotateInc", offsetof(WeaponFullDef, weapDef.fAnimHorRotateInc), CSPFT_FLOAT}, + {"playerPositionDist", offsetof(WeaponFullDef, weapDef.fPlayerPositionDist), CSPFT_FLOAT}, + {"stance", offsetof(WeaponFullDef, weapDef.stance), WFT_STANCE}, + {"useHintString", offsetof(WeaponFullDef, weapDef.szUseHintString), CSPFT_STRING}, + {"dropHintString", offsetof(WeaponFullDef, weapDef.dropHintString), CSPFT_STRING}, + {"horizViewJitter", offsetof(WeaponFullDef, weapDef.horizViewJitter), CSPFT_FLOAT}, + {"vertViewJitter", offsetof(WeaponFullDef, weapDef.vertViewJitter), CSPFT_FLOAT}, + {"cameraShakeScale", offsetof(WeaponFullDef, weapDef.cameraShakeScale), CSPFT_FLOAT}, + {"cameraShakeDuration", offsetof(WeaponFullDef, weapDef.cameraShakeDuration), CSPFT_INT}, + {"cameraShakeRadius", offsetof(WeaponFullDef, weapDef.cameraShakeRadius), CSPFT_INT}, + {"explosionCameraShakeScale", offsetof(WeaponFullDef, weapDef.explosionCameraShakeScale), CSPFT_FLOAT}, + {"explosionCameraShakeDuration", offsetof(WeaponFullDef, weapDef.explosionCameraShakeDuration), CSPFT_INT}, + {"explosionCameraShakeRadius", offsetof(WeaponFullDef, weapDef.explosionCameraShakeRadius), CSPFT_INT}, + {"fightDist", offsetof(WeaponFullDef, weapDef.fightDist), CSPFT_FLOAT}, + {"maxDist", offsetof(WeaponFullDef, weapDef.maxDist), CSPFT_FLOAT}, + {"aiVsAiAccuracyGraph", offsetof(WeaponFullDef, weapDef.accuracyGraphName0), CSPFT_STRING}, + {"aiVsPlayerAccuracyGraph", offsetof(WeaponFullDef, weapDef.accuracyGraphName1), CSPFT_STRING}, + {"locNone", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_NONE]), CSPFT_FLOAT}, + {"locHelmet", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_HELMET]), CSPFT_FLOAT}, + {"locHead", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_HEAD]), CSPFT_FLOAT}, + {"locNeck", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_NECK]), CSPFT_FLOAT}, + {"locTorsoUpper", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_TORSO_UPR]), CSPFT_FLOAT}, + {"locTorsoMid", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_TORSO_MID]), CSPFT_FLOAT}, + {"locTorsoLower", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_TORSO_LWR]), CSPFT_FLOAT}, + {"locRightArmUpper", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_R_ARM_UPR]), CSPFT_FLOAT}, + {"locRightArmLower", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_R_ARM_LWR]), CSPFT_FLOAT}, + {"locRightHand", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_R_HAND]), CSPFT_FLOAT}, + {"locLeftArmUpper", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_L_ARM_UPR]), CSPFT_FLOAT}, + {"locLeftArmLower", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_L_ARM_LWR]), CSPFT_FLOAT}, + {"locLeftHand", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_L_HAND]), CSPFT_FLOAT}, + {"locRightLegUpper", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_R_LEG_UPR]), CSPFT_FLOAT}, + {"locRightLegLower", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_R_LEG_LWR]), CSPFT_FLOAT}, + {"locRightFoot", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_R_FOOT]), CSPFT_FLOAT}, + {"locLeftLegUpper", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_L_LEG_UPR]), CSPFT_FLOAT}, + {"locLeftLegLower", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_L_LEG_LWR]), CSPFT_FLOAT}, + {"locLeftFoot", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_L_FOOT]), CSPFT_FLOAT}, + {"locGun", offsetof(WeaponFullDef, locationDamageMultipliers[HITLOC_GUN]), CSPFT_FLOAT}, + {"fireRumble", offsetof(WeaponFullDef, weapDef.fireRumble), CSPFT_STRING}, + {"meleeImpactRumble", offsetof(WeaponFullDef, weapDef.meleeImpactRumble), CSPFT_STRING}, + {"reloadRumble", offsetof(WeaponFullDef, weapDef.reloadRumble), CSPFT_STRING}, + {"explosionRumble", offsetof(WeaponFullDef, weapDef.explosionRumble), CSPFT_STRING}, + {"tracerType", offsetof(WeaponFullDef, weapDef.tracerType), CSPFT_TRACER}, + {"enemyTracerType", offsetof(WeaponFullDef, weapDef.enemyTracerType), CSPFT_TRACER}, + {"adsDofStart", offsetof(WeaponFullDef, weapDef.adsDofStart), CSPFT_FLOAT}, + {"adsDofEnd", offsetof(WeaponFullDef, weapDef.adsDofEnd), CSPFT_FLOAT}, + {"scanSpeed", offsetof(WeaponFullDef, weapDef.scanSpeed), CSPFT_FLOAT}, + {"scanAccel", offsetof(WeaponFullDef, weapDef.scanAccel), CSPFT_FLOAT}, + {"scanPauseTime", offsetof(WeaponFullDef, weapDef.scanPauseTime), CSPFT_MILLISECONDS}, + {"flameTableFirstPerson", offsetof(WeaponFullDef, weapDef.flameTableFirstPerson), CSPFT_STRING}, + {"flameTableThirdPerson", offsetof(WeaponFullDef, weapDef.flameTableThirdPerson), CSPFT_STRING}, + {"mmsWeapon", offsetof(WeaponFullDef, weapVariantDef.mmsWeapon), CSPFT_BOOL}, + {"mmsInScope", offsetof(WeaponFullDef, weapVariantDef.mmsInScope), CSPFT_BOOL}, + {"mmsFOV", offsetof(WeaponFullDef, weapVariantDef.mmsFOV), CSPFT_FLOAT}, + {"mmsAspect", offsetof(WeaponFullDef, weapVariantDef.mmsAspect), CSPFT_FLOAT}, + {"mmsMaxDist", offsetof(WeaponFullDef, weapVariantDef.mmsMaxDist), CSPFT_FLOAT}, + {"ikLeftHandIdlePosF", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandIdlePos.x), CSPFT_FLOAT}, + {"ikLeftHandIdlePosR", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandIdlePos.y), CSPFT_FLOAT}, + {"ikLeftHandIdlePosU", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandIdlePos.z), CSPFT_FLOAT}, + {"ikLeftHandOffsetF", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandOffset.x), CSPFT_FLOAT}, + {"ikLeftHandOffsetR", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandOffset.y), CSPFT_FLOAT}, + {"ikLeftHandOffsetU", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandOffset.z), CSPFT_FLOAT}, + {"ikLeftHandRotationP", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandRotation.x), CSPFT_FLOAT}, + {"ikLeftHandRotationY", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandRotation.y), CSPFT_FLOAT}, + {"ikLeftHandRotationR", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandRotation.z), CSPFT_FLOAT}, + {"usingLeftHandProneIK", offsetof(WeaponFullDef, weapVariantDef.bUsingLeftHandProneIK), CSPFT_BOOL}, + {"ikLeftHandProneOffsetF", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandProneOffset.x), CSPFT_FLOAT}, + {"ikLeftHandProneOffsetR", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandProneOffset.y), CSPFT_FLOAT}, + {"ikLeftHandProneOffsetU", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandProneOffset.z), CSPFT_FLOAT}, + {"ikLeftHandProneRotationP", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandProneRotation.x), CSPFT_FLOAT}, + {"ikLeftHandProneRotationY", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandProneRotation.y), CSPFT_FLOAT}, + {"ikLeftHandProneRotationR", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandProneRotation.z), CSPFT_FLOAT}, + {"ikLeftHandUiViewerOffsetF", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandUiViewerOffset.x), CSPFT_FLOAT}, + {"ikLeftHandUiViewerOffsetR", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandUiViewerOffset.y), CSPFT_FLOAT}, + {"ikLeftHandUiViewerOffsetU", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandUiViewerOffset.z), CSPFT_FLOAT}, + {"ikLeftHandUiViewerRotationP", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandUiViewerRotation.x), CSPFT_FLOAT}, + {"ikLeftHandUiViewerRotationY", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandUiViewerRotation.y), CSPFT_FLOAT}, + {"ikLeftHandUiViewerRotationR", offsetof(WeaponFullDef, weapVariantDef.ikLeftHandUiViewerRotation.z), CSPFT_FLOAT}, + {"parentWeaponName", offsetof(WeaponFullDef, weapDef.parentWeaponName), CSPFT_STRING}, + {"doGibbing", offsetof(WeaponFullDef, weapDef.doGibbing), CSPFT_BOOL}, + {"maxGibDistance", offsetof(WeaponFullDef, weapDef.maxGibDistance), CSPFT_FLOAT}, + {"altScopeADSTransInTime", offsetof(WeaponFullDef, weapDef.altScopeADSTransInTime), CSPFT_FLOAT}, + {"altScopeADSTransOutTime", offsetof(WeaponFullDef, weapDef.altScopeADSTransOutTime), CSPFT_FLOAT}, + {"meleeSwipeEffect", offsetof(WeaponFullDef, weapDef.meleeSwipeEffect), CSPFT_FX}, + {"meleeImpactEffect", offsetof(WeaponFullDef, weapDef.meleeImpactEffect), CSPFT_FX}, + {"meleeImpactNoBloodEffect", offsetof(WeaponFullDef, weapDef.meleeImpactNoBloodEffect), CSPFT_FX}, + {"throwBackType", offsetof(WeaponFullDef, weapDef.throwBackType), CSPFT_STRING}, + {"camo", offsetof(WeaponFullDef, weapDef.weaponCamo), WFT_WEAPON_CAMO}, + {"customFloat0", offsetof(WeaponFullDef, weapDef.customFloat0), CSPFT_FLOAT}, + {"customFloat1", offsetof(WeaponFullDef, weapDef.customFloat1), CSPFT_FLOAT}, + {"customFloat2", offsetof(WeaponFullDef, weapDef.customFloat2), CSPFT_FLOAT}, + {"customBool0", offsetof(WeaponFullDef, weapDef.customBool0), CSPFT_BOOL}, + {"customBool1", offsetof(WeaponFullDef, weapDef.customBool1), CSPFT_BOOL}, + {"customBool2", offsetof(WeaponFullDef, weapDef.customBool2), CSPFT_BOOL}, }; namespace T6 diff --git a/src/ZoneCommon/Game/T6/T6_Assets.h b/src/ZoneCommon/Game/T6/T6_Assets.h index 015de1d8..57d83552 100644 --- a/src/ZoneCommon/Game/T6/T6_Assets.h +++ b/src/ZoneCommon/Game/T6/T6_Assets.h @@ -4048,6 +4048,31 @@ namespace T6 MISSILE_GUIDANCE_COUNT = 0x9, }; + enum hitLocation_t + { + HITLOC_NONE = 0x0, + HITLOC_HELMET = 0x1, + HITLOC_HEAD = 0x2, + HITLOC_NECK = 0x3, + HITLOC_TORSO_UPR = 0x4, + HITLOC_TORSO_MID = 0x5, + HITLOC_TORSO_LWR = 0x6, + HITLOC_R_ARM_UPR = 0x7, + HITLOC_L_ARM_UPR = 0x8, + HITLOC_R_ARM_LWR = 0x9, + HITLOC_L_ARM_LWR = 0xA, + HITLOC_R_HAND = 0xB, + HITLOC_L_HAND = 0xC, + HITLOC_R_LEG_UPR = 0xD, + HITLOC_L_LEG_UPR = 0xE, + HITLOC_R_LEG_LWR = 0xF, + HITLOC_L_LEG_LWR = 0x10, + HITLOC_R_FOOT = 0x11, + HITLOC_L_FOOT = 0x12, + HITLOC_GUN = 0x13, + HITLOC_SHIELD = 0x14, + HITLOC_NUM = 0x15, + }; struct WeaponDef { @@ -4732,6 +4757,44 @@ namespace T6 NUM_WEAP_ANIMS = 0x58, }; + enum materialSurfType_t + { + SURF_TYPE_DEFAULT, + SURF_TYPE_BARK, + SURF_TYPE_BRICK, + SURF_TYPE_CARPET, + SURF_TYPE_CLOTH, + SURF_TYPE_CONCRETE, + SURF_TYPE_DIRT, + SURF_TYPE_FLESH, + SURF_TYPE_FOLIAGE, + SURF_TYPE_GLASS, + SURF_TYPE_GRASS, + SURF_TYPE_GRAVEL, + SURF_TYPE_ICE, + SURF_TYPE_METAL, + SURF_TYPE_MUD, + SURF_TYPE_PAPER, + SURF_TYPE_PLASTER, + SURF_TYPE_ROCK, + SURF_TYPE_SAND, + SURF_TYPE_SNOW, + SURF_TYPE_WATER, + SURF_TYPE_WOOD, + SURF_TYPE_ASPHALT, + SURF_TYPE_CERAMIC, + SURF_TYPE_PLASTIC, + SURF_TYPE_RUBBER, + SURF_TYPE_CUSHION, + SURF_TYPE_FRUIT, + SURF_TYPE_PAINTED_METAL, + SURF_TYPE_PLAYER, + SURF_TYPE_TALL_GRASS, + SURF_TYPE_RIOT_SHIELD, + + SURF_TYPE_NUM + }; + struct WeaponVariantDef { const char* szInternalName;