From af52c034e1345f2605bd632bc577614452d59dca Mon Sep 17 00:00:00 2001 From: Seth Barberee Date: Sat, 3 Jan 2026 12:02:10 -0800 Subject: [PATCH] decomp TrySpawnDoughSeedPoke --- asm/overlay_29_02338560.s | 44 ----------------------------------- include/overlay_29_02338560.h | 6 +++++ main.lsf | 2 +- src/overlay_29_02338560.c | 32 +++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 45 deletions(-) delete mode 100644 asm/overlay_29_02338560.s create mode 100644 include/overlay_29_02338560.h create mode 100644 src/overlay_29_02338560.c diff --git a/asm/overlay_29_02338560.s b/asm/overlay_29_02338560.s deleted file mode 100644 index 490b90d4..00000000 --- a/asm/overlay_29_02338560.s +++ /dev/null @@ -1,44 +0,0 @@ - .include "asm/macros.inc" - .include "overlay_29_02338560.inc" - - .text - -; https://decomp.me/scratch/5EgdA - arm_func_start TrySpawnDoughSeedPoke -TrySpawnDoughSeedPoke: ; 0x02338560 - stmdb sp!, {r3, lr} - ldr r0, _023385BC ; =DUNGEON_PTR - ldr r0, [r0] - add r0, r0, #0x4000 -#ifdef JAPAN - ldrb r0, [r0, #0x24] -#else - ldrb r0, [r0, #0xc8] -#endif - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl IsFullFloorFixedRoom - cmp r0, #0 - bne _023385A4 - ldr r1, _023385C0 ; =ov29_02352B5C - add r0, sp, #0 - ldrh r2, [r1] - strh r2, [sp] - ldrh r1, [r1, #2] - strh r1, [sp, #2] - bl ov29_02344E88 -_023385A4: - ldr r0, _023385BC ; =DUNGEON_PTR - mov r1, #0 - ldr r0, [r0] - add r0, r0, #0x4000 -#ifdef JAPAN - strb r1, [r0, #0x24] -#else - strb r1, [r0, #0xc8] -#endif - ldmia sp!, {r3, pc} - .align 2, 0 -_023385BC: .word DUNGEON_PTR -_023385C0: .word ov29_02352B5C - arm_func_end TrySpawnDoughSeedPoke diff --git a/include/overlay_29_02338560.h b/include/overlay_29_02338560.h new file mode 100644 index 00000000..b0080809 --- /dev/null +++ b/include/overlay_29_02338560.h @@ -0,0 +1,6 @@ +#ifndef PMDSKY_OVERLAY_29_02338560_H +#define PMDSKY_OVERLAY_29_02338560_H + +void TrySpawnDoughSeedPoke(void); + +#endif /* ifndef PMDSKY_OVERLAY_29_02338560_H */ diff --git a/main.lsf b/main.lsf index f800f40c..dadaed83 100644 --- a/main.lsf +++ b/main.lsf @@ -650,7 +650,7 @@ Overlay OVY_29 Object src/overlay_29_0233836C.o Object asm/overlay_29_023383A8.o Object src/overlay_29_02338548.o - Object asm/overlay_29_02338560.o + Object src/overlay_29_02338560.o Object src/overlay_29_02338604.o Object asm/overlay_29_0233861C.o Object src/overlay_29_02340CAC.o diff --git a/src/overlay_29_02338560.c b/src/overlay_29_02338560.c new file mode 100644 index 00000000..2317d34a --- /dev/null +++ b/src/overlay_29_02338560.c @@ -0,0 +1,32 @@ +#include "overlay_29_02338560.h" +#include "dungeon.h" +#include "fixed_room_data_1.h" + +extern u16 ov29_02352B5C[2]; + +void ov29_02344E88(s16 *param_1); + +void TrySpawnDoughSeedPoke(void) +{ + s16 arr[2]; +#ifdef JAPAN + if (DUNGEON_PTR[0]->traps[24].id == TRAP_NULL_TRAP) { +#else + if (DUNGEON_PTR[0]->traps[65].id == TRAP_NULL_TRAP) { +#endif + return; + } + if (!IsFullFloorFixedRoom()) { + + arr[0] = ov29_02352B5C[0]; + arr[1] = ov29_02352B5C[1]; + ov29_02344E88(arr); + } +#ifdef JAPAN + DUNGEON_PTR[0]->traps[24].id = TRAP_NULL_TRAP; +#else + DUNGEON_PTR[0]->traps[65].id = TRAP_NULL_TRAP; +#endif +} + +