prime/asm/MetroidPrime/Weapons/CBeamProjectile.s

808 lines
41 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .data
.balign 8
.global lbl_803E4648
lbl_803E4648:
# ROM: 0x3E1648
.4byte 0
.4byte 0
.4byte __dt__15CBeamProjectileFv
.4byte Accept__15CBeamProjectileFR8IVisitor
.4byte PreThink__7CEntityFfR13CStateManager
.4byte Think__7CWeaponFfR13CStateManager
.4byte AcceptScriptMsg__15CGameProjectileF20EScriptObjectMessage9TUniqueIdR13CStateManager
.4byte SetActive__6CActorFb
.4byte PreRender__6CActorFR13CStateManagerRC14CFrustumPlanes
.4byte AddToRenderer__6CActorCFRC14CFrustumPlanesRC13CStateManager
.4byte Render__15CGameProjectileCFRC13CStateManager
.4byte CanRenderUnsorted__6CActorCFRC13CStateManager
.4byte CalculateRenderBounds__15CBeamProjectileFv
.4byte HealthInfo__6CActorFR13CStateManager
.4byte GetDamageVulnerability__6CActorCFv
.4byte GetDamageVulnerability__6CActorCFRC9CVector3fRC9CVector3fRC11CDamageInfo
.4byte GetTouchBounds__15CBeamProjectileCFv
.4byte nullsub_142
.4byte GetOrbitPosition__6CActorCFRC13CStateManager
.4byte GetAimPosition__6CActorCFRC13CStateManagerf
.4byte GetHomingPosition__6CActorCFRC13CStateManagerf
.4byte GetScanObjectIndicatorPosition__6CActorCFRC13CStateManager
.4byte GetCollisionResponseType__7CWeaponCFRC9CVector3fRC9CVector3fRC11CWeaponModei
.4byte FluidFXThink__15CGameProjectileFQ26CActor11EFluidStateR12CScriptWaterR13CStateManager
.4byte OnScanStateChange__6CActorFQ26CActor10EScanStateR13CStateManager
.4byte GetSortingBounds__6CActorCFRC12CTransform4f
.4byte DoUserAnimEvent__6CActorFR13CStateManagerRC13CInt32POINode14EUserEventTypef
.4byte ResolveCollisionWithActor__15CGameProjectileFRC14CRayCastResultR6CActorR13CStateManager
.4byte UpdateFx__15CBeamProjectileFRC12CTransform4ffR13CStateManager
.4byte ResetBeam__15CBeamProjectileFR13CStateManagerb
.4byte 0
.4byte 0
.section .sdata
.balign 8
.global lbl_805A7B90
lbl_805A7B90:
# ROM: 0x3F5530
.4byte 0x00000012
.4byte 0
.section .text, "ax"
.global UpdateFx__15CBeamProjectileFRC12CTransform4ffR13CStateManager
UpdateFx__15CBeamProjectileFRC12CTransform4ffR13CStateManager:
/* 80198DE0 00195D40 94 21 F6 10 */ stwu r1, -0x9f0(r1)
/* 80198DE4 00195D44 7C 08 02 A6 */ mflr r0
/* 80198DE8 00195D48 90 01 09 F4 */ stw r0, 0x9f4(r1)
/* 80198DEC 00195D4C DB E1 09 E0 */ stfd f31, 0x9e0(r1)
/* 80198DF0 00195D50 F3 E1 09 E8 */ psq_st f31, -1560(r1), 0, qr0
/* 80198DF4 00195D54 93 E1 09 DC */ stw r31, 0x9dc(r1)
/* 80198DF8 00195D58 93 C1 09 D8 */ stw r30, 0x9d8(r1)
/* 80198DFC 00195D5C 93 A1 09 D4 */ stw r29, 0x9d4(r1)
/* 80198E00 00195D60 93 81 09 D0 */ stw r28, 0x9d0(r1)
/* 80198E04 00195D64 88 03 00 30 */ lbz r0, 0x30(r3)
/* 80198E08 00195D68 FF E0 08 90 */ fmr f31, f1
/* 80198E0C 00195D6C 7C 7C 1B 78 */ mr r28, r3
/* 80198E10 00195D70 7C 9D 23 78 */ mr r29, r4
/* 80198E14 00195D74 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80198E18 00195D78 7C BE 2B 78 */ mr r30, r5
/* 80198E1C 00195D7C 41 82 04 7C */ beq lbl_80199298
/* 80198E20 00195D80 38 61 01 68 */ addi r3, r1, 0x168
/* 80198E24 00195D84 48 17 9E 1D */ bl GetRotation__12CTransform4fCFv
/* 80198E28 00195D88 38 7C 00 34 */ addi r3, r28, 0x34
/* 80198E2C 00195D8C 38 81 01 68 */ addi r4, r1, 0x168
/* 80198E30 00195D90 48 17 9D 11 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80198E34 00195D94 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 80198E38 00195D98 38 60 00 01 */ li r3, 1
/* 80198E3C 00195D9C 50 60 26 F6 */ rlwimi r0, r3, 4, 0x1b, 0x1b
/* 80198E40 00195DA0 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 80198E44 00195DA4 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 80198E48 00195DA8 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 80198E4C 00195DAC 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 80198E50 00195DB0 88 1C 00 E4 */ lbz r0, 0xe4(r28)
/* 80198E54 00195DB4 50 60 17 7A */ rlwimi r0, r3, 2, 0x1d, 0x1d
/* 80198E58 00195DB8 98 1C 00 E4 */ stb r0, 0xe4(r28)
/* 80198E5C 00195DBC 88 1C 04 64 */ lbz r0, 0x464(r28)
/* 80198E60 00195DC0 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80198E64 00195DC4 41 82 00 28 */ beq lbl_80198E8C
/* 80198E68 00195DC8 C0 3C 03 08 */ lfs f1, 0x308(r28)
/* 80198E6C 00195DCC C0 1C 03 00 */ lfs f0, 0x300(r28)
/* 80198E70 00195DD0 EC 01 07 FA */ fmadds f0, f1, f31, f0
/* 80198E74 00195DD4 D0 1C 03 00 */ stfs f0, 0x300(r28)
/* 80198E78 00195DD8 C0 1C 03 00 */ lfs f0, 0x300(r28)
/* 80198E7C 00195DDC C0 3C 02 EC */ lfs f1, 0x2ec(r28)
/* 80198E80 00195DE0 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 80198E84 00195DE4 40 81 00 08 */ ble lbl_80198E8C
/* 80198E88 00195DE8 D0 3C 03 00 */ stfs f1, 0x300(r28)
lbl_80198E8C:
/* 80198E8C 00195DEC C0 1C 03 00 */ lfs f0, 0x300(r28)
/* 80198E90 00195DF0 38 00 00 00 */ li r0, 0
/* 80198E94 00195DF4 38 61 00 64 */ addi r3, r1, 0x64
/* 80198E98 00195DF8 38 81 00 58 */ addi r4, r1, 0x58
/* 80198E9C 00195DFC D0 1C 03 04 */ stfs f0, 0x304(r28)
/* 80198EA0 00195E00 90 1C 02 F8 */ stw r0, 0x2f8(r28)
/* 80198EA4 00195E04 C0 7D 00 2C */ lfs f3, 0x2c(r29)
/* 80198EA8 00195E08 C0 5D 00 1C */ lfs f2, 0x1c(r29)
/* 80198EAC 00195E0C C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 80198EB0 00195E10 C0 BD 00 24 */ lfs f5, 0x24(r29)
/* 80198EB4 00195E14 C0 9D 00 14 */ lfs f4, 0x14(r29)
/* 80198EB8 00195E18 C0 1D 00 04 */ lfs f0, 4(r29)
/* 80198EBC 00195E1C D0 21 00 7C */ stfs f1, 0x7c(r1)
/* 80198EC0 00195E20 D0 41 00 80 */ stfs f2, 0x80(r1)
/* 80198EC4 00195E24 D0 61 00 84 */ stfs f3, 0x84(r1)
/* 80198EC8 00195E28 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 80198ECC 00195E2C D0 81 00 5C */ stfs f4, 0x5c(r1)
/* 80198ED0 00195E30 D0 A1 00 60 */ stfs f5, 0x60(r1)
/* 80198ED4 00195E34 48 17 B9 7D */ bl AsNormalized__9CVector3fCFv
/* 80198ED8 00195E38 C0 FC 03 00 */ lfs f7, 0x300(r28)
/* 80198EDC 00195E3C 7F 83 E3 78 */ mr r3, r28
/* 80198EE0 00195E40 C0 41 00 68 */ lfs f2, 0x68(r1)
/* 80198EE4 00195E44 38 81 00 70 */ addi r4, r1, 0x70
/* 80198EE8 00195E48 C0 21 00 6C */ lfs f1, 0x6c(r1)
/* 80198EEC 00195E4C C0 01 00 64 */ lfs f0, 0x64(r1)
/* 80198EF0 00195E50 EC A7 00 B2 */ fmuls f5, f7, f2
/* 80198EF4 00195E54 C0 DD 00 1C */ lfs f6, 0x1c(r29)
/* 80198EF8 00195E58 EC 67 00 72 */ fmuls f3, f7, f1
/* 80198EFC 00195E5C C0 9D 00 2C */ lfs f4, 0x2c(r29)
/* 80198F00 00195E60 EC 27 00 32 */ fmuls f1, f7, f0
/* 80198F04 00195E64 C0 5D 00 0C */ lfs f2, 0xc(r29)
/* 80198F08 00195E68 EC A6 28 2A */ fadds f5, f6, f5
/* 80198F0C 00195E6C C0 01 00 7C */ lfs f0, 0x7c(r1)
/* 80198F10 00195E70 EC 64 18 2A */ fadds f3, f4, f3
/* 80198F14 00195E74 EC 22 08 2A */ fadds f1, f2, f1
/* 80198F18 00195E78 D0 A1 00 74 */ stfs f5, 0x74(r1)
/* 80198F1C 00195E7C D0 21 00 70 */ stfs f1, 0x70(r1)
/* 80198F20 00195E80 D0 61 00 78 */ stfs f3, 0x78(r1)
/* 80198F24 00195E84 D0 1C 02 98 */ stfs f0, 0x298(r28)
/* 80198F28 00195E88 C0 01 00 80 */ lfs f0, 0x80(r1)
/* 80198F2C 00195E8C D0 1C 02 9C */ stfs f0, 0x29c(r28)
/* 80198F30 00195E90 C0 01 00 84 */ lfs f0, 0x84(r1)
/* 80198F34 00195E94 D0 1C 02 A0 */ stfs f0, 0x2a0(r28)
/* 80198F38 00195E98 4B EB 9F 55 */ bl SetTranslation__6CActorFRC9CVector3f
/* 80198F3C 00195E9C C0 7C 02 F4 */ lfs f3, 0x2f4(r28)
/* 80198F40 00195EA0 38 61 00 F0 */ addi r3, r1, 0xf0
/* 80198F44 00195EA4 C0 22 A6 C8 */ lfs f1, lbl_805AC3E8@sda21(r2)
/* 80198F48 00195EA8 38 81 00 4C */ addi r4, r1, 0x4c
/* 80198F4C 00195EAC FC 40 18 50 */ fneg f2, f3
/* 80198F50 00195EB0 C0 1C 03 04 */ lfs f0, 0x304(r28)
/* 80198F54 00195EB4 D0 21 01 24 */ stfs f1, 0x124(r1)
/* 80198F58 00195EB8 38 A1 00 40 */ addi r5, r1, 0x40
/* 80198F5C 00195EBC D0 41 01 20 */ stfs f2, 0x120(r1)
/* 80198F60 00195EC0 80 01 01 24 */ lwz r0, 0x124(r1)
/* 80198F64 00195EC4 80 C1 01 20 */ lwz r6, 0x120(r1)
/* 80198F68 00195EC8 D0 41 01 28 */ stfs f2, 0x128(r1)
/* 80198F6C 00195ECC 90 DC 03 54 */ stw r6, 0x354(r28)
/* 80198F70 00195ED0 80 C1 01 28 */ lwz r6, 0x128(r1)
/* 80198F74 00195ED4 D0 61 01 2C */ stfs f3, 0x12c(r1)
/* 80198F78 00195ED8 90 1C 03 58 */ stw r0, 0x358(r28)
/* 80198F7C 00195EDC 80 01 01 2C */ lwz r0, 0x12c(r1)
/* 80198F80 00195EE0 D0 01 01 30 */ stfs f0, 0x130(r1)
/* 80198F84 00195EE4 90 DC 03 5C */ stw r6, 0x35c(r28)
/* 80198F88 00195EE8 80 C1 01 30 */ lwz r6, 0x130(r1)
/* 80198F8C 00195EEC D0 61 01 34 */ stfs f3, 0x134(r1)
/* 80198F90 00195EF0 90 1C 03 60 */ stw r0, 0x360(r28)
/* 80198F94 00195EF4 80 01 01 34 */ lwz r0, 0x134(r1)
/* 80198F98 00195EF8 90 DC 03 64 */ stw r6, 0x364(r28)
/* 80198F9C 00195EFC 90 1C 03 68 */ stw r0, 0x368(r28)
/* 80198FA0 00195F00 C0 5C 02 F4 */ lfs f2, 0x2f4(r28)
/* 80198FA4 00195F04 C0 1C 03 00 */ lfs f0, 0x300(r28)
/* 80198FA8 00195F08 FC 60 10 50 */ fneg f3, f2
/* 80198FAC 00195F0C D0 41 00 40 */ stfs f2, 0x40(r1)
/* 80198FB0 00195F10 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 80198FB4 00195F14 D0 41 00 48 */ stfs f2, 0x48(r1)
/* 80198FB8 00195F18 D0 61 00 4C */ stfs f3, 0x4c(r1)
/* 80198FBC 00195F1C D0 21 00 50 */ stfs f1, 0x50(r1)
/* 80198FC0 00195F20 D0 61 00 54 */ stfs f3, 0x54(r1)
/* 80198FC4 00195F24 48 19 F5 45 */ bl __ct__6CAABoxFRC9CVector3fRC9CVector3f
/* 80198FC8 00195F28 7C 64 1B 78 */ mr r4, r3
/* 80198FCC 00195F2C 7F A5 EB 78 */ mr r5, r29
/* 80198FD0 00195F30 38 61 01 08 */ addi r3, r1, 0x108
/* 80198FD4 00195F34 48 19 E9 29 */ bl GetTransformedAABox__6CAABoxCFRC12CTransform4f
/* 80198FD8 00195F38 80 C1 01 08 */ lwz r6, 0x108(r1)
/* 80198FDC 00195F3C 38 00 00 00 */ li r0, 0
/* 80198FE0 00195F40 80 A1 01 0C */ lwz r5, 0x10c(r1)
/* 80198FE4 00195F44 38 60 00 00 */ li r3, 0
/* 80198FE8 00195F48 38 80 00 01 */ li r4, 1
/* 80198FEC 00195F4C 90 DC 03 6C */ stw r6, 0x36c(r28)
/* 80198FF0 00195F50 90 BC 03 70 */ stw r5, 0x370(r28)
/* 80198FF4 00195F54 80 A1 01 10 */ lwz r5, 0x110(r1)
/* 80198FF8 00195F58 90 BC 03 74 */ stw r5, 0x374(r28)
/* 80198FFC 00195F5C 80 C1 01 14 */ lwz r6, 0x114(r1)
/* 80199000 00195F60 80 A1 01 18 */ lwz r5, 0x118(r1)
/* 80199004 00195F64 90 DC 03 78 */ stw r6, 0x378(r28)
/* 80199008 00195F68 90 BC 03 7C */ stw r5, 0x37c(r28)
/* 8019900C 00195F6C 80 A1 01 1C */ lwz r5, 0x11c(r1)
/* 80199010 00195F70 90 BC 03 80 */ stw r5, 0x380(r28)
/* 80199014 00195F74 A0 CD A3 8C */ lhz r6, kInvalidUniqueId@sda21(r13)
/* 80199018 00195F78 80 AD 8F D0 */ lwz r5, lbl_805A7B90@sda21(r13)
/* 8019901C 00195F7C B0 C1 00 1C */ sth r6, 0x1c(r1)
/* 80199020 00195F80 90 01 01 C8 */ stw r0, 0x1c8(r1)
/* 80199024 00195F84 48 1F 0E D1 */ bl __shl2i
/* 80199028 00195F88 39 20 FF FF */ li r9, -1
/* 8019902C 00195F8C 39 00 00 00 */ li r8, 0
/* 80199030 00195F90 38 00 00 02 */ li r0, 2
/* 80199034 00195F94 90 81 00 E4 */ stw r4, 0xe4(r1)
/* 80199038 00195F98 7F 87 E3 78 */ mr r7, r28
/* 8019903C 00195F9C 38 81 01 C8 */ addi r4, r1, 0x1c8
/* 80199040 00195FA0 90 61 00 E0 */ stw r3, 0xe0(r1)
/* 80199044 00195FA4 7F C3 F3 78 */ mr r3, r30
/* 80199048 00195FA8 38 BC 03 6C */ addi r5, r28, 0x36c
/* 8019904C 00195FAC 38 C1 00 D8 */ addi r6, r1, 0xd8
/* 80199050 00195FB0 91 21 00 DC */ stw r9, 0xdc(r1)
/* 80199054 00195FB4 91 01 00 D8 */ stw r8, 0xd8(r1)
/* 80199058 00195FB8 90 01 00 E8 */ stw r0, 0xe8(r1)
/* 8019905C 00195FBC 4B EB 36 C5 */ bl "BuildNearList__13CStateManagerCFRQ24rstl32reserved_vector<9TUniqueId,1024>RC6CAABoxRC15CMaterialFilterPC6CActor"
/* 80199060 00195FC0 C0 3C 03 00 */ lfs f1, 0x300(r28)
/* 80199064 00195FC4 7F 84 E3 78 */ mr r4, r28
/* 80199068 00195FC8 7F C9 F3 78 */ mr r9, r30
/* 8019906C 00195FCC 38 61 01 38 */ addi r3, r1, 0x138
/* 80199070 00195FD0 38 A1 00 1C */ addi r5, r1, 0x1c
/* 80199074 00195FD4 38 C1 00 7C */ addi r6, r1, 0x7c
/* 80199078 00195FD8 38 E1 00 70 */ addi r7, r1, 0x70
/* 8019907C 00195FDC 39 01 01 C8 */ addi r8, r1, 0x1c8
/* 80199080 00195FE0 4B E9 F6 41 */ bl "RayCollisionCheckWithWorld__15CGameProjectileFR9TUniqueIdRC9CVector3fRC9CVector3ffRQ24rstl32reserved_vector<9TUniqueId,1024>R13CStateManager"
/* 80199084 00195FE4 C0 E1 01 38 */ lfs f7, 0x138(r1)
/* 80199088 00195FE8 7F C3 F3 78 */ mr r3, r30
/* 8019908C 00195FEC C0 C1 01 3C */ lfs f6, 0x13c(r1)
/* 80199090 00195FF0 3B E1 01 9C */ addi r31, r1, 0x19c
/* 80199094 00195FF4 C0 A1 01 40 */ lfs f5, 0x140(r1)
/* 80199098 00195FF8 38 81 00 18 */ addi r4, r1, 0x18
/* 8019909C 00195FFC C0 81 01 44 */ lfs f4, 0x144(r1)
/* 801990A0 00196000 C0 61 01 48 */ lfs f3, 0x148(r1)
/* 801990A4 00196004 C0 41 01 4C */ lfs f2, 0x14c(r1)
/* 801990A8 00196008 C0 21 01 50 */ lfs f1, 0x150(r1)
/* 801990AC 0019600C C0 01 01 54 */ lfs f0, 0x154(r1)
/* 801990B0 00196010 88 E1 01 58 */ lbz r7, 0x158(r1)
/* 801990B4 00196014 80 A1 01 60 */ lwz r5, 0x160(r1)
/* 801990B8 00196018 80 C1 01 64 */ lwz r6, 0x164(r1)
/* 801990BC 0019601C A0 01 00 1C */ lhz r0, 0x1c(r1)
/* 801990C0 00196020 D0 E1 01 98 */ stfs f7, 0x198(r1)
/* 801990C4 00196024 D0 C1 01 9C */ stfs f6, 0x19c(r1)
/* 801990C8 00196028 D0 A1 01 A0 */ stfs f5, 0x1a0(r1)
/* 801990CC 0019602C D0 81 01 A4 */ stfs f4, 0x1a4(r1)
/* 801990D0 00196030 D0 61 01 A8 */ stfs f3, 0x1a8(r1)
/* 801990D4 00196034 D0 41 01 AC */ stfs f2, 0x1ac(r1)
/* 801990D8 00196038 D0 21 01 B0 */ stfs f1, 0x1b0(r1)
/* 801990DC 0019603C D0 01 01 B4 */ stfs f0, 0x1b4(r1)
/* 801990E0 00196040 98 E1 01 B8 */ stb r7, 0x1b8(r1)
/* 801990E4 00196044 90 C1 01 C4 */ stw r6, 0x1c4(r1)
/* 801990E8 00196048 90 A1 01 C0 */ stw r5, 0x1c0(r1)
/* 801990EC 0019604C B0 01 00 18 */ sth r0, 0x18(r1)
/* 801990F0 00196050 4B EB 34 85 */ bl ObjectById__13CStateManagerF9TUniqueId
/* 801990F4 00196054 7C 64 1B 78 */ mr r4, r3
/* 801990F8 00196058 38 61 00 20 */ addi r3, r1, 0x20
/* 801990FC 0019605C 4B F1 6B 95 */ bl "__ct__19TCastToPtr<6CActor>FP7CEntity"
/* 80199100 00196060 80 03 00 04 */ lwz r0, 4(r3)
/* 80199104 00196064 28 00 00 00 */ cmplwi r0, 0
/* 80199108 00196068 41 82 00 50 */ beq lbl_80199158
/* 8019910C 0019606C A0 01 00 1C */ lhz r0, 0x1c(r1)
/* 80199110 00196070 7F 83 E3 78 */ mr r3, r28
/* 80199114 00196074 38 A1 01 98 */ addi r5, r1, 0x198
/* 80199118 00196078 38 C1 00 14 */ addi r6, r1, 0x14
/* 8019911C 0019607C B0 01 00 14 */ sth r0, 0x14(r1)
/* 80199120 00196080 38 80 00 01 */ li r4, 1
/* 80199124 00196084 48 00 01 9D */ bl SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult
/* 80199128 00196088 88 1C 04 64 */ lbz r0, 0x464(r28)
/* 8019912C 0019608C 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80199130 00196090 41 82 01 08 */ beq lbl_80199238
/* 80199134 00196094 FC 20 F8 90 */ fmr f1, f31
/* 80199138 00196098 38 61 00 BC */ addi r3, r1, 0xbc
/* 8019913C 0019609C 38 9C 01 2C */ addi r4, r28, 0x12c
/* 80199140 001960A0 4B F2 A3 09 */ bl __ct__11CDamageInfoFRC11CDamageInfof
/* 80199144 001960A4 7F 83 E3 78 */ mr r3, r28
/* 80199148 001960A8 7F C4 F3 78 */ mr r4, r30
/* 8019914C 001960AC 38 A1 00 BC */ addi r5, r1, 0xbc
/* 80199150 001960B0 4B E9 F1 25 */ bl ApplyDamageToActors__15CGameProjectileFR13CStateManager
/* 80199154 001960B4 48 00 00 E4 */ b lbl_80199238
lbl_80199158:
/* 80199158 001960B8 88 01 01 B8 */ lbz r0, 0x1b8(r1)
/* 8019915C 001960BC 28 00 00 00 */ cmplwi r0, 0
/* 80199160 001960C0 41 82 00 90 */ beq lbl_801991F0
/* 80199164 001960C4 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 80199168 001960C8 7F 83 E3 78 */ mr r3, r28
/* 8019916C 001960CC 38 A1 01 98 */ addi r5, r1, 0x198
/* 80199170 001960D0 38 C1 00 10 */ addi r6, r1, 0x10
/* 80199174 001960D4 B0 01 00 10 */ sth r0, 0x10(r1)
/* 80199178 001960D8 38 80 00 02 */ li r4, 2
/* 8019917C 001960DC 48 00 01 45 */ bl SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult
/* 80199180 001960E0 88 1C 04 64 */ lbz r0, 0x464(r28)
/* 80199184 001960E4 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 80199188 001960E8 41 82 00 B0 */ beq lbl_80199238
/* 8019918C 001960EC 80 1C 00 F8 */ lwz r0, 0xf8(r28)
/* 80199190 001960F0 FC 20 F8 90 */ fmr f1, f31
/* 80199194 001960F4 80 BC 00 FC */ lwz r5, 0xfc(r28)
/* 80199198 001960F8 38 61 00 A0 */ addi r3, r1, 0xa0
/* 8019919C 001960FC 38 9C 01 2C */ addi r4, r28, 0x12c
/* 801991A0 00196100 90 A1 00 8C */ stw r5, 0x8c(r1)
/* 801991A4 00196104 90 01 00 88 */ stw r0, 0x88(r1)
/* 801991A8 00196108 80 1C 01 00 */ lwz r0, 0x100(r28)
/* 801991AC 0019610C 80 BC 01 04 */ lwz r5, 0x104(r28)
/* 801991B0 00196110 90 A1 00 94 */ stw r5, 0x94(r1)
/* 801991B4 00196114 90 01 00 90 */ stw r0, 0x90(r1)
/* 801991B8 00196118 80 1C 01 08 */ lwz r0, 0x108(r28)
/* 801991BC 0019611C 90 01 00 98 */ stw r0, 0x98(r1)
/* 801991C0 00196120 4B F2 A2 89 */ bl __ct__11CDamageInfoFRC11CDamageInfof
/* 801991C4 00196124 A0 1C 00 EC */ lhz r0, 0xec(r28)
/* 801991C8 00196128 7F C3 F3 78 */ mr r3, r30
/* 801991CC 0019612C 7F 85 E3 78 */ mr r5, r28
/* 801991D0 00196130 7F E6 FB 78 */ mr r6, r31
/* 801991D4 00196134 B0 01 00 08 */ sth r0, 8(r1)
/* 801991D8 00196138 38 81 00 0C */ addi r4, r1, 0xc
/* 801991DC 0019613C 38 E1 00 A0 */ addi r7, r1, 0xa0
/* 801991E0 00196140 39 01 00 88 */ addi r8, r1, 0x88
/* 801991E4 00196144 B0 01 00 0C */ sth r0, 0xc(r1)
/* 801991E8 00196148 4B EA FA C5 */ bl ApplyDamageToWorld__13CStateManagerF9TUniqueIdRC6CActorRC9CVector3fRC11CDamageInfoRC15CMaterialFilter
/* 801991EC 0019614C 48 00 00 4C */ b lbl_80199238
lbl_801991F0:
/* 801991F0 00196150 C0 3C 02 F4 */ lfs f1, 0x2f4(r28)
/* 801991F4 00196154 7F A4 EB 78 */ mr r4, r29
/* 801991F8 00196158 C0 1C 03 04 */ lfs f0, 0x304(r28)
/* 801991FC 0019615C 38 61 00 34 */ addi r3, r1, 0x34
/* 80199200 00196160 38 A1 00 28 */ addi r5, r1, 0x28
/* 80199204 00196164 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 80199208 00196168 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8019920C 0019616C D0 21 00 30 */ stfs f1, 0x30(r1)
/* 80199210 00196170 48 17 98 D9 */ bl __ml__12CTransform4fCFRC9CVector3f
/* 80199214 00196174 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 80199218 00196178 7F 83 E3 78 */ mr r3, r28
/* 8019921C 0019617C 38 9C 03 18 */ addi r4, r28, 0x318
/* 80199220 00196180 D0 1C 03 18 */ stfs f0, 0x318(r28)
/* 80199224 00196184 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 80199228 00196188 D0 1C 03 1C */ stfs f0, 0x31c(r28)
/* 8019922C 0019618C C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 80199230 00196190 D0 1C 03 20 */ stfs f0, 0x320(r28)
/* 80199234 00196194 4B EB 9C 59 */ bl SetTranslation__6CActorFRC9CVector3f
lbl_80199238:
/* 80199238 00196198 7F A4 EB 78 */ mr r4, r29
/* 8019923C 0019619C 38 7C 03 24 */ addi r3, r28, 0x324
/* 80199240 001961A0 48 17 99 01 */ bl __as__12CTransform4fFRC12CTransform4f
/* 80199244 001961A4 80 A1 01 C8 */ lwz r5, 0x1c8(r1)
/* 80199248 001961A8 38 60 00 00 */ li r3, 0
/* 8019924C 001961AC 2C 05 00 00 */ cmpwi r5, 0
/* 80199250 001961B0 40 81 00 40 */ ble lbl_80199290
/* 80199254 001961B4 2C 05 00 08 */ cmpwi r5, 8
/* 80199258 001961B8 38 85 FF F8 */ addi r4, r5, -8
/* 8019925C 001961BC 40 81 00 20 */ ble lbl_8019927C
/* 80199260 001961C0 38 04 00 07 */ addi r0, r4, 7
/* 80199264 001961C4 54 00 E8 FE */ srwi r0, r0, 3
/* 80199268 001961C8 7C 09 03 A6 */ mtctr r0
/* 8019926C 001961CC 2C 04 00 00 */ cmpwi r4, 0
/* 80199270 001961D0 40 81 00 0C */ ble lbl_8019927C
lbl_80199274:
/* 80199274 001961D4 38 63 00 08 */ addi r3, r3, 8
/* 80199278 001961D8 42 00 FF FC */ bdnz lbl_80199274
lbl_8019927C:
/* 8019927C 001961DC 7C 03 28 50 */ subf r0, r3, r5
/* 80199280 001961E0 7C 09 03 A6 */ mtctr r0
/* 80199284 001961E4 7C 03 28 00 */ cmpw r3, r5
/* 80199288 001961E8 40 80 00 08 */ bge lbl_80199290
lbl_8019928C:
/* 8019928C 001961EC 42 00 00 00 */ bdnz lbl_8019928C
lbl_80199290:
/* 80199290 001961F0 38 00 00 00 */ li r0, 0
/* 80199294 001961F4 90 01 01 C8 */ stw r0, 0x1c8(r1)
lbl_80199298:
/* 80199298 001961F8 E3 E1 09 E8 */ psq_l f31, -1560(r1), 0, qr0
/* 8019929C 001961FC 80 01 09 F4 */ lwz r0, 0x9f4(r1)
/* 801992A0 00196200 CB E1 09 E0 */ lfd f31, 0x9e0(r1)
/* 801992A4 00196204 83 E1 09 DC */ lwz r31, 0x9dc(r1)
/* 801992A8 00196208 83 C1 09 D8 */ lwz r30, 0x9d8(r1)
/* 801992AC 0019620C 83 A1 09 D4 */ lwz r29, 0x9d4(r1)
/* 801992B0 00196210 83 81 09 D0 */ lwz r28, 0x9d0(r1)
/* 801992B4 00196214 7C 08 03 A6 */ mtlr r0
/* 801992B8 00196218 38 21 09 F0 */ addi r1, r1, 0x9f0
/* 801992BC 0019621C 4E 80 00 20 */ blr
.global SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult
SetCollisionResultData__15CBeamProjectileFQ215CBeamProjectile11EDamageTypeRC14CRayCastResult:
/* 801992C0 00196220 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801992C4 00196224 7C 08 02 A6 */ mflr r0
/* 801992C8 00196228 2C 04 00 01 */ cmpwi r4, 1
/* 801992CC 0019622C 90 01 00 14 */ stw r0, 0x14(r1)
/* 801992D0 00196230 90 83 02 F8 */ stw r4, 0x2f8(r3)
/* 801992D4 00196234 C0 05 00 00 */ lfs f0, 0(r5)
/* 801992D8 00196238 D0 03 03 04 */ stfs f0, 0x304(r3)
/* 801992DC 0019623C C0 05 00 04 */ lfs f0, 4(r5)
/* 801992E0 00196240 D0 03 03 18 */ stfs f0, 0x318(r3)
/* 801992E4 00196244 C0 05 00 08 */ lfs f0, 8(r5)
/* 801992E8 00196248 D0 03 03 1C */ stfs f0, 0x31c(r3)
/* 801992EC 0019624C C0 05 00 0C */ lfs f0, 0xc(r5)
/* 801992F0 00196250 D0 03 03 20 */ stfs f0, 0x320(r3)
/* 801992F4 00196254 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 801992F8 00196258 D0 03 03 0C */ stfs f0, 0x30c(r3)
/* 801992FC 0019625C C0 05 00 14 */ lfs f0, 0x14(r5)
/* 80199300 00196260 D0 03 03 10 */ stfs f0, 0x310(r3)
/* 80199304 00196264 C0 05 00 18 */ lfs f0, 0x18(r5)
/* 80199308 00196268 D0 03 03 14 */ stfs f0, 0x314(r3)
/* 8019930C 0019626C 40 82 00 08 */ bne lbl_80199314
/* 80199310 00196270 48 00 00 08 */ b lbl_80199318
lbl_80199314:
/* 80199314 00196274 38 CD A3 8C */ addi r6, r13, kInvalidUniqueId@sda21
lbl_80199318:
/* 80199318 00196278 A0 06 00 00 */ lhz r0, 0(r6)
/* 8019931C 0019627C 38 85 00 04 */ addi r4, r5, 4
/* 80199320 00196280 B0 03 02 FE */ sth r0, 0x2fe(r3)
/* 80199324 00196284 4B EB 9B 69 */ bl SetTranslation__6CActorFRC9CVector3f
/* 80199328 00196288 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8019932C 0019628C 7C 08 03 A6 */ mtlr r0
/* 80199330 00196290 38 21 00 10 */ addi r1, r1, 0x10
/* 80199334 00196294 4E 80 00 20 */ blr
.global ResetBeam__15CBeamProjectileFR13CStateManagerb
ResetBeam__15CBeamProjectileFR13CStateManagerb:
/* 80199338 00196298 88 03 04 64 */ lbz r0, 0x464(r3)
/* 8019933C 0019629C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80199340 001962A0 4D 82 00 20 */ beqlr
/* 80199344 001962A4 C0 02 A6 C8 */ lfs f0, lbl_805AC3E8@sda21(r2)
/* 80199348 001962A8 D0 03 03 00 */ stfs f0, 0x300(r3)
/* 8019934C 001962AC 4E 80 00 20 */ blr
.global nullsub_142
nullsub_142:
/* 80199350 001962B0 4E 80 00 20 */ blr
.global Accept__15CBeamProjectileFR8IVisitor
Accept__15CBeamProjectileFR8IVisitor:
/* 80199354 001962B4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80199358 001962B8 7C 08 02 A6 */ mflr r0
/* 8019935C 001962BC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80199360 001962C0 7C 60 1B 78 */ mr r0, r3
/* 80199364 001962C4 7C 83 23 78 */ mr r3, r4
/* 80199368 001962C8 81 84 00 00 */ lwz r12, 0(r4)
/* 8019936C 001962CC 7C 04 03 78 */ mr r4, r0
/* 80199370 001962D0 81 8C 00 3C */ lwz r12, 0x3c(r12)
/* 80199374 001962D4 7D 89 03 A6 */ mtctr r12
/* 80199378 001962D8 4E 80 04 21 */ bctrl
/* 8019937C 001962DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80199380 001962E0 7C 08 03 A6 */ mtlr r0
/* 80199384 001962E4 38 21 00 10 */ addi r1, r1, 0x10
/* 80199388 001962E8 4E 80 00 20 */ blr
.global CalculateRenderBounds__15CBeamProjectileFv
CalculateRenderBounds__15CBeamProjectileFv:
/* 8019938C 001962EC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80199390 001962F0 7C 08 02 A6 */ mflr r0
/* 80199394 001962F4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80199398 001962F8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8019939C 001962FC 7C 7F 1B 78 */ mr r31, r3
/* 801993A0 00196300 38 61 00 08 */ addi r3, r1, 8
/* 801993A4 00196304 38 9F 03 54 */ addi r4, r31, 0x354
/* 801993A8 00196308 38 BF 03 24 */ addi r5, r31, 0x324
/* 801993AC 0019630C 48 19 E5 51 */ bl GetTransformedAABox__6CAABoxCFRC12CTransform4f
/* 801993B0 00196310 80 61 00 08 */ lwz r3, 8(r1)
/* 801993B4 00196314 80 01 00 0C */ lwz r0, 0xc(r1)
/* 801993B8 00196318 90 7F 00 9C */ stw r3, 0x9c(r31)
/* 801993BC 0019631C 90 1F 00 A0 */ stw r0, 0xa0(r31)
/* 801993C0 00196320 80 01 00 10 */ lwz r0, 0x10(r1)
/* 801993C4 00196324 90 1F 00 A4 */ stw r0, 0xa4(r31)
/* 801993C8 00196328 80 61 00 14 */ lwz r3, 0x14(r1)
/* 801993CC 0019632C 80 01 00 18 */ lwz r0, 0x18(r1)
/* 801993D0 00196330 90 7F 00 A8 */ stw r3, 0xa8(r31)
/* 801993D4 00196334 90 1F 00 AC */ stw r0, 0xac(r31)
/* 801993D8 00196338 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 801993DC 0019633C 90 1F 00 B0 */ stw r0, 0xb0(r31)
/* 801993E0 00196340 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801993E4 00196344 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801993E8 00196348 7C 08 03 A6 */ mtlr r0
/* 801993EC 0019634C 38 21 00 30 */ addi r1, r1, 0x30
/* 801993F0 00196350 4E 80 00 20 */ blr
.global GetTouchBounds__15CBeamProjectileCFv
GetTouchBounds__15CBeamProjectileCFv:
/* 801993F4 00196354 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801993F8 00196358 88 04 00 30 */ lbz r0, 0x30(r4)
/* 801993FC 0019635C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 80199400 00196360 41 82 00 10 */ beq lbl_80199410
/* 80199404 00196364 88 04 04 64 */ lbz r0, 0x464(r4)
/* 80199408 00196368 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8019940C 0019636C 40 82 00 10 */ bne lbl_8019941C
lbl_80199410:
/* 80199410 00196370 38 00 00 00 */ li r0, 0
/* 80199414 00196374 98 03 00 18 */ stb r0, 0x18(r3)
/* 80199418 00196378 48 00 00 6C */ b lbl_80199484
lbl_8019941C:
/* 8019941C 0019637C C0 C4 00 60 */ lfs f6, 0x60(r4)
/* 80199420 00196380 28 03 00 00 */ cmplwi r3, 0
/* 80199424 00196384 C0 E2 84 00 */ lfs f7, lbl_805AA120@sda21(r2)
/* 80199428 00196388 38 00 00 01 */ li r0, 1
/* 8019942C 0019638C C0 24 00 50 */ lfs f1, 0x50(r4)
/* 80199430 00196390 C0 04 00 40 */ lfs f0, 0x40(r4)
/* 80199434 00196394 EC 66 38 28 */ fsubs f3, f6, f7
/* 80199438 00196398 EC 81 38 28 */ fsubs f4, f1, f7
/* 8019943C 0019639C EC A0 38 28 */ fsubs f5, f0, f7
/* 80199440 001963A0 98 03 00 18 */ stb r0, 0x18(r3)
/* 80199444 001963A4 EC 47 00 2A */ fadds f2, f7, f0
/* 80199448 001963A8 EC 27 08 2A */ fadds f1, f7, f1
/* 8019944C 001963AC D0 81 00 0C */ stfs f4, 0xc(r1)
/* 80199450 001963B0 EC 07 30 2A */ fadds f0, f7, f6
/* 80199454 001963B4 D0 A1 00 08 */ stfs f5, 8(r1)
/* 80199458 001963B8 D0 61 00 10 */ stfs f3, 0x10(r1)
/* 8019945C 001963BC D0 41 00 14 */ stfs f2, 0x14(r1)
/* 80199460 001963C0 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 80199464 001963C4 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80199468 001963C8 41 82 00 1C */ beq lbl_80199484
/* 8019946C 001963CC D0 A3 00 00 */ stfs f5, 0(r3)
/* 80199470 001963D0 D0 83 00 04 */ stfs f4, 4(r3)
/* 80199474 001963D4 D0 63 00 08 */ stfs f3, 8(r3)
/* 80199478 001963D8 D0 43 00 0C */ stfs f2, 0xc(r3)
/* 8019947C 001963DC D0 23 00 10 */ stfs f1, 0x10(r3)
/* 80199480 001963E0 D0 03 00 14 */ stfs f0, 0x14(r3)
lbl_80199484:
/* 80199484 001963E4 38 21 00 20 */ addi r1, r1, 0x20
/* 80199488 001963E8 4E 80 00 20 */ blr
.global "__ct__15CBeamProjectileFRC28TToken<18CWeaponDescription>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>11EWeaponTypeRC12CTransform4fiff14EMaterialTypesRC11CDamageInfo9TUniqueId9TUniqueIdUib"
"__ct__15CBeamProjectileFRC28TToken<18CWeaponDescription>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>11EWeaponTypeRC12CTransform4fiff14EMaterialTypesRC11CDamageInfo9TUniqueId9TUniqueIdUib":
/* 8019948C 001963EC 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 80199490 001963F0 7C 08 02 A6 */ mflr r0
/* 80199494 001963F4 90 01 00 C4 */ stw r0, 0xc4(r1)
/* 80199498 001963F8 DB E1 00 B0 */ stfd f31, 0xb0(r1)
/* 8019949C 001963FC F3 E1 00 B8 */ psq_st f31, 184(r1), 0, qr0
/* 801994A0 00196400 DB C1 00 A0 */ stfd f30, 0xa0(r1)
/* 801994A4 00196404 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, qr0
/* 801994A8 00196408 BE 61 00 6C */ stmw r19, 0x6c(r1)
/* 801994AC 0019640C C0 02 A6 CC */ lfs f0, lbl_805AC3EC@sda21(r2)
/* 801994B0 00196410 38 00 00 00 */ li r0, 0
/* 801994B4 00196414 A2 ED A3 8C */ lhz r23, kInvalidUniqueId@sda21(r13)
/* 801994B8 00196418 7C BB 2B 78 */ mr r27, r5
/* 801994BC 0019641C 98 01 00 4C */ stb r0, 0x4c(r1)
/* 801994C0 00196420 7C DC 33 78 */ mr r28, r6
/* 801994C4 00196424 80 A1 00 D0 */ lwz r5, 0xd0(r1)
/* 801994C8 00196428 7C FD 3B 78 */ mr r29, r7
/* 801994CC 0019642C B2 E1 00 30 */ sth r23, 0x30(r1)
/* 801994D0 00196430 7D 1E 43 78 */ mr r30, r8
/* 801994D4 00196434 80 C1 00 CC */ lwz r6, 0xcc(r1)
/* 801994D8 00196438 3A 61 00 38 */ addi r19, r1, 0x38
/* 801994DC 0019643C D0 01 00 50 */ stfs f0, 0x50(r1)
/* 801994E0 00196440 3A 81 00 3C */ addi r20, r1, 0x3c
/* 801994E4 00196444 81 81 00 C8 */ lwz r12, 0xc8(r1)
/* 801994E8 00196448 3A A1 00 34 */ addi r21, r1, 0x34
/* 801994EC 0019644C D0 01 00 54 */ stfs f0, 0x54(r1)
/* 801994F0 00196450 3A C1 00 30 */ addi r22, r1, 0x30
/* 801994F4 00196454 81 61 00 D4 */ lwz r11, 0xd4(r1)
/* 801994F8 00196458 3A E1 00 50 */ addi r23, r1, 0x50
/* 801994FC 0019645C D0 01 00 58 */ stfs f0, 0x58(r1)
/* 80199500 00196460 3B 01 00 40 */ addi r24, r1, 0x40
/* 80199504 00196464 A3 22 C5 FC */ lhz r25, lbl_805AE31C@sda21(r2)
/* 80199508 00196468 FF C0 08 90 */ fmr f30, f1
/* 8019950C 0019646C A0 A5 00 00 */ lhz r5, 0(r5)
/* 80199510 00196470 FF E0 10 90 */ fmr f31, f2
/* 80199514 00196474 8B E1 00 DB */ lbz r31, 0xdb(r1)
/* 80199518 00196478 7C 7A 1B 78 */ mr r26, r3
/* 8019951C 0019647C B0 A1 00 34 */ sth r5, 0x34(r1)
/* 80199520 00196480 7C 85 23 78 */ mr r5, r4
/* 80199524 00196484 7F 87 E3 78 */ mr r7, r28
/* 80199528 00196488 80 86 00 00 */ lwz r4, 0(r6)
/* 8019952C 0019648C 7F 66 DB 78 */ mr r6, r27
/* 80199530 00196490 7F A8 EB 78 */ mr r8, r29
/* 80199534 00196494 90 81 00 3C */ stw r4, 0x3c(r1)
/* 80199538 00196498 38 80 00 00 */ li r4, 0
/* 8019953C 0019649C A1 8C 00 00 */ lhz r12, 0(r12)
/* 80199540 001964A0 B1 81 00 38 */ sth r12, 0x38(r1)
/* 80199544 001964A4 92 61 00 08 */ stw r19, 8(r1)
/* 80199548 001964A8 92 81 00 0C */ stw r20, 0xc(r1)
/* 8019954C 001964AC 92 A1 00 10 */ stw r21, 0x10(r1)
/* 80199550 001964B0 92 C1 00 14 */ stw r22, 0x14(r1)
/* 80199554 001964B4 91 61 00 18 */ stw r11, 0x18(r1)
/* 80199558 001964B8 90 01 00 1C */ stw r0, 0x1c(r1)
/* 8019955C 001964BC 92 E1 00 20 */ stw r23, 0x20(r1)
/* 80199560 001964C0 93 01 00 24 */ stw r24, 0x24(r1)
/* 80199564 001964C4 93 21 00 28 */ stw r25, 0x28(r1)
/* 80199568 001964C8 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8019956C 001964CC 4B EA 0F 19 */ bl "__ct__15CGameProjectileFbRC28TToken<18CWeaponDescription>RCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>11EWeaponTypeRC12CTransform4f14EMaterialTypesRC11CDamageInfo9TUniqueId7TAreaId9TUniqueId9TUniqueIdUibRC9CVector3fRCQ24rstl50optional_object<31TLockedToken<15CGenDescription>>sb"
/* 80199570 001964D0 88 01 00 4C */ lbz r0, 0x4c(r1)
/* 80199574 001964D4 28 00 00 00 */ cmplwi r0, 0
/* 80199578 001964D8 41 82 00 1C */ beq lbl_80199594
/* 8019957C 001964DC 34 61 00 40 */ addic. r3, r1, 0x40
/* 80199580 001964E0 41 82 00 14 */ beq lbl_80199594
/* 80199584 001964E4 28 03 00 00 */ cmplwi r3, 0
/* 80199588 001964E8 41 82 00 0C */ beq lbl_80199594
/* 8019958C 001964EC 38 80 00 00 */ li r4, 0
/* 80199590 001964F0 48 1A 78 B1 */ bl __dt__6CTokenFv
lbl_80199594:
/* 80199594 001964F4 38 00 00 00 */ li r0, 0
/* 80199598 001964F8 3C 60 80 3E */ lis r3, lbl_803E4648@ha
/* 8019959C 001964FC 98 01 00 4C */ stb r0, 0x4c(r1)
/* 801995A0 00196500 38 03 46 48 */ addi r0, r3, lbl_803E4648@l
/* 801995A4 00196504 7F C3 F3 78 */ mr r3, r30
/* 801995A8 00196508 90 1A 00 00 */ stw r0, 0(r26)
/* 801995AC 0019650C 48 1F 38 71 */ bl abs
/* 801995B0 00196510 90 7A 02 E8 */ stw r3, 0x2e8(r26)
/* 801995B4 00196514 3C 60 43 30 */ lis r3, 0x4330
/* 801995B8 00196518 C8 42 A6 D0 */ lfd f2, lbl_805AC3F0@sda21(r2)
/* 801995BC 0019651C 38 00 00 00 */ li r0, 0
/* 801995C0 00196520 80 9A 02 E8 */ lwz r4, 0x2e8(r26)
/* 801995C4 00196524 28 1F 00 00 */ cmplwi r31, 0
/* 801995C8 00196528 90 61 00 60 */ stw r3, 0x60(r1)
/* 801995CC 0019652C 6C 83 80 00 */ xoris r3, r4, 0x8000
/* 801995D0 00196530 C0 22 A6 CC */ lfs f1, lbl_805AC3EC@sda21(r2)
/* 801995D4 00196534 90 61 00 64 */ stw r3, 0x64(r1)
/* 801995D8 00196538 C8 01 00 60 */ lfd f0, 0x60(r1)
/* 801995DC 0019653C EC 00 10 28 */ fsubs f0, f0, f2
/* 801995E0 00196540 D0 1A 02 EC */ stfs f0, 0x2ec(r26)
/* 801995E4 00196544 C0 1A 02 EC */ lfs f0, 0x2ec(r26)
/* 801995E8 00196548 EC 01 00 24 */ fdivs f0, f1, f0
/* 801995EC 0019654C D0 1A 02 F0 */ stfs f0, 0x2f0(r26)
/* 801995F0 00196550 D3 DA 02 F4 */ stfs f30, 0x2f4(r26)
/* 801995F4 00196554 90 1A 02 F8 */ stw r0, 0x2f8(r26)
/* 801995F8 00196558 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 801995FC 0019655C B0 1A 02 FC */ sth r0, 0x2fc(r26)
/* 80199600 00196560 A0 0D A3 8C */ lhz r0, kInvalidUniqueId@sda21(r13)
/* 80199604 00196564 B0 1A 02 FE */ sth r0, 0x2fe(r26)
/* 80199608 00196568 41 82 00 0C */ beq lbl_80199614
/* 8019960C 0019656C C0 02 A6 C8 */ lfs f0, lbl_805AC3E8@sda21(r2)
/* 80199610 00196570 48 00 00 08 */ b lbl_80199618
lbl_80199614:
/* 80199614 00196574 C0 1A 02 EC */ lfs f0, 0x2ec(r26)
lbl_80199618:
/* 80199618 00196578 D0 1A 03 00 */ stfs f0, 0x300(r26)
/* 8019961C 0019657C 3C 60 80 5A */ lis r3, sIdentity__12CTransform4f@ha
/* 80199620 00196580 38 83 66 70 */ addi r4, r3, sIdentity__12CTransform4f@l
/* 80199624 00196584 3C C0 80 5A */ lis r6, sUpVector__9CVector3f@ha
/* 80199628 00196588 C0 1A 02 EC */ lfs f0, 0x2ec(r26)
/* 8019962C 0019658C 3C A0 80 5A */ lis r5, sZeroVector__9CVector3f@ha
/* 80199630 00196590 38 7A 03 24 */ addi r3, r26, 0x324
/* 80199634 00196594 D0 1A 03 04 */ stfs f0, 0x304(r26)
/* 80199638 00196598 D3 FA 03 08 */ stfs f31, 0x308(r26)
/* 8019963C 0019659C C4 06 66 F4 */ lfsu f0, sUpVector__9CVector3f@l(r6)
/* 80199640 001965A0 D0 1A 03 0C */ stfs f0, 0x30c(r26)
/* 80199644 001965A4 C0 06 00 04 */ lfs f0, 4(r6)
/* 80199648 001965A8 D0 1A 03 10 */ stfs f0, 0x310(r26)
/* 8019964C 001965AC C0 06 00 08 */ lfs f0, 8(r6)
/* 80199650 001965B0 D0 1A 03 14 */ stfs f0, 0x314(r26)
/* 80199654 001965B4 C4 05 66 A0 */ lfsu f0, sZeroVector__9CVector3f@l(r5)
/* 80199658 001965B8 D0 1A 03 18 */ stfs f0, 0x318(r26)
/* 8019965C 001965BC C0 05 00 04 */ lfs f0, 4(r5)
/* 80199660 001965C0 D0 1A 03 1C */ stfs f0, 0x31c(r26)
/* 80199664 001965C4 C0 05 00 08 */ lfs f0, 8(r5)
/* 80199668 001965C8 D0 1A 03 20 */ stfs f0, 0x320(r26)
/* 8019966C 001965CC 48 17 95 09 */ bl __ct__12CTransform4fFRC12CTransform4f
/* 80199670 001965D0 3C 60 80 5A */ lis r3, lbl_805A6784@ha
/* 80199674 001965D4 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 80199678 001965D8 38 A3 67 84 */ addi r5, r3, lbl_805A6784@l
/* 8019967C 001965DC 38 60 00 0A */ li r3, 0xa
/* 80199680 001965E0 C0 05 00 00 */ lfs f0, 0(r5)
/* 80199684 001965E4 38 00 00 02 */ li r0, 2
/* 80199688 001965E8 38 84 66 A0 */ addi r4, r4, sZeroVector__9CVector3f@l
/* 8019968C 001965EC 38 FA 03 88 */ addi r7, r26, 0x388
/* 80199690 001965F0 D0 1A 03 54 */ stfs f0, 0x354(r26)
/* 80199694 001965F4 38 C0 00 00 */ li r6, 0
/* 80199698 001965F8 C0 05 00 04 */ lfs f0, 4(r5)
/* 8019969C 001965FC D0 1A 03 58 */ stfs f0, 0x358(r26)
/* 801996A0 00196600 C0 05 00 08 */ lfs f0, 8(r5)
/* 801996A4 00196604 D0 1A 03 5C */ stfs f0, 0x35c(r26)
/* 801996A8 00196608 C0 05 00 0C */ lfs f0, 0xc(r5)
/* 801996AC 0019660C D0 1A 03 60 */ stfs f0, 0x360(r26)
/* 801996B0 00196610 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 801996B4 00196614 D0 1A 03 64 */ stfs f0, 0x364(r26)
/* 801996B8 00196618 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 801996BC 0019661C D0 1A 03 68 */ stfs f0, 0x368(r26)
/* 801996C0 00196620 C0 05 00 00 */ lfs f0, 0(r5)
/* 801996C4 00196624 D0 1A 03 6C */ stfs f0, 0x36c(r26)
/* 801996C8 00196628 C0 05 00 04 */ lfs f0, 4(r5)
/* 801996CC 0019662C D0 1A 03 70 */ stfs f0, 0x370(r26)
/* 801996D0 00196630 C0 05 00 08 */ lfs f0, 8(r5)
/* 801996D4 00196634 D0 1A 03 74 */ stfs f0, 0x374(r26)
/* 801996D8 00196638 C0 05 00 0C */ lfs f0, 0xc(r5)
/* 801996DC 0019663C D0 1A 03 78 */ stfs f0, 0x378(r26)
/* 801996E0 00196640 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 801996E4 00196644 D0 1A 03 7C */ stfs f0, 0x37c(r26)
/* 801996E8 00196648 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 801996EC 0019664C D0 1A 03 80 */ stfs f0, 0x380(r26)
/* 801996F0 00196650 90 7A 03 84 */ stw r3, 0x384(r26)
/* 801996F4 00196654 7C 09 03 A6 */ mtctr r0
lbl_801996F8:
/* 801996F8 00196658 28 07 00 00 */ cmplwi r7, 0
/* 801996FC 0019665C 41 82 00 1C */ beq lbl_80199718
/* 80199700 00196660 C0 04 00 00 */ lfs f0, 0(r4)
/* 80199704 00196664 D0 07 00 00 */ stfs f0, 0(r7)
/* 80199708 00196668 C0 04 00 04 */ lfs f0, 4(r4)
/* 8019970C 0019666C D0 07 00 04 */ stfs f0, 4(r7)
/* 80199710 00196670 C0 04 00 08 */ lfs f0, 8(r4)
/* 80199714 00196674 D0 07 00 08 */ stfs f0, 8(r7)
lbl_80199718:
/* 80199718 00196678 34 E7 00 0C */ addic. r7, r7, 0xc
/* 8019971C 0019667C 41 82 00 1C */ beq lbl_80199738
/* 80199720 00196680 C0 04 00 00 */ lfs f0, 0(r4)
/* 80199724 00196684 D0 07 00 00 */ stfs f0, 0(r7)
/* 80199728 00196688 C0 04 00 04 */ lfs f0, 4(r4)
/* 8019972C 0019668C D0 07 00 04 */ stfs f0, 4(r7)
/* 80199730 00196690 C0 04 00 08 */ lfs f0, 8(r4)
/* 80199734 00196694 D0 07 00 08 */ stfs f0, 8(r7)
lbl_80199738:
/* 80199738 00196698 34 E7 00 0C */ addic. r7, r7, 0xc
/* 8019973C 0019669C 41 82 00 1C */ beq lbl_80199758
/* 80199740 001966A0 C0 04 00 00 */ lfs f0, 0(r4)
/* 80199744 001966A4 D0 07 00 00 */ stfs f0, 0(r7)
/* 80199748 001966A8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8019974C 001966AC D0 07 00 04 */ stfs f0, 4(r7)
/* 80199750 001966B0 C0 04 00 08 */ lfs f0, 8(r4)
/* 80199754 001966B4 D0 07 00 08 */ stfs f0, 8(r7)
lbl_80199758:
/* 80199758 001966B8 34 E7 00 0C */ addic. r7, r7, 0xc
/* 8019975C 001966BC 41 82 00 1C */ beq lbl_80199778
/* 80199760 001966C0 C0 04 00 00 */ lfs f0, 0(r4)
/* 80199764 001966C4 D0 07 00 00 */ stfs f0, 0(r7)
/* 80199768 001966C8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8019976C 001966CC D0 07 00 04 */ stfs f0, 4(r7)
/* 80199770 001966D0 C0 04 00 08 */ lfs f0, 8(r4)
/* 80199774 001966D4 D0 07 00 08 */ stfs f0, 8(r7)
lbl_80199778:
/* 80199778 001966D8 34 E7 00 0C */ addic. r7, r7, 0xc
/* 8019977C 001966DC 41 82 00 1C */ beq lbl_80199798
/* 80199780 001966E0 C0 04 00 00 */ lfs f0, 0(r4)
/* 80199784 001966E4 D0 07 00 00 */ stfs f0, 0(r7)
/* 80199788 001966E8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8019978C 001966EC D0 07 00 04 */ stfs f0, 4(r7)
/* 80199790 001966F0 C0 04 00 08 */ lfs f0, 8(r4)
/* 80199794 001966F4 D0 07 00 08 */ stfs f0, 8(r7)
lbl_80199798:
/* 80199798 001966F8 38 C6 00 04 */ addi r6, r6, 4
/* 8019979C 001966FC 38 E7 00 0C */ addi r7, r7, 0xc
/* 801997A0 00196700 42 00 FF 58 */ bdnz lbl_801996F8
/* 801997A4 00196704 3C 80 80 5A */ lis r4, sZeroVector__9CVector3f@ha
/* 801997A8 00196708 38 60 00 08 */ li r3, 8
/* 801997AC 0019670C 38 00 00 02 */ li r0, 2
/* 801997B0 00196710 90 7A 04 00 */ stw r3, 0x400(r26)
/* 801997B4 00196714 38 64 66 A0 */ addi r3, r4, sZeroVector__9CVector3f@l
/* 801997B8 00196718 38 BA 04 04 */ addi r5, r26, 0x404
/* 801997BC 0019671C 38 80 00 00 */ li r4, 0
/* 801997C0 00196720 7C 09 03 A6 */ mtctr r0
lbl_801997C4:
/* 801997C4 00196724 28 05 00 00 */ cmplwi r5, 0
/* 801997C8 00196728 41 82 00 1C */ beq lbl_801997E4
/* 801997CC 0019672C C0 03 00 00 */ lfs f0, 0(r3)
/* 801997D0 00196730 D0 05 00 00 */ stfs f0, 0(r5)
/* 801997D4 00196734 C0 03 00 04 */ lfs f0, 4(r3)
/* 801997D8 00196738 D0 05 00 04 */ stfs f0, 4(r5)
/* 801997DC 0019673C C0 03 00 08 */ lfs f0, 8(r3)
/* 801997E0 00196740 D0 05 00 08 */ stfs f0, 8(r5)
lbl_801997E4:
/* 801997E4 00196744 34 A5 00 0C */ addic. r5, r5, 0xc
/* 801997E8 00196748 41 82 00 1C */ beq lbl_80199804
/* 801997EC 0019674C C0 03 00 00 */ lfs f0, 0(r3)
/* 801997F0 00196750 D0 05 00 00 */ stfs f0, 0(r5)
/* 801997F4 00196754 C0 03 00 04 */ lfs f0, 4(r3)
/* 801997F8 00196758 D0 05 00 04 */ stfs f0, 4(r5)
/* 801997FC 0019675C C0 03 00 08 */ lfs f0, 8(r3)
/* 80199800 00196760 D0 05 00 08 */ stfs f0, 8(r5)
lbl_80199804:
/* 80199804 00196764 34 A5 00 0C */ addic. r5, r5, 0xc
/* 80199808 00196768 41 82 00 1C */ beq lbl_80199824
/* 8019980C 0019676C C0 03 00 00 */ lfs f0, 0(r3)
/* 80199810 00196770 D0 05 00 00 */ stfs f0, 0(r5)
/* 80199814 00196774 C0 03 00 04 */ lfs f0, 4(r3)
/* 80199818 00196778 D0 05 00 04 */ stfs f0, 4(r5)
/* 8019981C 0019677C C0 03 00 08 */ lfs f0, 8(r3)
/* 80199820 00196780 D0 05 00 08 */ stfs f0, 8(r5)
lbl_80199824:
/* 80199824 00196784 34 A5 00 0C */ addic. r5, r5, 0xc
/* 80199828 00196788 41 82 00 1C */ beq lbl_80199844
/* 8019982C 0019678C C0 03 00 00 */ lfs f0, 0(r3)
/* 80199830 00196790 D0 05 00 00 */ stfs f0, 0(r5)
/* 80199834 00196794 C0 03 00 04 */ lfs f0, 4(r3)
/* 80199838 00196798 D0 05 00 04 */ stfs f0, 4(r5)
/* 8019983C 0019679C C0 03 00 08 */ lfs f0, 8(r3)
/* 80199840 001967A0 D0 05 00 08 */ stfs f0, 8(r5)
lbl_80199844:
/* 80199844 001967A4 38 84 00 03 */ addi r4, r4, 3
/* 80199848 001967A8 38 A5 00 0C */ addi r5, r5, 0xc
/* 8019984C 001967AC 42 00 FF 78 */ bdnz lbl_801997C4
/* 80199850 001967B0 88 1A 04 64 */ lbz r0, 0x464(r26)
/* 80199854 001967B4 53 E0 3E 30 */ rlwimi r0, r31, 7, 0x18, 0x18
/* 80199858 001967B8 38 80 00 00 */ li r4, 0
/* 8019985C 001967BC 7F 43 D3 78 */ mr r3, r26
/* 80199860 001967C0 98 1A 04 64 */ stb r0, 0x464(r26)
/* 80199864 001967C4 88 1A 04 64 */ lbz r0, 0x464(r26)
/* 80199868 001967C8 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 8019986C 001967CC 98 1A 04 64 */ stb r0, 0x464(r26)
/* 80199870 001967D0 E3 E1 00 B8 */ psq_l f31, 184(r1), 0, qr0
/* 80199874 001967D4 CB E1 00 B0 */ lfd f31, 0xb0(r1)
/* 80199878 001967D8 E3 C1 00 A8 */ psq_l f30, 168(r1), 0, qr0
/* 8019987C 001967DC CB C1 00 A0 */ lfd f30, 0xa0(r1)
/* 80199880 001967E0 BA 61 00 6C */ lmw r19, 0x6c(r1)
/* 80199884 001967E4 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 80199888 001967E8 7C 08 03 A6 */ mtlr r0
/* 8019988C 001967EC 38 21 00 C0 */ addi r1, r1, 0xc0
/* 80199890 001967F0 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AC3E8
lbl_805AC3E8:
# ROM: 0x3F8C88
.4byte 0
.global lbl_805AC3EC
lbl_805AC3EC:
# ROM: 0x3F8C8C
.float 1.0
.global lbl_805AC3F0
lbl_805AC3F0:
# ROM: 0x3F8C90
.double 4.503601774854144E15