From e541025bb7c5bc4d4abeccc10bf0aef8f2662024 Mon Sep 17 00:00:00 2001 From: gamestabled Date: Mon, 15 Mar 2021 02:40:37 -0400 Subject: [PATCH] MinishSizedArchway OK --- asm/minishSizedArchway.s | 40 --------------------------------- linker.ld | 2 +- src/object/minishSizedArchway.c | 18 +++++++++++++++ 3 files changed, 19 insertions(+), 41 deletions(-) delete mode 100644 asm/minishSizedArchway.s create mode 100644 src/object/minishSizedArchway.c diff --git a/asm/minishSizedArchway.s b/asm/minishSizedArchway.s deleted file mode 100644 index cc3b1074..00000000 --- a/asm/minishSizedArchway.s +++ /dev/null @@ -1,40 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start MinishSizedArchway -MinishSizedArchway: @ 0x080973E4 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0xc] - cmp r0, #0 - bne _0809741E - movs r0, #1 - strb r0, [r4, #0xc] - ldrb r0, [r4, #0xa] - strb r0, [r4, #0x1e] - adds r1, r4, #0 - adds r1, #0x38 - movs r0, #2 - strb r0, [r1] - adds r0, r4, #0 - bl UpdateSpriteForCollisionLayer - bl CheckIsDungeon - cmp r0, #0 - beq _0809741E - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] -_0809741E: - pop {r4, pc} diff --git a/linker.ld b/linker.ld index 507f1cc7..4a55674c 100644 --- a/linker.ld +++ b/linker.ld @@ -799,7 +799,7 @@ SECTIONS { asm/minecartDoor.o(.text); asm/objectOnPillar.o(.text); src/object/mineralWaterSource.o(.text); - asm/minishSizedArchway.o(.text); + src/object/minishSizedArchway.o(.text); asm/object70.o(.text); asm/pushableGrave.o(.text); asm/object72.o(.text); diff --git a/src/object/minishSizedArchway.c b/src/object/minishSizedArchway.c new file mode 100644 index 00000000..f7fa4266 --- /dev/null +++ b/src/object/minishSizedArchway.c @@ -0,0 +1,18 @@ +#include "global.h" +#include "entity.h" +#include "sprite.h" + +extern u32 CheckIsDungeon(); + +void MinishSizedArchway(Entity* this) { + if (this->action == 0) { + this->action = 1; + this->frameIndex = this->type; + this->collisionLayer = 2; + UpdateSpriteForCollisionLayer(this); + if (CheckIsDungeon()) { + this->spritePriority.b0 = (this->spritePriority.b0 & 0xf8) | 1; + } + } + return; +}