summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornotyouraveragehooman <65437533+notyouraveragehooman@users.noreply.github.com>2020-06-13 14:51:28 -0700
committerGitHub <noreply@github.com>2020-06-13 14:51:28 -0700
commit6fdaee5d2ea9d9d94cafbca212aa0967df11feaa (patch)
treecce8daef8e379cbcf879567b8841315a94db3261
parent60f1ea5913b736a8d09811e4945d32eaba81f656 (diff)
parente0b6a041f0be02898701d8bf546c366ff814aed8 (diff)
Merge pull request #8 from Macrepeh/master
bladeTrap
-rw-r--r--asm/bladeTrap.s60
-rw-r--r--linker.ld2
-rw-r--r--src/bladeTrap.c33
3 files changed, 34 insertions, 61 deletions
diff --git a/asm/bladeTrap.s b/asm/bladeTrap.s
deleted file mode 100644
index e13023bc..00000000
--- a/asm/bladeTrap.s
+++ /dev/null
@@ -1,60 +0,0 @@
- .include "asm/macros.inc"
-
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
- thumb_func_start sub_08032358
-sub_08032358: @ 0x08032358
- push {r4, r5, r6, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #0xc]
- cmp r0, #0
- bne _0803237C
- movs r0, #1
- strb r0, [r4, #0xc]
- ldrb r0, [r4, #0xa]
- bl sub_0804B128
- str r0, [r4, #0x54]
- adds r1, r4, #0
- adds r1, #0x54
- adds r2, r4, #0
- adds r2, #0x74
- adds r0, r4, #0
- bl sub_080A2CC0
-_0803237C:
- ldrb r1, [r4, #0x15]
- movs r6, #0x80
- adds r0, r6, #0
- ands r0, r1
- cmp r0, #0
- bne _0803238E
- adds r0, r4, #0
- bl sub_0806F69C
-_0803238E:
- adds r5, r4, #0
- adds r5, #0x74
- ldrh r0, [r5]
- subs r0, #1
- strh r0, [r5]
- lsls r0, r0, #0x10
- cmp r0, #0
- bne _080323BA
- ldrb r1, [r4, #0x15]
- adds r0, r6, #0
- ands r0, r1
- cmp r0, #0
- bne _080323AE
- movs r0, #0x74
- bl sub_08004488
-_080323AE:
- adds r1, r4, #0
- adds r1, #0x54
- adds r0, r4, #0
- adds r2, r5, #0
- bl sub_080A2CC0
-_080323BA:
- pop {r4, r5, r6, pc}
diff --git a/linker.ld b/linker.ld
index e951eb31..28949054 100644
--- a/linker.ld
+++ b/linker.ld
@@ -366,7 +366,7 @@ SECTIONS {
asm/rope.o(.text);
asm/smallPesto.o(.text);
asm/acroBandits.o(.text);
- asm/bladeTrap.o(.text);
+ src/bladeTrap.o(.text);
asm/keaton.o(.text);
asm/crow.o(.text);
asm/mulldozer.o(.text);
diff --git a/src/bladeTrap.c b/src/bladeTrap.c
new file mode 100644
index 00000000..ba37b3ae
--- /dev/null
+++ b/src/bladeTrap.c
@@ -0,0 +1,33 @@
+#include "global.h"
+#include "entity.h"
+#include "entityData.h"
+
+extern void sub_080A2CC0();
+extern void sub_0806F69C();
+extern void sub_08004488();
+extern Entity * sub_0804B128();
+
+void sub_08032358(Entity *ent)
+{
+ u16 uVar1;
+ Entity *pEVar2;
+ u16 *puVar3;
+ if (ent->action == 0) {
+ ent->action = 1;
+ pEVar2 = sub_0804B128((u8)(ent->entityType).parameter1);
+ ent->attachedEntity = pEVar2;
+ sub_080A2CC0((EntityData *)ent,&ent->attachedEntity,&ent->heldObjectPtr);
+ }
+ if ((ent->direction & 0x80) == 0) {
+ sub_0806F69C(ent);
+ }
+ (u32)puVar3 = &(ent->heldObjectPtr);
+ uVar1 = *puVar3;
+ *puVar3 = uVar1 - 1;
+ if ((u16)(*puVar3) == 0) {
+ if ((ent->direction & 0x80) == 0) {
+ sub_08004488(0x74);
+ }
+ sub_080A2CC0((EntityData *)ent,&ent->attachedEntity,puVar3);
+ }
+}