BulletParamPreprocessedTable = { ["Field 1"] = "s32 atkId_Bullet = -1", ["Field 2"] = "s32 sfxId_Bullet = -1", ["Field 3"] = "s32 sfxId_Hit = -1", ["Field 4"] = "s32 sfxId_Flick = -1", ["Field 5"] = "f32 life = -1", ["Field 6"] = "f32 dist", ["Field 7"] = "f32 shootInterval", ["Field 8"] = "f32 gravityInRange", ["Field 9"] = "f32 gravityOutRange", ["Field 10"] = "f32 hormingStopRange", ["Field 11"] = "f32 initVellocity", ["Field 12"] = "f32 accelInRange", ["Field 13"] = "f32 accelOutRange", ["Field 14"] = "f32 maxVellocity", ["Field 15"] = "f32 minVellocity", ["Field 16"] = "f32 accelTime", ["Field 17"] = "f32 homingBeginDist", ["Field 18"] = "f32 hitRadius = -1", ["Field 19"] = "f32 hitRadiusMax = -1", ["Field 20"] = "f32 spreadTime", ["Field 21"] = "f32 expDelay", ["Field 22"] = "f32 hormingOffsetRange", ["Field 23"] = "f32 dmgHitRecordLifeTime", ["Field 24"] = "f32 externalForce", ["Field 25"] = "s32 spEffectIDForShooter = -1", ["Field 26"] = "s32 autoSearchNPCThinkID", ["Field 27"] = "s32 HitBulletID = -1", ["Field 28"] = "s32 spEffectId0 = -1", ["Field 29"] = "s32 spEffectId1 = -1", ["Field 30"] = "s32 spEffectId2 = -1", ["Field 31"] = "s32 spEffectId3 = -1", ["Field 32"] = "s32 spEffectId4 = -1", ["Field 33"] = "u16 numShoot", ["Field 34"] = "s16 homingAngle", ["Field 35"] = "s16 shootAngle", ["Field 36"] = "s16 shootAngleInterval", ["Field 37"] = "s16 shootAngleXInterval", ["Field 38"] = "s8 damageDamp", ["Field 39"] = "s8 spelDamageDamp", ["Field 40"] = "s8 fireDamageDamp", ["Field 41"] = "s8 thunderDamageDamp", ["Field 42"] = "s8 staminaDamp", ["Field 43"] = "s8 knockbackDamp", ["Field 44"] = "s8 shootAngleXZ", ["Field 45"] = "u8 lockShootLimitAng", ["Field 46"] = "h8 pad2[1]", -- 0x91, 0x92, 0x93 ["Field 47"] = "u8 prevVelocityDirRate", ["Field 48"] = "u8 atkAttribute = 254", ["Field 49"] = "u8 spAttribute = 254", ["Field 50"] = "u8 Material_AttackType = 254", ["Field 51"] = "u8 Material_AttackMaterial = 254", ["Field 52"] = "u8 isPenetrateChr:1", ["Field 53"] = "u8 isPenetrateObj:1", ["Field 54"] = "h0 pad:6", -- 0x98, 0x98, 0x99 ["Field 55"] = "u8 launchConditionType", ["Field 56"] = "u8 FollowType:3", ["Field 57"] = "u8 EmittePosType:3", ["Field 58"] = "u8 isAttackSFX:1", ["Field 59"] = "u8 isEndlessHit:1", ["Field 60"] = "u8 isPenetrateMap:1", ["Field 61"] = "u8 isHitBothTeam:1", ["Field 62"] = "u8 isUseSharedHitList:1", ["Field 63"] = "u8 isUseMultiDmyPolyIfPlace:1", ["Field 64"] = "u8 isHitOtherBulletForceEraseA:1", ["Field 65"] = "u8 isHitOtherBulletForceEraseB:1", ["Field 66"] = "u8 isHitForceMagic:1", ["Field 67"] = "u8 isIgnoreSfxIfHitWater:1", ["Field 68"] = "u8 isIgnoreMoveStateIfHitWater:1", ["Field 69"] = "u8 isHitDarkForceMagic:1", ["Field 70"] = "u8 dmgCalcSide:2", ["Field 71"] = "u8 isEnableAutoHoming:1", ["Field 72"] = "u8 isSyncBulletCulcDumypolyPos:1", ["Field 73"] = "u8 isOwnerOverrideInitAngle:1", ["Field 74"] = "u8 isInheritSfxToChild:1", ["Field 75"] = "s8 darkDamageDamp", ["Field 76"] = "s8 bulletSfxDeleteType_byHit", ["Field 77"] = "s8 bulletSfxDeleteType_byLifeDead", ["Field 78"] = "f32 targetYOffsetRange", ["Field 79"] = "f32 shootAngleYMaxRandom", ["Field 80"] = "f32 shootAngleXMaxRandom", ["Field 81"] = "s32 intervalCreateBulletId = -1", ["Field 82"] = "f32 intervalCreateTimeMin", ["Field 83"] = "f32 intervalCreateTimeMax", ["Field 84"] = "f32 predictionShootObserveTime", ["Field 85"] = "f32 intervalCreateWaitTime", ["Field 86"] = "u8 sfxPostureType", ["Field 87"] = "u8 createLimitGroupId", ["Field 88"] = "h8 pad5[1]", -- 0xC1, 0xC2, 0xC3 ["Field 89"] = "u8 isInheritSpeedToChild:1", ["Field 90"] = "u8 isDisableHitSfx_byChrAndObj:1", ["Field 91"] = "u8 isCheckWall_byCenterRay:1", ["Field 92"] = "u8 isHitFlare:1", ["Field 93"] = "u8 isUseBulletWallFilter:1", ["Field 94"] = "u8 pad1:1", -- 0xC3, 0xC3, 0xC3 should be h1 probs ["Field 95"] = "u8 isNonDependenceMagicForFunnleNum:1", ["Field 96"] = "u8 isAiInterruptShootNoDamageBullet:1", ["Field 97"] = "f32 randomCreateRadius", ["Field 98"] = "f32 followOffset_BaseHeight", ["Field 99"] = "s32 assetNo_Hit = -1", ["Field 100"] = "f32 lifeRandomRange", ["Field 101"] = "s16 homingAngleX = -1", ["Field 102"] = "u8 ballisticCalcType", ["Field 103"] = "u8 attachEffectType", ["Field 104"] = "s32 seId_Bullet1 = -1", ["Field 105"] = "s32 seId_Bullet2 = -1", ["Field 106"] = "s32 seId_Hit = -1", ["Field 107"] = "s32 seId_Flick = -1", ["Field 108"] = "s16 howitzerShootAngleXMin", ["Field 109"] = "s16 howitzerShootAngleXMax", ["Field 110"] = "f32 howitzerInitMinVelocity", ["Field 111"] = "f32 howitzerInitMaxVelocity", ["Field 112"] = "s32 sfxId_ForceErase = -1", ["Field 113"] = "s8 bulletSfxDeleteType_byForceErase", ["Field 114"] = "h8 pad3[1]", -- 0xf8, 0xf9, 0xfa ["Field 115"] = "s16 followDmypoly_forSfxPose = -1", ["Field 116"] = "f32 followOffset_Radius", ["Field 117"] = "f32 spBulletDistUpRate = 1", ["Field 118"] = "f32 nolockTargetDist", ["Field 119"] = "h64 pad4[8]" }