diff options
Diffstat (limited to 'src/poweruphax.S')
-rw-r--r-- | src/poweruphax.S | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/poweruphax.S b/src/poweruphax.S index 899b5e4..34cca4b 100644 --- a/src/poweruphax.S +++ b/src/poweruphax.S @@ -647,6 +647,88 @@ CheckExistingPowerup: +.global AcPyCtorHS +AcPyCtorHS: + stwu r1, -0x10(r1) + mflr r0 + stw r0, 0x14(r1) + stw r31, 0xC(r1) + mr r31, r3 + + bl build__21dHammerSuitRenderer_cFv + stw r3, 0x2D08(r31) + + mr r3, r31 + lwz r31, 0xC(r1) + lwz r0, 0x14(r1) + mtlr r0 + addi r1, r1, 0x10 + blr + +.global AcPyDtorHS +AcPyDtorHS: + stwu r1, -0x10(r1) + mflr r0 + stw r0, 0x14(r1) + stw r31, 0xC(r1) + stw r30, 8(r1) + + mr r31, r4 + mr r30, r3 + + cmpwi r3, 0 + beq oops + lwz r3, 0x2D08(r30) + li r4, 1 + bl __dt__21dHammerSuitRenderer_cFv +oops: + + mr r3, r30 + mr r4, r31 + bl RealAcPyDtor + + lwz r30, 8(r1) + lwz r31, 0xC(r1) + lwz r0, 0x14(r1) + mtlr r0 + addi r1, r1, 0x10 + blr + +.global AcPySetMeUpHS +AcPySetMeUpHS: + # partway in: r31 = this + lwz r3, 0x2D08(r31) + addi r4, r31, 0x2A60 + bl setup__21dHammerSuitRenderer_cFP21dPlayerModelHandler_c + + # epilogue + li r3, 1 + lwz r31, 0xC(r1) + lwz r0, 0x14(r1) + mtlr r0 + addi r1, r1, 0x10 + blr + +.global AcPyDrawHS +AcPyDrawHS: + # partway in: r31 = this + lwz r3, 0x2D08(r31) + bl draw__21dHammerSuitRenderer_cFv + + # epilogue + li r3, 1 + lwz r0, 0x14(r1) + lwz r31, 0xC(r1) + mtlr r0 + addi r1, r1, 0x10 + blr + +.extern RealAcPyDtor +.extern build__21dHammerSuitRenderer_cFv +.extern __dt__21dHammerSuitRenderer_cFv +.extern setup__21dHammerSuitRenderer_cFP21dPlayerModelHandler_c +.extern draw__21dHammerSuitRenderer_cFv + .data PowerupSounds: |