summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bugfixes.yaml5
-rw-r--r--kamek_pal.x2
-rw-r--r--src/randomcrap.S55
3 files changed, 62 insertions, 0 deletions
diff --git a/bugfixes.yaml b/bugfixes.yaml
index 819d568..f98489f 100644
--- a/bugfixes.yaml
+++ b/bugfixes.yaml
@@ -275,3 +275,8 @@ hooks:
branch_type: bl
src_addr_pal: 0x808399D4
target_func: 'FuckLineLiftWithARake'
+ - name: AlsoFuckTheLineLiftActivation
+ type: branch_insn
+ branch_type: b
+ src_addr_pal: 0x80839B00
+ target_func: 'AlsoFuckTheLineLiftActivation'
diff --git a/kamek_pal.x b/kamek_pal.x
index f25905d..5f5eeef 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -1,4 +1,6 @@
SECTIONS {
+ ContinueFromFuckLineLiftActivation = 0x80839B04;
+
GabonRock_DropOutState = 0x80998CF0;
GabonRock_CrushState = 0x80998CB0;
forceHCGROPushBack = 0x8001DED0;
diff --git a/src/randomcrap.S b/src/randomcrap.S
index 88cba39..29bf758 100644
--- a/src/randomcrap.S
+++ b/src/randomcrap.S
@@ -317,6 +317,7 @@ BigMetSlidingFix:
blr
.global FuckLineLiftWithARake
+.extern ContinueFromFuckLineLiftActivation
FuckLineLiftWithARake:
stfs f0, 0x324(r28)
lis r4, sfsdfsdf@h
@@ -325,6 +326,60 @@ FuckLineLiftWithARake:
stfs f0, 0x318(r28)
stfs f0, 0x31C(r28)
blr
+.global AlsoFuckTheLineLiftActivation
+AlsoFuckTheLineLiftActivation:
+ stwu r1, -0x10(r1)
+ lwz r6, 4(r3)
+ extrwi. r6, r6, 4,24
+ bne myLineLiftActivator
+ b ContinueFromFuckLineLiftActivation
+myLineLiftActivator:
+ mflr r0
+ stw r0, 0x14(r1)
+ stw r31, 0xC(r1)
+ li r31, 0
+ stw r30, 0x8(r1)
+ lwz r30, 0x518(r3)
+ b llaStartLoop
+llaLoop:
+ lwz r3, 4(r30)
+ lbz r0, 0x38C(r3)
+ cmplwi r0, 1
+ bne llaNotPlayer
+ addi r31, r31, 1
+ b llaNext
+llaNotPlayer:
+ cmplwi r0, 2
+ bne llaNext
+ lwz r12, 0x60(r3)
+ lwz r12, 0x6C(r12)
+ mtctr r12
+ bctrl
+ lbz r0, 0(r3)
+ extsb r0, r0
+ cmplwi r0, 4
+ bge llaNext
+ addi r31, r31, 1
+llaNext:
+ lwz r30, 0xC(r30)
+llaStartLoop:
+ cmpwi r30, 0
+ bne llaLoop
+
+ cmpwi r31, 0
+ beq llaReturnZero
+ li r3, 1
+ b llaReturn
+llaReturnZero:
+ li r3, 0
+llaReturn:
+ lwz r31, 0xC(r1)
+ lwz r30, 8(r1)
+ lwz r0, 0x14(r1)
+ mtlr r0
+ addi r1, r1, 0x10
+ blr
+
.data
sfsdfsdf: .float 512.0