diff options
| author | notyouraveragehooman <65437533+notyouraveragehooman@users.noreply.github.com> | 2020-06-13 14:51:28 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-13 14:51:28 -0700 |
| commit | 6fdaee5d2ea9d9d94cafbca212aa0967df11feaa (patch) | |
| tree | cce8daef8e379cbcf879567b8841315a94db3261 | |
| parent | 60f1ea5913b736a8d09811e4945d32eaba81f656 (diff) | |
| parent | e0b6a041f0be02898701d8bf546c366ff814aed8 (diff) | |
Merge pull request #8 from Macrepeh/master
bladeTrap
| -rw-r--r-- | asm/bladeTrap.s | 60 | ||||
| -rw-r--r-- | linker.ld | 2 | ||||
| -rw-r--r-- | src/bladeTrap.c | 33 |
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} @@ -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); + } +} |
