.include "macros.inc" .section .ctors, "wa" lbl_ctor: .4byte __sinit_CPlasmaBeam_cpp .section .data .balign 8 .global lbl_803DF710 lbl_803DF710: # ROM: 0x3DC710 .4byte 0 .4byte 0 .4byte __dt__11CPlasmaBeamFv .4byte Reset__10CGunWeaponFR13CStateManager .4byte PlayAnim__10CGunWeaponFQ212NWeaponTypes12EGunAnimTypeb .4byte PreRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f .4byte PostRenderGunFx__11CPlasmaBeamFRC13CStateManagerRC12CTransform4f .4byte UpdateGunFx__11CPlasmaBeamFbfRC13CStateManagerRC12CTransform4f .4byte Fire__11CPlasmaBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId .4byte EnableFx__10CGunWeaponFb .4byte EnableSecondaryFx__11CPlasmaBeamFQ210CGunWeapon16ESecondaryFxType .4byte Draw__10CGunWeaponCFbRC13CStateManagerRC12CTransform4fRC11CModelFlagsPC12CActorLights .4byte DrawMuzzleFx__10CGunWeaponCFRC13CStateManager .4byte Update__11CPlasmaBeamFfR13CStateManager .4byte Load__11CPlasmaBeamFb .4byte Unload__11CPlasmaBeamFR13CStateManager .4byte IsLoaded__11CPlasmaBeamCFv .4byte 0 .section .sdata .balign 8 .global lbl_805A7320 lbl_805A7320: # ROM: 0x3F4CC0 .4byte 0 .4byte 0 .section .bss .balign 8 .global lbl_8046C488 lbl_8046C488: .skip 0x10 .section .sdata2, "a" .balign 8 .global lbl_805AAC50 lbl_805AAC50: # ROM: 0x3F74F0 .4byte 0x070B0730 .global lbl_805AAC54 lbl_805AAC54: # ROM: 0x3F74F4 .float 2.0 .global lbl_805AAC58 lbl_805AAC58: # ROM: 0x3F74F8 .float 1.0 .global lbl_805AAC5C lbl_805AAC5C: # ROM: 0x3F74FC .float 0.01 .global lbl_805AAC60 lbl_805AAC60: # ROM: 0x3F7500 .4byte 0x3EA8F5C3 .global lbl_805AAC64 lbl_805AAC64: # ROM: 0x3F7504 .4byte 0x3F266666 .global lbl_805AAC68 lbl_805AAC68: # ROM: 0x3F7508 .float 8.0 .global lbl_805AAC6C lbl_805AAC6C: # ROM: 0x3F750C .float 0.7 .global lbl_805AAC70 lbl_805AAC70: # ROM: 0x3F7510 .4byte 0 .global lbl_805AAC74 lbl_805AAC74: # ROM: 0x3F7514 .float 0.5 .global lbl_805AAC78 lbl_805AAC78: # ROM: 0x3F7518 .float 0.2 .global lbl_805AAC7C lbl_805AAC7C: # ROM: 0x3F751C .4byte 0x3F4CCCCD .global lbl_805AAC80 lbl_805AAC80: # ROM: 0x3F7520 .float 0.125 .global lbl_805AAC84 lbl_805AAC84: # ROM: 0x3F7524 .float 0.25 .section .text, "ax" .global SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff: /* 800DEB9C 000DBAFC 94 21 FF C0 */ stwu r1, -0x40(r1) /* 800DEBA0 000DBB00 7C 08 02 A6 */ mflr r0 /* 800DEBA4 000DBB04 90 01 00 44 */ stw r0, 0x44(r1) /* 800DEBA8 000DBB08 DB E1 00 30 */ stfd f31, 0x30(r1) /* 800DEBAC 000DBB0C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0 /* 800DEBB0 000DBB10 DB C1 00 20 */ stfd f30, 0x20(r1) /* 800DEBB4 000DBB14 F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0 /* 800DEBB8 000DBB18 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800DEBBC 000DBB1C 93 C1 00 18 */ stw r30, 0x18(r1) /* 800DEBC0 000DBB20 93 A1 00 14 */ stw r29, 0x14(r1) /* 800DEBC4 000DBB24 88 03 02 2C */ lbz r0, 0x22c(r3) /* 800DEBC8 000DBB28 FF C0 08 90 */ fmr f30, f1 /* 800DEBCC 000DBB2C FF E0 10 90 */ fmr f31, f2 /* 800DEBD0 000DBB30 7C 7E 1B 78 */ mr r30, r3 /* 800DEBD4 000DBB34 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f /* 800DEBD8 000DBB38 7C 9F 23 78 */ mr r31, r4 /* 800DEBDC 000DBB3C 7C BD 2B 78 */ mr r29, r5 /* 800DEBE0 000DBB40 41 82 00 54 */ beq lbl_800DEC34 /* 800DEBE4 000DBB44 80 7E 02 3C */ lwz r3, 0x23c(r30) /* 800DEBE8 000DBB48 80 1D 00 00 */ lwz r0, 0(r29) /* 800DEBEC 000DBB4C 7C 03 00 00 */ cmpw r3, r0 /* 800DEBF0 000DBB50 41 82 00 44 */ beq lbl_800DEC34 /* 800DEBF4 000DBB54 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13) /* 800DEBF8 000DBB58 7C 03 00 00 */ cmpw r3, r0 /* 800DEBFC 000DBB5C 41 82 00 38 */ beq lbl_800DEC34 /* 800DEC00 000DBB60 80 1E 02 3C */ lwz r0, 0x23c(r30) /* 800DEC04 000DBB64 80 9F 08 50 */ lwz r4, 0x850(r31) /* 800DEC08 000DBB68 54 03 18 38 */ slwi r3, r0, 3 /* 800DEC0C 000DBB6C 90 01 00 0C */ stw r0, 0xc(r1) /* 800DEC10 000DBB70 80 84 00 20 */ lwz r4, 0x20(r4) /* 800DEC14 000DBB74 38 03 00 04 */ addi r0, r3, 4 /* 800DEC18 000DBB78 7C 64 00 2E */ lwzx r3, r4, r0 /* 800DEC1C 000DBB7C 88 03 00 F0 */ lbz r0, 0xf0(r3) /* 800DEC20 000DBB80 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f /* 800DEC24 000DBB84 41 82 00 10 */ beq lbl_800DEC34 /* 800DEC28 000DBB88 C0 22 8F 34 */ lfs f1, lbl_805AAC54@sda21(r2) /* 800DEC2C 000DBB8C C0 42 8F 38 */ lfs f2, lbl_805AAC58@sda21(r2) /* 800DEC30 000DBB90 4B F7 F5 A5 */ bl SetWeaponWorldLighting__9CGameAreaFff lbl_800DEC34: /* 800DEC34 000DBB94 C0 02 8F 38 */ lfs f0, lbl_805AAC58@sda21(r2) /* 800DEC38 000DBB98 80 1D 00 00 */ lwz r0, 0(r29) /* 800DEC3C 000DBB9C FC 00 F8 00 */ fcmpu cr0, f0, f31 /* 800DEC40 000DBBA0 90 1E 02 3C */ stw r0, 0x23c(r30) /* 800DEC44 000DBBA4 7C 60 00 26 */ mfcr r3 /* 800DEC48 000DBBA8 88 1E 02 2C */ lbz r0, 0x22c(r30) /* 800DEC4C 000DBBAC 54 63 1F FE */ rlwinm r3, r3, 3, 0x1f, 0x1f /* 800DEC50 000DBBB0 68 63 00 01 */ xori r3, r3, 1 /* 800DEC54 000DBBB4 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19 /* 800DEC58 000DBBB8 98 1E 02 2C */ stb r0, 0x22c(r30) /* 800DEC5C 000DBBBC 80 7E 02 3C */ lwz r3, 0x23c(r30) /* 800DEC60 000DBBC0 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13) /* 800DEC64 000DBBC4 7C 03 00 00 */ cmpw r3, r0 /* 800DEC68 000DBBC8 41 82 00 38 */ beq lbl_800DECA0 /* 800DEC6C 000DBBCC 80 1E 02 3C */ lwz r0, 0x23c(r30) /* 800DEC70 000DBBD0 80 9F 08 50 */ lwz r4, 0x850(r31) /* 800DEC74 000DBBD4 54 03 18 38 */ slwi r3, r0, 3 /* 800DEC78 000DBBD8 90 01 00 08 */ stw r0, 8(r1) /* 800DEC7C 000DBBDC 80 84 00 20 */ lwz r4, 0x20(r4) /* 800DEC80 000DBBE0 38 03 00 04 */ addi r0, r3, 4 /* 800DEC84 000DBBE4 7C 64 00 2E */ lwzx r3, r4, r0 /* 800DEC88 000DBBE8 88 03 00 F0 */ lbz r0, 0xf0(r3) /* 800DEC8C 000DBBEC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f /* 800DEC90 000DBBF0 41 82 00 10 */ beq lbl_800DECA0 /* 800DEC94 000DBBF4 FC 20 F0 90 */ fmr f1, f30 /* 800DEC98 000DBBF8 FC 40 F8 90 */ fmr f2, f31 /* 800DEC9C 000DBBFC 4B F7 F5 39 */ bl SetWeaponWorldLighting__9CGameAreaFff lbl_800DECA0: /* 800DECA0 000DBC00 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0 /* 800DECA4 000DBC04 CB E1 00 30 */ lfd f31, 0x30(r1) /* 800DECA8 000DBC08 E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0 /* 800DECAC 000DBC0C CB C1 00 20 */ lfd f30, 0x20(r1) /* 800DECB0 000DBC10 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800DECB4 000DBC14 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800DECB8 000DBC18 80 01 00 44 */ lwz r0, 0x44(r1) /* 800DECBC 000DBC1C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 800DECC0 000DBC20 7C 08 03 A6 */ mtlr r0 /* 800DECC4 000DBC24 38 21 00 40 */ addi r1, r1, 0x40 /* 800DECC8 000DBC28 4E 80 00 20 */ blr .global EnableSecondaryFx__11CPlasmaBeamFQ210CGunWeapon16ESecondaryFxType EnableSecondaryFx__11CPlasmaBeamFQ210CGunWeapon16ESecondaryFxType: /* 800DECCC 000DBC2C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 800DECD0 000DBC30 7C 08 02 A6 */ mflr r0 /* 800DECD4 000DBC34 90 01 00 24 */ stw r0, 0x24(r1) /* 800DECD8 000DBC38 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800DECDC 000DBC3C 93 C1 00 18 */ stw r30, 0x18(r1) /* 800DECE0 000DBC40 7C 9E 23 78 */ mr r30, r4 /* 800DECE4 000DBC44 2C 1E 00 02 */ cmpwi r30, 2 /* 800DECE8 000DBC48 93 A1 00 14 */ stw r29, 0x14(r1) /* 800DECEC 000DBC4C 7C 7D 1B 78 */ mr r29, r3 /* 800DECF0 000DBC50 93 81 00 10 */ stw r28, 0x10(r1) /* 800DECF4 000DBC54 41 82 00 E8 */ beq lbl_800DEDDC /* 800DECF8 000DBC58 40 80 00 10 */ bge lbl_800DED08 /* 800DECFC 000DBC5C 2C 1E 00 01 */ cmpwi r30, 1 /* 800DED00 000DBC60 40 80 00 44 */ bge lbl_800DED44 /* 800DED04 000DBC64 48 00 00 D8 */ b lbl_800DEDDC lbl_800DED08: /* 800DED08 000DBC68 2C 1E 00 04 */ cmpwi r30, 4 /* 800DED0C 000DBC6C 40 80 00 D0 */ bge lbl_800DEDDC /* 800DED10 000DBC70 80 1D 01 CC */ lwz r0, 0x1cc(r29) /* 800DED14 000DBC74 2C 00 00 00 */ cmpwi r0, 0 /* 800DED18 000DBC78 41 82 00 C8 */ beq lbl_800DEDE0 /* 800DED1C 000DBC7C 80 7D 02 28 */ lwz r3, 0x228(r29) /* 800DED20 000DBC80 28 03 00 00 */ cmplwi r3, 0 /* 800DED24 000DBC84 41 82 00 BC */ beq lbl_800DEDE0 /* 800DED28 000DBC88 81 83 00 00 */ lwz r12, 0(r3) /* 800DED2C 000DBC8C 38 80 00 00 */ li r4, 0 /* 800DED30 000DBC90 81 8C 00 2C */ lwz r12, 0x2c(r12) /* 800DED34 000DBC94 7D 89 03 A6 */ mtctr r12 /* 800DED38 000DBC98 4E 80 04 21 */ bctrl /* 800DED3C 000DBC9C 48 00 00 A0 */ b lbl_800DEDDC /* 800DED40 000DBCA0 48 00 00 A0 */ b lbl_800DEDE0 lbl_800DED44: /* 800DED44 000DBCA4 3C 60 80 3D */ lis r3, lbl_803CE530@ha /* 800DED48 000DBCA8 3B 80 00 00 */ li r28, 0 /* 800DED4C 000DBCAC 38 83 E5 30 */ addi r4, r3, lbl_803CE530@l /* 800DED50 000DBCB0 38 A0 00 00 */ li r5, 0 /* 800DED54 000DBCB4 38 60 03 40 */ li r3, 0x340 /* 800DED58 000DBCB8 48 23 6B 15 */ bl __nw__FUlPCcPCc /* 800DED5C 000DBCBC 7C 7F 1B 79 */ or. r31, r3, r3 /* 800DED60 000DBCC0 41 82 00 2C */ beq lbl_800DED8C /* 800DED64 000DBCC4 38 61 00 08 */ addi r3, r1, 8 /* 800DED68 000DBCC8 38 9D 02 1C */ addi r4, r29, 0x21c /* 800DED6C 000DBCCC 48 26 21 3D */ bl __ct__6CTokenFRC6CToken /* 800DED70 000DBCD0 7F E3 FB 78 */ mr r3, r31 /* 800DED74 000DBCD4 38 81 00 08 */ addi r4, r1, 8 /* 800DED78 000DBCD8 3B 80 00 01 */ li r28, 1 /* 800DED7C 000DBCDC 38 A0 00 00 */ li r5, 0 /* 800DED80 000DBCE0 38 C0 00 01 */ li r6, 1 /* 800DED84 000DBCE4 48 24 06 5D */ bl "__ct__11CElementGenF25TToken<15CGenDescription>Q211CElementGen21EModelOrientationTypeQ211CElementGen20EOptionalSystemFlags" /* 800DED88 000DBCE8 7C 7F 1B 78 */ mr r31, r3 lbl_800DED8C: /* 800DED8C 000DBCEC 80 7D 02 28 */ lwz r3, 0x228(r29) /* 800DED90 000DBCF0 28 03 00 00 */ cmplwi r3, 0 /* 800DED94 000DBCF4 41 82 00 18 */ beq lbl_800DEDAC /* 800DED98 000DBCF8 81 83 00 00 */ lwz r12, 0(r3) /* 800DED9C 000DBCFC 38 80 00 01 */ li r4, 1 /* 800DEDA0 000DBD00 81 8C 00 08 */ lwz r12, 8(r12) /* 800DEDA4 000DBD04 7D 89 03 A6 */ mtctr r12 /* 800DEDA8 000DBD08 4E 80 04 21 */ bctrl lbl_800DEDAC: /* 800DEDAC 000DBD0C 7F 80 07 75 */ extsb. r0, r28 /* 800DEDB0 000DBD10 93 FD 02 28 */ stw r31, 0x228(r29) /* 800DEDB4 000DBD14 41 82 00 10 */ beq lbl_800DEDC4 /* 800DEDB8 000DBD18 38 61 00 08 */ addi r3, r1, 8 /* 800DEDBC 000DBD1C 38 80 00 00 */ li r4, 0 /* 800DEDC0 000DBD20 48 26 20 81 */ bl __dt__6CTokenFv lbl_800DEDC4: /* 800DEDC4 000DBD24 80 7D 02 28 */ lwz r3, 0x228(r29) /* 800DEDC8 000DBD28 38 9D 00 04 */ addi r4, r29, 4 /* 800DEDCC 000DBD2C 81 83 00 00 */ lwz r12, 0(r3) /* 800DEDD0 000DBD30 81 8C 00 24 */ lwz r12, 0x24(r12) /* 800DEDD4 000DBD34 7D 89 03 A6 */ mtctr r12 /* 800DEDD8 000DBD38 4E 80 04 21 */ bctrl lbl_800DEDDC: /* 800DEDDC 000DBD3C 93 DD 01 CC */ stw r30, 0x1cc(r29) lbl_800DEDE0: /* 800DEDE0 000DBD40 80 01 00 24 */ lwz r0, 0x24(r1) /* 800DEDE4 000DBD44 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800DEDE8 000DBD48 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800DEDEC 000DBD4C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 800DEDF0 000DBD50 83 81 00 10 */ lwz r28, 0x10(r1) /* 800DEDF4 000DBD54 7C 08 03 A6 */ mtlr r0 /* 800DEDF8 000DBD58 38 21 00 20 */ addi r1, r1, 0x20 /* 800DEDFC 000DBD5C 4E 80 00 20 */ blr .global IsLoaded__11CPlasmaBeamCFv IsLoaded__11CPlasmaBeamCFv: /* 800DEE00 000DBD60 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEE04 000DBD64 7C 08 02 A6 */ mflr r0 /* 800DEE08 000DBD68 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEE0C 000DBD6C 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DEE10 000DBD70 3B E0 00 00 */ li r31, 0 /* 800DEE14 000DBD74 93 C1 00 08 */ stw r30, 8(r1) /* 800DEE18 000DBD78 7C 7E 1B 78 */ mr r30, r3 /* 800DEE1C 000DBD7C 48 0D C5 89 */ bl IsLoaded__10CGunWeaponCFv /* 800DEE20 000DBD80 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 800DEE24 000DBD84 41 82 00 14 */ beq lbl_800DEE38 /* 800DEE28 000DBD88 88 1E 02 2C */ lbz r0, 0x22c(r30) /* 800DEE2C 000DBD8C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f /* 800DEE30 000DBD90 41 82 00 08 */ beq lbl_800DEE38 /* 800DEE34 000DBD94 3B E0 00 01 */ li r31, 1 lbl_800DEE38: /* 800DEE38 000DBD98 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEE3C 000DBD9C 7F E3 FB 78 */ mr r3, r31 /* 800DEE40 000DBDA0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DEE44 000DBDA4 83 C1 00 08 */ lwz r30, 8(r1) /* 800DEE48 000DBDA8 7C 08 03 A6 */ mtlr r0 /* 800DEE4C 000DBDAC 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEE50 000DBDB0 4E 80 00 20 */ blr .global Unload__11CPlasmaBeamFR13CStateManager Unload__11CPlasmaBeamFR13CStateManager: /* 800DEE54 000DBDB4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEE58 000DBDB8 7C 08 02 A6 */ mflr r0 /* 800DEE5C 000DBDBC 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEE60 000DBDC0 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DEE64 000DBDC4 7C 9F 23 78 */ mr r31, r4 /* 800DEE68 000DBDC8 93 C1 00 08 */ stw r30, 8(r1) /* 800DEE6C 000DBDCC 7C 7E 1B 78 */ mr r30, r3 /* 800DEE70 000DBDD0 48 0D C5 41 */ bl Unload__10CGunWeaponFR13CStateManager /* 800DEE74 000DBDD4 38 00 00 00 */ li r0, 0 /* 800DEE78 000DBDD8 38 7E 02 1C */ addi r3, r30, 0x21c /* 800DEE7C 000DBDDC 90 1E 02 24 */ stw r0, 0x224(r30) /* 800DEE80 000DBDE0 48 26 1E C1 */ bl Unlock__6CTokenFv /* 800DEE84 000DBDE4 7F C3 F3 78 */ mr r3, r30 /* 800DEE88 000DBDE8 7F E4 FB 78 */ mr r4, r31 /* 800DEE8C 000DBDEC 48 00 00 8D */ bl DeleteBeam__11CPlasmaBeamFR13CStateManager /* 800DEE90 000DBDF0 7F C3 F3 78 */ mr r3, r30 /* 800DEE94 000DBDF4 48 00 05 A1 */ bl ReInitVariables__11CPlasmaBeamFv /* 800DEE98 000DBDF8 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEE9C 000DBDFC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DEEA0 000DBE00 83 C1 00 08 */ lwz r30, 8(r1) /* 800DEEA4 000DBE04 7C 08 03 A6 */ mtlr r0 /* 800DEEA8 000DBE08 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEEAC 000DBE0C 4E 80 00 20 */ blr .global Load__11CPlasmaBeamFb Load__11CPlasmaBeamFb: /* 800DEEB0 000DBE10 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEEB4 000DBE14 7C 08 02 A6 */ mflr r0 /* 800DEEB8 000DBE18 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEEBC 000DBE1C 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DEEC0 000DBE20 7C 7F 1B 78 */ mr r31, r3 /* 800DEEC4 000DBE24 48 0D C6 11 */ bl Load__10CGunWeaponFR13CStateManagerb /* 800DEEC8 000DBE28 38 7F 02 1C */ addi r3, r31, 0x21c /* 800DEECC 000DBE2C 48 26 1E B9 */ bl Lock__6CTokenFv /* 800DEED0 000DBE30 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEED4 000DBE34 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DEED8 000DBE38 7C 08 03 A6 */ mtlr r0 /* 800DEEDC 000DBE3C 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEEE0 000DBE40 4E 80 00 20 */ blr .global AcceptScriptMsg__11CPlasmaBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager AcceptScriptMsg__11CPlasmaBeamF20EScriptObjectMessage9TUniqueIdR13CStateManager: /* 800DEEE4 000DBE44 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEEE8 000DBE48 7C 08 02 A6 */ mflr r0 /* 800DEEEC 000DBE4C 2C 04 00 22 */ cmpwi r4, 0x22 /* 800DEEF0 000DBE50 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEEF4 000DBE54 41 82 00 0C */ beq lbl_800DEF00 /* 800DEEF8 000DBE58 40 80 00 10 */ bge lbl_800DEF08 /* 800DEEFC 000DBE5C 48 00 00 0C */ b lbl_800DEF08 lbl_800DEF00: /* 800DEF00 000DBE60 7C C4 33 78 */ mr r4, r6 /* 800DEF04 000DBE64 48 00 00 15 */ bl DeleteBeam__11CPlasmaBeamFR13CStateManager lbl_800DEF08: /* 800DEF08 000DBE68 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEF0C 000DBE6C 7C 08 03 A6 */ mtlr r0 /* 800DEF10 000DBE70 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEF14 000DBE74 4E 80 00 20 */ blr .global DeleteBeam__11CPlasmaBeamFR13CStateManager DeleteBeam__11CPlasmaBeamFR13CStateManager: /* 800DEF18 000DBE78 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DEF1C 000DBE7C 7C 08 02 A6 */ mflr r0 /* 800DEF20 000DBE80 90 01 00 14 */ stw r0, 0x14(r1) /* 800DEF24 000DBE84 88 03 02 2C */ lbz r0, 0x22c(r3) /* 800DEF28 000DBE88 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f /* 800DEF2C 000DBE8C 41 82 00 24 */ beq lbl_800DEF50 /* 800DEF30 000DBE90 80 C4 08 4C */ lwz r6, 0x84c(r4) /* 800DEF34 000DBE94 38 A1 00 0C */ addi r5, r1, 0xc /* 800DEF38 000DBE98 C0 22 8F 34 */ lfs f1, lbl_805AAC54@sda21(r2) /* 800DEF3C 000DBE9C 80 06 00 04 */ lwz r0, 4(r6) /* 800DEF40 000DBEA0 C0 42 8F 38 */ lfs f2, lbl_805AAC58@sda21(r2) /* 800DEF44 000DBEA4 90 01 00 08 */ stw r0, 8(r1) /* 800DEF48 000DBEA8 90 01 00 0C */ stw r0, 0xc(r1) /* 800DEF4C 000DBEAC 4B FF FC 51 */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff lbl_800DEF50: /* 800DEF50 000DBEB0 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DEF54 000DBEB4 7C 08 03 A6 */ mtlr r0 /* 800DEF58 000DBEB8 38 21 00 10 */ addi r1, r1, 0x10 /* 800DEF5C 000DBEBC 4E 80 00 20 */ blr .global CreateBeam__11CPlasmaBeamFR13CStateManager CreateBeam__11CPlasmaBeamFR13CStateManager: /* 800DEF60 000DBEC0 4E 80 00 20 */ blr .global StopBeam__11CPlasmaBeamFR13CStateManagerb StopBeam__11CPlasmaBeamFR13CStateManagerb: /* 800DEF64 000DBEC4 4E 80 00 20 */ blr .global UpdateBeam__11CPlasmaBeamFfRC12CTransform4fRC9CVector3fR13CStateManager UpdateBeam__11CPlasmaBeamFfRC12CTransform4fRC9CVector3fR13CStateManager: /* 800DEF68 000DBEC8 4E 80 00 20 */ blr .global Fire__11CPlasmaBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId Fire__11CPlasmaBeamFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId: /* 800DEF6C 000DBECC 94 21 FF 90 */ stwu r1, -0x70(r1) /* 800DEF70 000DBED0 7C 08 02 A6 */ mflr r0 /* 800DEF74 000DBED4 90 01 00 74 */ stw r0, 0x74(r1) /* 800DEF78 000DBED8 DB E1 00 60 */ stfd f31, 0x60(r1) /* 800DEF7C 000DBEDC F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0 /* 800DEF80 000DBEE0 DB C1 00 50 */ stfd f30, 0x50(r1) /* 800DEF84 000DBEE4 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0 /* 800DEF88 000DBEE8 DB A1 00 40 */ stfd f29, 0x40(r1) /* 800DEF8C 000DBEEC F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0 /* 800DEF90 000DBEF0 BF 41 00 28 */ stmw r26, 0x28(r1) /* 800DEF94 000DBEF4 7C BC 2B 79 */ or. r28, r5, r5 /* 800DEF98 000DBEF8 FF A0 08 90 */ fmr f29, f1 /* 800DEF9C 000DBEFC FF C0 10 90 */ fmr f30, f2 /* 800DEFA0 000DBF00 7C 7A 1B 78 */ mr r26, r3 /* 800DEFA4 000DBF04 FF E0 18 90 */ fmr f31, f3 /* 800DEFA8 000DBF08 7C 9B 23 78 */ mr r27, r4 /* 800DEFAC 000DBF0C 7C DD 33 78 */ mr r29, r6 /* 800DEFB0 000DBF10 7C FE 3B 78 */ mr r30, r7 /* 800DEFB4 000DBF14 7D 1F 43 78 */ mr r31, r8 /* 800DEFB8 000DBF18 38 00 00 00 */ li r0, 0 /* 800DEFBC 000DBF1C 40 82 00 6C */ bne lbl_800DF028 /* 800DEFC0 000DBF20 C0 3A 02 30 */ lfs f1, 0x230(r26) /* 800DEFC4 000DBF24 C0 02 8F 3C */ lfs f0, lbl_805AAC5C@sda21(r2) /* 800DEFC8 000DBF28 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 800DEFCC 000DBF2C 40 80 00 B8 */ bge lbl_800DF084 /* 800DEFD0 000DBF30 38 80 00 00 */ li r4, 0 /* 800DEFD4 000DBF34 38 A0 00 01 */ li r5, 1 /* 800DEFD8 000DBF38 48 0D CF B1 */ bl ActivateCharge__10CGunWeaponFbb /* 800DEFDC 000DBF3C A0 1F 00 00 */ lhz r0, 0(r31) /* 800DEFE0 000DBF40 FC 20 E8 90 */ fmr f1, f29 /* 800DEFE4 000DBF44 FC 40 F0 90 */ fmr f2, f30 /* 800DEFE8 000DBF48 7F 43 D3 78 */ mr r3, r26 /* 800DEFEC 000DBF4C FC 60 F8 90 */ fmr f3, f31 /* 800DEFF0 000DBF50 B0 01 00 0C */ sth r0, 0xc(r1) /* 800DEFF4 000DBF54 7F 64 DB 78 */ mr r4, r27 /* 800DEFF8 000DBF58 7F 85 E3 78 */ mr r5, r28 /* 800DEFFC 000DBF5C 7F A6 EB 78 */ mr r6, r29 /* 800DF000 000DBF60 7F C7 F3 78 */ mr r7, r30 /* 800DF004 000DBF64 39 01 00 0C */ addi r8, r1, 0xc /* 800DF008 000DBF68 48 0D C8 81 */ bl Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId /* 800DF00C 000DBF6C C0 1A 02 30 */ lfs f0, 0x230(r26) /* 800DF010 000DBF70 38 00 00 01 */ li r0, 1 /* 800DF014 000DBF74 C0 22 8F 40 */ lfs f1, lbl_805AAC60@sda21(r2) /* 800DF018 000DBF78 EC 00 08 2A */ fadds f0, f0, f1 /* 800DF01C 000DBF7C D0 1A 02 30 */ stfs f0, 0x230(r26) /* 800DF020 000DBF80 D0 3A 02 34 */ stfs f1, 0x234(r26) /* 800DF024 000DBF84 48 00 00 60 */ b lbl_800DF084 lbl_800DF028: /* 800DF028 000DBF88 A0 1F 00 00 */ lhz r0, 0(r31) /* 800DF02C 000DBF8C 39 01 00 08 */ addi r8, r1, 8 /* 800DF030 000DBF90 C0 62 8F 38 */ lfs f3, lbl_805AAC58@sda21(r2) /* 800DF034 000DBF94 B0 01 00 08 */ sth r0, 8(r1) /* 800DF038 000DBF98 48 0D C8 51 */ bl Fire__10CGunWeaponFbfQ212CPlayerState12EChargeStageRC12CTransform4fR13CStateManager9TUniqueId /* 800DF03C 000DBF9C 3C 80 80 57 */ lis r4, lbl_8056D420@ha /* 800DF040 000DBFA0 80 7E 08 70 */ lwz r3, 0x870(r30) /* 800DF044 000DBFA4 38 84 D4 20 */ addi r4, r4, lbl_8056D420@l /* 800DF048 000DBFA8 38 A0 00 00 */ li r5, 0 /* 800DF04C 000DBFAC 4B F2 B9 D5 */ bl AddCameraShaker__14CCameraManagerFRC16CCameraShakeDatab /* 800DF050 000DBFB0 C0 02 8F 44 */ lfs f0, lbl_805AAC64@sda21(r2) /* 800DF054 000DBFB4 7F 43 D3 78 */ mr r3, r26 /* 800DF058 000DBFB8 C0 22 8F 48 */ lfs f1, lbl_805AAC68@sda21(r2) /* 800DF05C 000DBFBC 7F C4 F3 78 */ mr r4, r30 /* 800DF060 000DBFC0 D0 1A 02 38 */ stfs f0, 0x238(r26) /* 800DF064 000DBFC4 38 A1 00 18 */ addi r5, r1, 0x18 /* 800DF068 000DBFC8 C0 42 8F 4C */ lfs f2, lbl_805AAC6C@sda21(r2) /* 800DF06C 000DBFCC 80 DE 08 4C */ lwz r6, 0x84c(r30) /* 800DF070 000DBFD0 80 06 00 04 */ lwz r0, 4(r6) /* 800DF074 000DBFD4 90 01 00 14 */ stw r0, 0x14(r1) /* 800DF078 000DBFD8 90 01 00 18 */ stw r0, 0x18(r1) /* 800DF07C 000DBFDC 4B FF FB 21 */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff /* 800DF080 000DBFE0 38 00 00 01 */ li r0, 1 lbl_800DF084: /* 800DF084 000DBFE4 54 00 06 3F */ clrlwi. r0, r0, 0x18 /* 800DF088 000DBFE8 41 82 00 24 */ beq lbl_800DF0AC /* 800DF08C 000DBFEC 57 80 08 3C */ slwi r0, r28, 1 /* 800DF090 000DBFF0 38 62 8F 30 */ addi r3, r2, lbl_805AAC50@sda21 /* 800DF094 000DBFF4 7C 83 02 2E */ lhzx r4, r3, r0 /* 800DF098 000DBFF8 7F 65 DB 78 */ mr r5, r27 /* 800DF09C 000DBFFC 38 61 00 10 */ addi r3, r1, 0x10 /* 800DF0A0 000DC000 38 C0 00 00 */ li r6, 0 /* 800DF0A4 000DC004 38 E0 00 4A */ li r7, 0x4a /* 800DF0A8 000DC008 48 1A BA 51 */ bl play_sfx__12NWeaponTypesFUsbbs lbl_800DF0AC: /* 800DF0AC 000DC00C E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0 /* 800DF0B0 000DC010 CB E1 00 60 */ lfd f31, 0x60(r1) /* 800DF0B4 000DC014 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0 /* 800DF0B8 000DC018 CB C1 00 50 */ lfd f30, 0x50(r1) /* 800DF0BC 000DC01C E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0 /* 800DF0C0 000DC020 CB A1 00 40 */ lfd f29, 0x40(r1) /* 800DF0C4 000DC024 BB 41 00 28 */ lmw r26, 0x28(r1) /* 800DF0C8 000DC028 80 01 00 74 */ lwz r0, 0x74(r1) /* 800DF0CC 000DC02C 7C 08 03 A6 */ mtlr r0 /* 800DF0D0 000DC030 38 21 00 70 */ addi r1, r1, 0x70 /* 800DF0D4 000DC034 4E 80 00 20 */ blr .global Update__11CPlasmaBeamFfR13CStateManager Update__11CPlasmaBeamFfR13CStateManager: /* 800DF0D8 000DC038 94 21 FF D0 */ stwu r1, -0x30(r1) /* 800DF0DC 000DC03C 7C 08 02 A6 */ mflr r0 /* 800DF0E0 000DC040 90 01 00 34 */ stw r0, 0x34(r1) /* 800DF0E4 000DC044 DB E1 00 20 */ stfd f31, 0x20(r1) /* 800DF0E8 000DC048 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0 /* 800DF0EC 000DC04C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800DF0F0 000DC050 93 C1 00 18 */ stw r30, 0x18(r1) /* 800DF0F4 000DC054 FF E0 08 90 */ fmr f31, f1 /* 800DF0F8 000DC058 7C 7E 1B 78 */ mr r30, r3 /* 800DF0FC 000DC05C 7C 9F 23 78 */ mr r31, r4 /* 800DF100 000DC060 48 0D D3 79 */ bl Update__10CGunWeaponFfR13CStateManager /* 800DF104 000DC064 C0 1E 02 30 */ lfs f0, 0x230(r30) /* 800DF108 000DC068 EC 00 F8 28 */ fsubs f0, f0, f31 /* 800DF10C 000DC06C D0 1E 02 30 */ stfs f0, 0x230(r30) /* 800DF110 000DC070 C0 2D 87 60 */ lfs f1, lbl_805A7320@sda21(r13) /* 800DF114 000DC074 C0 1E 02 30 */ lfs f0, 0x230(r30) /* 800DF118 000DC078 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 800DF11C 000DC07C 40 80 00 0C */ bge lbl_800DF128 /* 800DF120 000DC080 38 7E 02 30 */ addi r3, r30, 0x230 /* 800DF124 000DC084 48 00 00 08 */ b lbl_800DF12C lbl_800DF128: /* 800DF128 000DC088 38 6D 87 60 */ addi r3, r13, lbl_805A7320@sda21 lbl_800DF12C: /* 800DF12C 000DC08C C0 03 00 00 */ lfs f0, 0(r3) /* 800DF130 000DC090 D0 1E 02 30 */ stfs f0, 0x230(r30) /* 800DF134 000DC094 C0 1E 02 38 */ lfs f0, 0x238(r30) /* 800DF138 000DC098 EC 00 F8 28 */ fsubs f0, f0, f31 /* 800DF13C 000DC09C D0 1E 02 38 */ stfs f0, 0x238(r30) /* 800DF140 000DC0A0 80 9F 08 4C */ lwz r4, 0x84c(r31) /* 800DF144 000DC0A4 80 64 04 90 */ lwz r3, 0x490(r4) /* 800DF148 000DC0A8 88 03 08 34 */ lbz r0, 0x834(r3) /* 800DF14C 000DC0AC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f /* 800DF150 000DC0B0 41 82 00 0C */ beq lbl_800DF15C /* 800DF154 000DC0B4 C0 23 03 40 */ lfs f1, 0x340(r3) /* 800DF158 000DC0B8 48 00 00 08 */ b lbl_800DF160 lbl_800DF15C: /* 800DF15C 000DC0BC C0 22 8F 50 */ lfs f1, lbl_805AAC70@sda21(r2) lbl_800DF160: /* 800DF160 000DC0C0 C0 02 8F 54 */ lfs f0, lbl_805AAC74@sda21(r2) /* 800DF164 000DC0C4 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 800DF168 000DC0C8 40 81 00 2C */ ble lbl_800DF194 /* 800DF16C 000DC0CC 80 04 00 04 */ lwz r0, 4(r4) /* 800DF170 000DC0D0 7F C3 F3 78 */ mr r3, r30 /* 800DF174 000DC0D4 C0 22 8F 58 */ lfs f1, lbl_805AAC78@sda21(r2) /* 800DF178 000DC0D8 7F E4 FB 78 */ mr r4, r31 /* 800DF17C 000DC0DC 90 01 00 10 */ stw r0, 0x10(r1) /* 800DF180 000DC0E0 38 A1 00 14 */ addi r5, r1, 0x14 /* 800DF184 000DC0E4 C0 42 8F 5C */ lfs f2, lbl_805AAC7C@sda21(r2) /* 800DF188 000DC0E8 90 01 00 14 */ stw r0, 0x14(r1) /* 800DF18C 000DC0EC 4B FF FA 11 */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff /* 800DF190 000DC0F0 48 00 00 44 */ b lbl_800DF1D4 lbl_800DF194: /* 800DF194 000DC0F4 C0 3E 02 38 */ lfs f1, 0x238(r30) /* 800DF198 000DC0F8 C0 02 8F 50 */ lfs f0, lbl_805AAC70@sda21(r2) /* 800DF19C 000DC0FC FC 01 00 40 */ fcmpo cr0, f1, f0 /* 800DF1A0 000DC100 40 80 00 34 */ bge lbl_800DF1D4 /* 800DF1A4 000DC104 88 1E 02 2C */ lbz r0, 0x22c(r30) /* 800DF1A8 000DC108 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f /* 800DF1AC 000DC10C 41 82 00 28 */ beq lbl_800DF1D4 /* 800DF1B0 000DC110 80 04 00 04 */ lwz r0, 4(r4) /* 800DF1B4 000DC114 7F C3 F3 78 */ mr r3, r30 /* 800DF1B8 000DC118 C0 22 8F 34 */ lfs f1, lbl_805AAC54@sda21(r2) /* 800DF1BC 000DC11C 7F E4 FB 78 */ mr r4, r31 /* 800DF1C0 000DC120 90 01 00 08 */ stw r0, 8(r1) /* 800DF1C4 000DC124 38 A1 00 0C */ addi r5, r1, 0xc /* 800DF1C8 000DC128 C0 42 8F 38 */ lfs f2, lbl_805AAC58@sda21(r2) /* 800DF1CC 000DC12C 90 01 00 0C */ stw r0, 0xc(r1) /* 800DF1D0 000DC130 4B FF F9 CD */ bl SetWorldLighting__11CPlasmaBeamFR13CStateManager7TAreaIdff lbl_800DF1D4: /* 800DF1D4 000DC134 7F C3 F3 78 */ mr r3, r30 /* 800DF1D8 000DC138 81 9E 00 00 */ lwz r12, 0(r30) /* 800DF1DC 000DC13C 81 8C 00 40 */ lwz r12, 0x40(r12) /* 800DF1E0 000DC140 7D 89 03 A6 */ mtctr r12 /* 800DF1E4 000DC144 4E 80 04 21 */ bctrl /* 800DF1E8 000DC148 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 800DF1EC 000DC14C 40 82 00 90 */ bne lbl_800DF27C /* 800DF1F0 000DC150 7F C3 F3 78 */ mr r3, r30 /* 800DF1F4 000DC154 48 0D C1 B1 */ bl IsLoaded__10CGunWeaponCFv /* 800DF1F8 000DC158 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 800DF1FC 000DC15C 41 82 00 80 */ beq lbl_800DF27C /* 800DF200 000DC160 88 1E 02 2C */ lbz r0, 0x22c(r30) /* 800DF204 000DC164 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f /* 800DF208 000DC168 40 82 00 74 */ bne lbl_800DF27C /* 800DF20C 000DC16C 80 1E 02 24 */ lwz r0, 0x224(r30) /* 800DF210 000DC170 28 00 00 00 */ cmplwi r0, 0 /* 800DF214 000DC174 41 82 00 0C */ beq lbl_800DF220 /* 800DF218 000DC178 38 60 00 01 */ li r3, 1 /* 800DF21C 000DC17C 48 00 00 3C */ b lbl_800DF258 lbl_800DF220: /* 800DF220 000DC180 88 1E 02 20 */ lbz r0, 0x220(r30) /* 800DF224 000DC184 28 00 00 00 */ cmplwi r0, 0 /* 800DF228 000DC188 41 82 00 2C */ beq lbl_800DF254 /* 800DF22C 000DC18C 80 7E 02 1C */ lwz r3, 0x21c(r30) /* 800DF230 000DC190 80 03 00 10 */ lwz r0, 0x10(r3) /* 800DF234 000DC194 28 00 00 00 */ cmplwi r0, 0 /* 800DF238 000DC198 41 82 00 1C */ beq lbl_800DF254 /* 800DF23C 000DC19C 38 7E 02 1C */ addi r3, r30, 0x21c /* 800DF240 000DC1A0 48 26 1B CD */ bl GetObj__6CTokenFv /* 800DF244 000DC1A4 80 03 00 04 */ lwz r0, 4(r3) /* 800DF248 000DC1A8 38 60 00 01 */ li r3, 1 /* 800DF24C 000DC1AC 90 1E 02 24 */ stw r0, 0x224(r30) /* 800DF250 000DC1B0 48 00 00 08 */ b lbl_800DF258 lbl_800DF254: /* 800DF254 000DC1B4 38 60 00 00 */ li r3, 0 lbl_800DF258: /* 800DF258 000DC1B8 88 1E 02 2C */ lbz r0, 0x22c(r30) /* 800DF25C 000DC1BC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18 /* 800DF260 000DC1C0 98 1E 02 2C */ stb r0, 0x22c(r30) /* 800DF264 000DC1C4 88 1E 02 2C */ lbz r0, 0x22c(r30) /* 800DF268 000DC1C8 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f /* 800DF26C 000DC1CC 41 82 00 10 */ beq lbl_800DF27C /* 800DF270 000DC1D0 7F C3 F3 78 */ mr r3, r30 /* 800DF274 000DC1D4 7F E4 FB 78 */ mr r4, r31 /* 800DF278 000DC1D8 4B FF FC E9 */ bl CreateBeam__11CPlasmaBeamFR13CStateManager lbl_800DF27C: /* 800DF27C 000DC1DC E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0 /* 800DF280 000DC1E0 80 01 00 34 */ lwz r0, 0x34(r1) /* 800DF284 000DC1E4 CB E1 00 20 */ lfd f31, 0x20(r1) /* 800DF288 000DC1E8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800DF28C 000DC1EC 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800DF290 000DC1F0 7C 08 03 A6 */ mtlr r0 /* 800DF294 000DC1F4 38 21 00 30 */ addi r1, r1, 0x30 /* 800DF298 000DC1F8 4E 80 00 20 */ blr .global UpdateGunFx__11CPlasmaBeamFbfRC13CStateManagerRC12CTransform4f UpdateGunFx__11CPlasmaBeamFbfRC13CStateManagerRC12CTransform4f: /* 800DF29C 000DC1FC 94 21 FF 90 */ stwu r1, -0x70(r1) /* 800DF2A0 000DC200 7C 08 02 A6 */ mflr r0 /* 800DF2A4 000DC204 90 01 00 74 */ stw r0, 0x74(r1) /* 800DF2A8 000DC208 DB E1 00 60 */ stfd f31, 0x60(r1) /* 800DF2AC 000DC20C F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0 /* 800DF2B0 000DC210 BF 61 00 4C */ stmw r27, 0x4c(r1) /* 800DF2B4 000DC214 7C 7B 1B 78 */ mr r27, r3 /* 800DF2B8 000DC218 FF E0 08 90 */ fmr f31, f1 /* 800DF2BC 000DC21C 80 63 02 28 */ lwz r3, 0x228(r3) /* 800DF2C0 000DC220 7C 9C 23 78 */ mr r28, r4 /* 800DF2C4 000DC224 7C BD 2B 78 */ mr r29, r5 /* 800DF2C8 000DC228 7C DE 33 78 */ mr r30, r6 /* 800DF2CC 000DC22C 28 03 00 00 */ cmplwi r3, 0 /* 800DF2D0 000DC230 41 82 00 A0 */ beq lbl_800DF370 /* 800DF2D4 000DC234 80 1B 01 CC */ lwz r0, 0x1cc(r27) /* 800DF2D8 000DC238 2C 00 00 00 */ cmpwi r0, 0 /* 800DF2DC 000DC23C 41 82 00 94 */ beq lbl_800DF370 /* 800DF2E0 000DC240 81 83 00 00 */ lwz r12, 0(r3) /* 800DF2E4 000DC244 81 8C 00 58 */ lwz r12, 0x58(r12) /* 800DF2E8 000DC248 7D 89 03 A6 */ mtctr r12 /* 800DF2EC 000DC24C 4E 80 04 21 */ bctrl /* 800DF2F0 000DC250 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 800DF2F4 000DC254 41 82 00 0C */ beq lbl_800DF300 /* 800DF2F8 000DC258 38 00 00 00 */ li r0, 0 /* 800DF2FC 000DC25C 90 1B 01 CC */ stw r0, 0x1cc(r27) lbl_800DF300: /* 800DF300 000DC260 C0 5E 00 2C */ lfs f2, 0x2c(r30) /* 800DF304 000DC264 38 81 00 08 */ addi r4, r1, 8 /* 800DF308 000DC268 C0 3E 00 1C */ lfs f1, 0x1c(r30) /* 800DF30C 000DC26C C0 1E 00 0C */ lfs f0, 0xc(r30) /* 800DF310 000DC270 D0 21 00 0C */ stfs f1, 0xc(r1) /* 800DF314 000DC274 D0 01 00 08 */ stfs f0, 8(r1) /* 800DF318 000DC278 D0 41 00 10 */ stfs f2, 0x10(r1) /* 800DF31C 000DC27C 80 7B 02 28 */ lwz r3, 0x228(r27) /* 800DF320 000DC280 81 83 00 00 */ lwz r12, 0(r3) /* 800DF324 000DC284 81 8C 00 18 */ lwz r12, 0x18(r12) /* 800DF328 000DC288 7D 89 03 A6 */ mtctr r12 /* 800DF32C 000DC28C 4E 80 04 21 */ bctrl /* 800DF330 000DC290 83 FB 02 28 */ lwz r31, 0x228(r27) /* 800DF334 000DC294 7F C4 F3 78 */ mr r4, r30 /* 800DF338 000DC298 38 61 00 14 */ addi r3, r1, 0x14 /* 800DF33C 000DC29C 48 23 39 05 */ bl GetRotation__12CTransform4fCFv /* 800DF340 000DC2A0 7F E3 FB 78 */ mr r3, r31 /* 800DF344 000DC2A4 38 81 00 14 */ addi r4, r1, 0x14 /* 800DF348 000DC2A8 81 9F 00 00 */ lwz r12, 0(r31) /* 800DF34C 000DC2AC 81 8C 00 14 */ lwz r12, 0x14(r12) /* 800DF350 000DC2B0 7D 89 03 A6 */ mtctr r12 /* 800DF354 000DC2B4 4E 80 04 21 */ bctrl /* 800DF358 000DC2B8 80 7B 02 28 */ lwz r3, 0x228(r27) /* 800DF35C 000DC2BC FC 20 F8 90 */ fmr f1, f31 /* 800DF360 000DC2C0 81 83 00 00 */ lwz r12, 0(r3) /* 800DF364 000DC2C4 81 8C 00 0C */ lwz r12, 0xc(r12) /* 800DF368 000DC2C8 7D 89 03 A6 */ mtctr r12 /* 800DF36C 000DC2CC 4E 80 04 21 */ bctrl lbl_800DF370: /* 800DF370 000DC2D0 FC 20 F8 90 */ fmr f1, f31 /* 800DF374 000DC2D4 7F 63 DB 78 */ mr r3, r27 /* 800DF378 000DC2D8 7F 84 E3 78 */ mr r4, r28 /* 800DF37C 000DC2DC 7F A5 EB 78 */ mr r5, r29 /* 800DF380 000DC2E0 7F C6 F3 78 */ mr r6, r30 /* 800DF384 000DC2E4 48 0D CF 59 */ bl UpdateGunFx__10CGunWeaponFbfRC13CStateManagerRC12CTransform4f /* 800DF388 000DC2E8 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0 /* 800DF38C 000DC2EC CB E1 00 60 */ lfd f31, 0x60(r1) /* 800DF390 000DC2F0 BB 61 00 4C */ lmw r27, 0x4c(r1) /* 800DF394 000DC2F4 80 01 00 74 */ lwz r0, 0x74(r1) /* 800DF398 000DC2F8 7C 08 03 A6 */ mtlr r0 /* 800DF39C 000DC2FC 38 21 00 70 */ addi r1, r1, 0x70 /* 800DF3A0 000DC300 4E 80 00 20 */ blr .global PostRenderGunFx__11CPlasmaBeamFRC13CStateManagerRC12CTransform4f PostRenderGunFx__11CPlasmaBeamFRC13CStateManagerRC12CTransform4f: /* 800DF3A4 000DC304 94 21 FF E0 */ stwu r1, -0x20(r1) /* 800DF3A8 000DC308 7C 08 02 A6 */ mflr r0 /* 800DF3AC 000DC30C 90 01 00 24 */ stw r0, 0x24(r1) /* 800DF3B0 000DC310 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800DF3B4 000DC314 7C BF 2B 78 */ mr r31, r5 /* 800DF3B8 000DC318 93 C1 00 18 */ stw r30, 0x18(r1) /* 800DF3BC 000DC31C 7C 9E 23 78 */ mr r30, r4 /* 800DF3C0 000DC320 93 A1 00 14 */ stw r29, 0x14(r1) /* 800DF3C4 000DC324 7C 7D 1B 78 */ mr r29, r3 /* 800DF3C8 000DC328 80 63 02 28 */ lwz r3, 0x228(r3) /* 800DF3CC 000DC32C 28 03 00 00 */ cmplwi r3, 0 /* 800DF3D0 000DC330 41 82 00 20 */ beq lbl_800DF3F0 /* 800DF3D4 000DC334 80 1D 01 CC */ lwz r0, 0x1cc(r29) /* 800DF3D8 000DC338 2C 00 00 00 */ cmpwi r0, 0 /* 800DF3DC 000DC33C 41 82 00 14 */ beq lbl_800DF3F0 /* 800DF3E0 000DC340 81 83 00 00 */ lwz r12, 0(r3) /* 800DF3E4 000DC344 81 8C 00 10 */ lwz r12, 0x10(r12) /* 800DF3E8 000DC348 7D 89 03 A6 */ mtctr r12 /* 800DF3EC 000DC34C 4E 80 04 21 */ bctrl lbl_800DF3F0: /* 800DF3F0 000DC350 7F A3 EB 78 */ mr r3, r29 /* 800DF3F4 000DC354 7F C4 F3 78 */ mr r4, r30 /* 800DF3F8 000DC358 7F E5 FB 78 */ mr r5, r31 /* 800DF3FC 000DC35C 48 0D D0 29 */ bl PostRenderGunFx__10CGunWeaponFRC13CStateManagerRC12CTransform4f /* 800DF400 000DC360 80 01 00 24 */ lwz r0, 0x24(r1) /* 800DF404 000DC364 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800DF408 000DC368 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800DF40C 000DC36C 83 A1 00 14 */ lwz r29, 0x14(r1) /* 800DF410 000DC370 7C 08 03 A6 */ mtlr r0 /* 800DF414 000DC374 38 21 00 20 */ addi r1, r1, 0x20 /* 800DF418 000DC378 4E 80 00 20 */ blr .global IsFiring__11CPlasmaBeamCFRC13CStateManager IsFiring__11CPlasmaBeamCFRC13CStateManager: /* 800DF41C 000DC37C C0 23 02 34 */ lfs f1, 0x234(r3) /* 800DF420 000DC380 C0 02 8F 50 */ lfs f0, lbl_805AAC70@sda21(r2) /* 800DF424 000DC384 FC 01 00 40 */ fcmpo cr0, f1, f0 /* 800DF428 000DC388 7C 00 00 26 */ mfcr r0 /* 800DF42C 000DC38C 54 03 17 FE */ rlwinm r3, r0, 2, 0x1f, 0x1f /* 800DF430 000DC390 4E 80 00 20 */ blr .global ReInitVariables__11CPlasmaBeamFv ReInitVariables__11CPlasmaBeamFv: /* 800DF434 000DC394 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DF438 000DC398 7C 08 02 A6 */ mflr r0 /* 800DF43C 000DC39C 90 01 00 14 */ stw r0, 0x14(r1) /* 800DF440 000DC3A0 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DF444 000DC3A4 7C 7F 1B 78 */ mr r31, r3 /* 800DF448 000DC3A8 80 63 02 28 */ lwz r3, 0x228(r3) /* 800DF44C 000DC3AC 28 03 00 00 */ cmplwi r3, 0 /* 800DF450 000DC3B0 41 82 00 18 */ beq lbl_800DF468 /* 800DF454 000DC3B4 81 83 00 00 */ lwz r12, 0(r3) /* 800DF458 000DC3B8 38 80 00 01 */ li r4, 1 /* 800DF45C 000DC3BC 81 8C 00 08 */ lwz r12, 8(r12) /* 800DF460 000DC3C0 7D 89 03 A6 */ mtctr r12 /* 800DF464 000DC3C4 4E 80 04 21 */ bctrl lbl_800DF468: /* 800DF468 000DC3C8 38 60 00 00 */ li r3, 0 /* 800DF46C 000DC3CC 90 7F 02 28 */ stw r3, 0x228(r31) /* 800DF470 000DC3D0 88 1F 02 2C */ lbz r0, 0x22c(r31) /* 800DF474 000DC3D4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18 /* 800DF478 000DC3D8 98 1F 02 2C */ stb r0, 0x22c(r31) /* 800DF47C 000DC3DC 90 7F 01 CC */ stw r3, 0x1cc(r31) /* 800DF480 000DC3E0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DF484 000DC3E4 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DF488 000DC3E8 7C 08 03 A6 */ mtlr r0 /* 800DF48C 000DC3EC 38 21 00 10 */ addi r1, r1, 0x10 .global sub_800df490 sub_800df490: /* 800DF490 000DC3F0 4E 80 00 20 */ blr .global __dt__11CPlasmaBeamFv __dt__11CPlasmaBeamFv: /* 800DF494 000DC3F4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 800DF498 000DC3F8 7C 08 02 A6 */ mflr r0 /* 800DF49C 000DC3FC 90 01 00 14 */ stw r0, 0x14(r1) /* 800DF4A0 000DC400 93 E1 00 0C */ stw r31, 0xc(r1) /* 800DF4A4 000DC404 7C 9F 23 78 */ mr r31, r4 /* 800DF4A8 000DC408 93 C1 00 08 */ stw r30, 8(r1) /* 800DF4AC 000DC40C 7C 7E 1B 79 */ or. r30, r3, r3 /* 800DF4B0 000DC410 41 82 00 70 */ beq lbl_800DF520 /* 800DF4B4 000DC414 3C 60 80 3E */ lis r3, lbl_803DF710@ha /* 800DF4B8 000DC418 34 1E 02 28 */ addic. r0, r30, 0x228 /* 800DF4BC 000DC41C 38 03 F7 10 */ addi r0, r3, lbl_803DF710@l /* 800DF4C0 000DC420 90 1E 00 00 */ stw r0, 0(r30) /* 800DF4C4 000DC424 41 82 00 24 */ beq lbl_800DF4E8 /* 800DF4C8 000DC428 80 7E 02 28 */ lwz r3, 0x228(r30) /* 800DF4CC 000DC42C 28 03 00 00 */ cmplwi r3, 0 /* 800DF4D0 000DC430 41 82 00 18 */ beq lbl_800DF4E8 /* 800DF4D4 000DC434 81 83 00 00 */ lwz r12, 0(r3) /* 800DF4D8 000DC438 38 80 00 01 */ li r4, 1 /* 800DF4DC 000DC43C 81 8C 00 08 */ lwz r12, 8(r12) /* 800DF4E0 000DC440 7D 89 03 A6 */ mtctr r12 /* 800DF4E4 000DC444 4E 80 04 21 */ bctrl lbl_800DF4E8: /* 800DF4E8 000DC448 34 1E 02 1C */ addic. r0, r30, 0x21c /* 800DF4EC 000DC44C 41 82 00 18 */ beq lbl_800DF504 /* 800DF4F0 000DC450 34 1E 02 1C */ addic. r0, r30, 0x21c /* 800DF4F4 000DC454 41 82 00 10 */ beq lbl_800DF504 /* 800DF4F8 000DC458 38 7E 02 1C */ addi r3, r30, 0x21c /* 800DF4FC 000DC45C 38 80 00 00 */ li r4, 0 /* 800DF500 000DC460 48 26 19 41 */ bl __dt__6CTokenFv lbl_800DF504: /* 800DF504 000DC464 7F C3 F3 78 */ mr r3, r30 /* 800DF508 000DC468 38 80 00 00 */ li r4, 0 /* 800DF50C 000DC46C 48 0D D7 B5 */ bl __dt__10CGunWeaponFv /* 800DF510 000DC470 7F E0 07 35 */ extsh. r0, r31 /* 800DF514 000DC474 40 81 00 0C */ ble lbl_800DF520 /* 800DF518 000DC478 7F C3 F3 78 */ mr r3, r30 /* 800DF51C 000DC47C 48 23 64 15 */ bl Free__7CMemoryFPCv lbl_800DF520: /* 800DF520 000DC480 80 01 00 14 */ lwz r0, 0x14(r1) /* 800DF524 000DC484 7F C3 F3 78 */ mr r3, r30 /* 800DF528 000DC488 83 E1 00 0C */ lwz r31, 0xc(r1) /* 800DF52C 000DC48C 83 C1 00 08 */ lwz r30, 8(r1) /* 800DF530 000DC490 7C 08 03 A6 */ mtlr r0 /* 800DF534 000DC494 38 21 00 10 */ addi r1, r1, 0x10 /* 800DF538 000DC498 4E 80 00 20 */ blr .global __ct__11CPlasmaBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f __ct__11CPlasmaBeamFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f: /* 800DF53C 000DC49C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 800DF540 000DC4A0 7C 08 02 A6 */ mflr r0 /* 800DF544 000DC4A4 90 01 00 24 */ stw r0, 0x24(r1) /* 800DF548 000DC4A8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 800DF54C 000DC4AC 7C 7F 1B 78 */ mr r31, r3 /* 800DF550 000DC4B0 93 C1 00 18 */ stw r30, 0x18(r1) /* 800DF554 000DC4B4 A0 06 00 00 */ lhz r0, 0(r6) /* 800DF558 000DC4B8 38 C1 00 08 */ addi r6, r1, 8 /* 800DF55C 000DC4BC B0 01 00 08 */ sth r0, 8(r1) /* 800DF560 000DC4C0 48 0D DC 51 */ bl __ct__10CGunWeaponFUi11EWeaponType9TUniqueId14EMaterialTypesRC9CVector3f /* 800DF564 000DC4C4 3C 60 80 3E */ lis r3, lbl_803DF710@ha /* 800DF568 000DC4C8 3C 80 80 3D */ lis r4, lbl_803CE530@ha /* 800DF56C 000DC4CC 38 03 F7 10 */ addi r0, r3, lbl_803DF710@l /* 800DF570 000DC4D0 38 61 00 0C */ addi r3, r1, 0xc /* 800DF574 000DC4D4 90 1F 00 00 */ stw r0, 0(r31) /* 800DF578 000DC4D8 38 84 E5 30 */ addi r4, r4, lbl_803CE530@l /* 800DF57C 000DC4DC 38 A4 00 07 */ addi r5, r4, 7 /* 800DF580 000DC4E0 80 8D A0 64 */ lwz r4, gpSimplePool@sda21(r13) /* 800DF584 000DC4E4 81 84 00 00 */ lwz r12, 0(r4) /* 800DF588 000DC4E8 81 8C 00 10 */ lwz r12, 0x10(r12) /* 800DF58C 000DC4EC 7D 89 03 A6 */ mtctr r12 /* 800DF590 000DC4F0 4E 80 04 21 */ bctrl /* 800DF594 000DC4F4 3B DF 02 1C */ addi r30, r31, 0x21c /* 800DF598 000DC4F8 38 81 00 0C */ addi r4, r1, 0xc /* 800DF59C 000DC4FC 7F C3 F3 78 */ mr r3, r30 /* 800DF5A0 000DC500 48 26 19 09 */ bl __ct__6CTokenFRC6CToken /* 800DF5A4 000DC504 38 00 00 00 */ li r0, 0 /* 800DF5A8 000DC508 38 61 00 0C */ addi r3, r1, 0xc /* 800DF5AC 000DC50C 90 1E 00 08 */ stw r0, 8(r30) /* 800DF5B0 000DC510 38 80 FF FF */ li r4, -1 /* 800DF5B4 000DC514 48 26 18 8D */ bl __dt__6CTokenFv /* 800DF5B8 000DC518 38 80 00 00 */ li r4, 0 /* 800DF5BC 000DC51C C0 02 8F 50 */ lfs f0, lbl_805AAC70@sda21(r2) /* 800DF5C0 000DC520 90 9F 02 28 */ stw r4, 0x228(r31) /* 800DF5C4 000DC524 7F E3 FB 78 */ mr r3, r31 /* 800DF5C8 000DC528 88 1F 02 2C */ lbz r0, 0x22c(r31) /* 800DF5CC 000DC52C 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18 /* 800DF5D0 000DC530 98 1F 02 2C */ stb r0, 0x22c(r31) /* 800DF5D4 000DC534 88 1F 02 2C */ lbz r0, 0x22c(r31) /* 800DF5D8 000DC538 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19 /* 800DF5DC 000DC53C 98 1F 02 2C */ stb r0, 0x22c(r31) /* 800DF5E0 000DC540 D0 1F 02 30 */ stfs f0, 0x230(r31) /* 800DF5E4 000DC544 D0 1F 02 34 */ stfs f0, 0x234(r31) /* 800DF5E8 000DC548 D0 1F 02 38 */ stfs f0, 0x238(r31) /* 800DF5EC 000DC54C 80 0D A3 90 */ lwz r0, kInvalidAreaId@sda21(r13) /* 800DF5F0 000DC550 90 1F 02 3C */ stw r0, 0x23c(r31) /* 800DF5F4 000DC554 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 800DF5F8 000DC558 83 C1 00 18 */ lwz r30, 0x18(r1) /* 800DF5FC 000DC55C 80 01 00 24 */ lwz r0, 0x24(r1) /* 800DF600 000DC560 7C 08 03 A6 */ mtlr r0 /* 800DF604 000DC564 38 21 00 20 */ addi r1, r1, 0x20 /* 800DF608 000DC568 4E 80 00 20 */ blr .global __sinit_CPlasmaBeam_cpp __sinit_CPlasmaBeam_cpp: /* 800DF60C 000DC56C 94 21 FF 20 */ stwu r1, -0xe0(r1) /* 800DF610 000DC570 7C 08 02 A6 */ mflr r0 /* 800DF614 000DC574 C0 22 8F 60 */ lfs f1, lbl_805AAC80@sda21(r2) /* 800DF618 000DC578 90 01 00 E4 */ stw r0, 0xe4(r1) /* 800DF61C 000DC57C 38 61 00 08 */ addi r3, r1, 8 /* 800DF620 000DC580 C0 42 8F 64 */ lfs f2, lbl_805AAC84@sda21(r2) /* 800DF624 000DC584 48 07 E2 0D */ bl __ct__16CCameraShakeDataFff /* 800DF628 000DC588 3C 60 80 57 */ lis r3, lbl_8056D420@ha /* 800DF62C 000DC58C 38 81 00 08 */ addi r4, r1, 8 /* 800DF630 000DC590 38 63 D4 20 */ addi r3, r3, lbl_8056D420@l /* 800DF634 000DC594 4B F2 B7 75 */ bl __ct__16CCameraShakeDataFRC16CCameraShakeData /* 800DF638 000DC598 3C 80 80 01 */ lis r4, sub_8000ad2c@ha /* 800DF63C 000DC59C 3C A0 80 47 */ lis r5, lbl_8046C488@ha /* 800DF640 000DC5A0 38 84 AD 2C */ addi r4, r4, sub_8000ad2c@l /* 800DF644 000DC5A4 38 A5 C4 88 */ addi r5, r5, lbl_8046C488@l /* 800DF648 000DC5A8 48 2A A0 45 */ bl __register_global_object /* 800DF64C 000DC5AC 34 81 00 88 */ addic. r4, r1, 0x88 /* 800DF650 000DC5B0 41 82 00 10 */ beq lbl_800DF660 /* 800DF654 000DC5B4 3C 60 80 3E */ lis r3, lbl_803D8EA8@ha /* 800DF658 000DC5B8 38 03 8E A8 */ addi r0, r3, lbl_803D8EA8@l /* 800DF65C 000DC5BC 90 04 00 00 */ stw r0, 0(r4) lbl_800DF660: /* 800DF660 000DC5C0 34 81 00 4C */ addic. r4, r1, 0x4c /* 800DF664 000DC5C4 41 82 00 10 */ beq lbl_800DF674 /* 800DF668 000DC5C8 3C 60 80 3E */ lis r3, lbl_803D8EA8@ha /* 800DF66C 000DC5CC 38 03 8E A8 */ addi r0, r3, lbl_803D8EA8@l /* 800DF670 000DC5D0 90 04 00 00 */ stw r0, 0(r4) lbl_800DF674: /* 800DF674 000DC5D4 34 81 00 10 */ addic. r4, r1, 0x10 /* 800DF678 000DC5D8 41 82 00 10 */ beq lbl_800DF688 /* 800DF67C 000DC5DC 3C 60 80 3E */ lis r3, lbl_803D8EA8@ha /* 800DF680 000DC5E0 38 03 8E A8 */ addi r0, r3, lbl_803D8EA8@l /* 800DF684 000DC5E4 90 04 00 00 */ stw r0, 0(r4) lbl_800DF688: /* 800DF688 000DC5E8 80 01 00 E4 */ lwz r0, 0xe4(r1) /* 800DF68C 000DC5EC 7C 08 03 A6 */ mtlr r0 /* 800DF690 000DC5F0 38 21 00 E0 */ addi r1, r1, 0xe0 /* 800DF694 000DC5F4 4E 80 00 20 */ blr .section .rodata .balign 8 .global lbl_803CE530 lbl_803CE530: # ROM: 0x3CB530 .asciz "??(??)" .byte 0x50 .asciz "lasma2nd_1" .balign 4 .4byte 0