From d9df74f0f6681e4da25a7bbd76d802e476e93007 Mon Sep 17 00:00:00 2001 From: cecilarmitais Date: Fri, 21 Aug 2026 00:56:33 -0700 Subject: [PATCH] Decomp 17 functions, emptying eight asm files Second cleanup batch. Eight files are now gone: asm/overlay_29_022E1618.s asm/main_0202B530.s asm/overlay_29_022DC65C.s asm/main_0205EC38.s asm/overlay_29_0232124C.s asm/main_02051788.s asm/main_02042B20.s asm/main_02065BD8.s main.lsf falls from 1175 objects to 1167. Twenty-two functions matched across eleven files, but only seventeen land. FixedPoint64ToInt, GetSpriteSize and RemoveItemFromKecleonShop1 did not match, and their files therefore cannot be emptied; landing their already-matched siblings would have converted two two-function files into two fresh single-function fragments, so those two are held back as well. This batch reduces the fragment count without creating any. Three declarations follow the tree rather than the scratch: ov29_0232119C takes struct entity * as its first parameter, ov29_023538B4 is already declared as a u8 array, and ov29_022DC2B8 and ov29_022DC33C are declared u8 * in their destination file. That last one is inconsistent with poly_text.h, which declares ov29_022DC2B8 as struct unk_ov29_022DC240_t *; the file already carried the same split for ov29_022DC240, so its local convention was followed rather than changing pre-existing code. Worth unifying separately. Authored by Claude (Opus 5) under human direction. Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK. Co-Authored-By: Claude Opus 5 --- asm/include/main_0202B530.inc | 4 --- asm/include/main_02042B20.inc | 2 -- asm/include/main_02051788.inc | 3 -- asm/include/main_0205EC38.inc | 2 -- asm/include/main_02065BD8.inc | 4 --- asm/include/overlay_29_022DC65C.inc | 4 --- asm/include/overlay_29_022E1618.inc | 2 -- asm/include/overlay_29_0232124C.inc | 2 -- asm/main_0202B530.s | 22 ------------- asm/main_02042B20.s | 42 ------------------------ asm/main_02051788.s | 35 -------------------- asm/main_0205EC38.s | 30 ----------------- asm/main_02065BD8.s | 51 ----------------------------- asm/overlay_29_022DC65C.s | 24 -------------- asm/overlay_29_022E1618.s | 16 --------- asm/overlay_29_0232124C.s | 24 -------------- include/main_0202B4C4.h | 2 ++ include/main_02042AF8.h | 2 ++ include/main_02051760.h | 2 ++ include/main_0205EC18.h | 4 +++ include/main_02065B3C.h | 3 ++ include/overlay_29_022DC61C.h | 2 ++ include/overlay_29_022E1610.h | 2 ++ include/overlay_29_02321238.h | 2 ++ main.lsf | 8 ----- src/main_0202B4C4.c | 17 ++++++++++ src/main_02042AF8.c | 31 ++++++++++++++++++ src/main_02051760.c | 21 ++++++++++++ src/main_0205EC18.c | 13 ++++++++ src/main_02065B3C.c | 35 ++++++++++++++++++++ src/overlay_29_022DC61C.c | 14 ++++++++ src/overlay_29_022E1610.c | 10 ++++++ src/overlay_29_02321238.c | 10 ++++++ 33 files changed, 170 insertions(+), 275 deletions(-) delete mode 100644 asm/include/main_0202B530.inc delete mode 100644 asm/include/main_02042B20.inc delete mode 100644 asm/include/main_02051788.inc delete mode 100644 asm/include/main_0205EC38.inc delete mode 100644 asm/include/main_02065BD8.inc delete mode 100644 asm/include/overlay_29_022DC65C.inc delete mode 100644 asm/include/overlay_29_022E1618.inc delete mode 100644 asm/include/overlay_29_0232124C.inc delete mode 100644 asm/main_0202B530.s delete mode 100644 asm/main_02042B20.s delete mode 100644 asm/main_02051788.s delete mode 100644 asm/main_0205EC38.s delete mode 100644 asm/main_02065BD8.s delete mode 100644 asm/overlay_29_022DC65C.s delete mode 100644 asm/overlay_29_022E1618.s delete mode 100644 asm/overlay_29_0232124C.s diff --git a/asm/include/main_0202B530.inc b/asm/include/main_0202B530.inc deleted file mode 100644 index 9a47def6..00000000 --- a/asm/include/main_0202B530.inc +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once -.public GetCurrentPage -.public GetSelectedItemOnPage -.public GetWindowContents diff --git a/asm/include/main_02042B20.inc b/asm/include/main_02042B20.inc deleted file mode 100644 index f8c6de71..00000000 --- a/asm/include/main_02042B20.inc +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -.public UNK_STORAGE_STRUCT_0XC diff --git a/asm/include/main_02051788.inc b/asm/include/main_02051788.inc deleted file mode 100644 index abf11829..00000000 --- a/asm/include/main_02051788.inc +++ /dev/null @@ -1,3 +0,0 @@ -#pragma once -.public _020A20B1 -.public ARM9_UNKNOWN_TABLE__NA_20A20B0 diff --git a/asm/include/main_0205EC38.inc b/asm/include/main_0205EC38.inc deleted file mode 100644 index 472141e4..00000000 --- a/asm/include/main_0205EC38.inc +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -.public MISSION_DELIVER_LIST_PTR diff --git a/asm/include/main_02065BD8.inc b/asm/include/main_02065BD8.inc deleted file mode 100644 index 901b5ada..00000000 --- a/asm/include/main_02065BD8.inc +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once -.public StrncpySimple -.public StrncpySimpleNoPadSafe -.public _022B7310 diff --git a/asm/include/overlay_29_022DC65C.inc b/asm/include/overlay_29_022DC65C.inc deleted file mode 100644 index 327aba51..00000000 --- a/asm/include/overlay_29_022DC65C.inc +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once -.public ov29_022DC2B8 -.public ov29_022DC33C -.public ov29_023538B4 diff --git a/asm/include/overlay_29_022E1618.inc b/asm/include/overlay_29_022E1618.inc deleted file mode 100644 index 3f59c932..00000000 --- a/asm/include/overlay_29_022E1618.inc +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once - diff --git a/asm/include/overlay_29_0232124C.inc b/asm/include/overlay_29_0232124C.inc deleted file mode 100644 index 9e00281a..00000000 --- a/asm/include/overlay_29_0232124C.inc +++ /dev/null @@ -1,2 +0,0 @@ -#pragma once -.public ov29_0232119C diff --git a/asm/main_0202B530.s b/asm/main_0202B530.s deleted file mode 100644 index a3c33089..00000000 --- a/asm/main_0202B530.s +++ /dev/null @@ -1,22 +0,0 @@ - .include "asm/macros.inc" - .include "main_0202B530.inc" - - .text - - arm_func_start sub_0202B530 -sub_0202B530: ; 0x0202B530 - stmdb sp!, {r3, lr} - bl GetWindowContents - add r0, r0, #4 - bl GetSelectedItemOnPage - ldmia sp!, {r3, pc} - arm_func_end sub_0202B530 - - arm_func_start sub_0202B544 -sub_0202B544: ; 0x0202B544 - stmdb sp!, {r3, lr} - bl GetWindowContents - add r0, r0, #4 - bl GetCurrentPage - ldmia sp!, {r3, pc} - arm_func_end sub_0202B544 diff --git a/asm/main_02042B20.s b/asm/main_02042B20.s deleted file mode 100644 index 05c7702b..00000000 --- a/asm/main_02042B20.s +++ /dev/null @@ -1,42 +0,0 @@ - .include "asm/macros.inc" - .include "main_02042B20.inc" - - .text - - arm_func_start sub_02042B20 -sub_02042B20: ; 0x02042B20 - ldr r1, _02042B4C ; =UNK_STORAGE_STRUCT_0XC - mov r0, #0 - ldr r3, [r1, #8] - mov r2, r0 -_02042B30: - ldr r1, [r3, r2, lsl #2] - add r2, r2, #1 - tst r1, #1 - addne r0, r0, #1 - cmp r2, #0x32 - blt _02042B30 - bx lr - .align 2, 0 -_02042B4C: .word UNK_STORAGE_STRUCT_0XC - arm_func_end sub_02042B20 - - arm_func_start sub_02042B50 -sub_02042B50: ; 0x02042B50 - ldr r1, _02042B80 ; =UNK_STORAGE_STRUCT_0XC - mov r0, #0 - ldr r2, [r1, #8] - b _02042B70 -_02042B60: - ldr r1, [r2, r0, lsl #2] - tst r1, #1 - bxne lr - add r0, r0, #1 -_02042B70: - cmp r0, #0x32 - blt _02042B60 - mvn r0, #0 - bx lr - .align 2, 0 -_02042B80: .word UNK_STORAGE_STRUCT_0XC - arm_func_end sub_02042B50 diff --git a/asm/main_02051788.s b/asm/main_02051788.s deleted file mode 100644 index 33d073e3..00000000 --- a/asm/main_02051788.s +++ /dev/null @@ -1,35 +0,0 @@ - .include "asm/macros.inc" - .include "main_02051788.inc" - - .text - - arm_func_start sub_02051788 -sub_02051788: ; 0x02051788 - ldr r1, _02051794 ; =_020A20B1 - ldrb r0, [r1, r0, lsl #1] - bx lr - .align 2, 0 -_02051794: .word _020A20B1 - arm_func_end sub_02051788 - - arm_func_start sub_02051798 -sub_02051798: ; 0x02051798 - mov ip, #0 - ldr r2, _020517D0 ; =ARM9_UNKNOWN_TABLE__NA_20A20B0 - b _020517C0 -_020517A4: - add r1, r2, ip, lsl #1 - ldrb r1, [r1, #1] - mov r3, ip, lsl #1 - cmp r0, r1 - ldreqb r0, [r2, r3] - bxeq lr - add ip, ip, #1 -_020517C0: - cmp ip, #0x100 - blt _020517A4 - mov r0, #0xff - bx lr - .align 2, 0 -_020517D0: .word ARM9_UNKNOWN_TABLE__NA_20A20B0 - arm_func_end sub_02051798 diff --git a/asm/main_0205EC38.s b/asm/main_0205EC38.s deleted file mode 100644 index ea7c157a..00000000 --- a/asm/main_0205EC38.s +++ /dev/null @@ -1,30 +0,0 @@ - .include "asm/macros.inc" - .include "main_0205EC38.inc" - - .text - - arm_func_start sub_0205EC38 -sub_0205EC38: ; 0x0205EC38 - ldr r1, _0205EC4C ; =MISSION_DELIVER_LIST_PTR - ldr r1, [r1, #0x18] - add r1, r1, #0x320 - add r0, r1, r0, lsl #5 - bx lr - .align 2, 0 -_0205EC4C: .word MISSION_DELIVER_LIST_PTR - arm_func_end sub_0205EC38 - - arm_func_start sub_0205EC50 -sub_0205EC50: ; 0x0205EC50 - ldr r1, _0205EC74 ; =MISSION_DELIVER_LIST_PTR - ldr r1, [r1, #0x18] - add r0, r1, r0, lsl #5 - ldrb r0, [r0, #0x320] - cmp r0, #0 - moveq r0, #1 - movne r0, #0 - and r0, r0, #0xff - bx lr - .align 2, 0 -_0205EC74: .word MISSION_DELIVER_LIST_PTR - arm_func_end sub_0205EC50 diff --git a/asm/main_02065BD8.s b/asm/main_02065BD8.s deleted file mode 100644 index 67370484..00000000 --- a/asm/main_02065BD8.s +++ /dev/null @@ -1,51 +0,0 @@ - .include "asm/macros.inc" - .include "main_02065BD8.inc" - - .text - - arm_func_start sub_02065BD8 -sub_02065BD8: ; 0x02065BD8 - ldr ip, _02065BE8 ; =StrncpySimple - mov r2, r1 - ldr r1, _02065BEC ; =_022B7310 - bx ip - .align 2, 0 -_02065BE8: .word StrncpySimple -_02065BEC: .word _022B7310 - arm_func_end sub_02065BD8 - - arm_func_start sub_02065BF0 -sub_02065BF0: ; 0x02065BF0 - ldr ip, _02065C00 ; =StrncpySimpleNoPadSafe - ldr r1, _02065C04 ; =_022B7310 - mov r2, #0xa - bx ip - .align 2, 0 -_02065C00: .word StrncpySimpleNoPadSafe -_02065C04: .word _022B7310 - arm_func_end sub_02065BF0 - - arm_func_start sub_02065C08 -sub_02065C08: ; 0x02065C08 - ldr ip, _02065C44 ; =_022B7310 - mov r3, #0 - b _02065C20 -_02065C14: - ldrb r2, [r0], #1 - add r3, r3, #1 - strb r2, [ip], #1 -_02065C20: - cmp r3, r1 - blt _02065C14 - mov r0, #0 - b _02065C38 -_02065C30: - strb r0, [ip], #1 - add r3, r3, #1 -_02065C38: - cmp r3, #0x10 - blt _02065C30 - bx lr - .align 2, 0 -_02065C44: .word _022B7310 - arm_func_end sub_02065C08 diff --git a/asm/overlay_29_022DC65C.s b/asm/overlay_29_022DC65C.s deleted file mode 100644 index 7a77b702..00000000 --- a/asm/overlay_29_022DC65C.s +++ /dev/null @@ -1,24 +0,0 @@ - .include "asm/macros.inc" - .include "overlay_29_022DC65C.inc" - - .text - - arm_func_start ov29_022DC65C -ov29_022DC65C: ; 0x022DC65C - ldr ip, _022DC668 ; =ov29_022DC2B8 - ldr r0, _022DC66C ; =ov29_023538B4 - bx ip - .align 2, 0 -_022DC668: .word ov29_022DC2B8 -_022DC66C: .word ov29_023538B4 - arm_func_end ov29_022DC65C - - arm_func_start ov29_022DC670 -ov29_022DC670: ; 0x022DC670 - ldr ip, _022DC67C ; =ov29_022DC33C - ldr r0, _022DC680 ; =ov29_023538B4 - bx ip - .align 2, 0 -_022DC67C: .word ov29_022DC33C -_022DC680: .word ov29_023538B4 - arm_func_end ov29_022DC670 diff --git a/asm/overlay_29_022E1618.s b/asm/overlay_29_022E1618.s deleted file mode 100644 index ebd4c100..00000000 --- a/asm/overlay_29_022E1618.s +++ /dev/null @@ -1,16 +0,0 @@ - .include "asm/macros.inc" - .include "overlay_29_022E1618.inc" - - .text - - arm_func_start ov29_022E1618 -ov29_022E1618: ; 0x022E1618 - ldr r0, [r0, #0xb4] - bx lr - arm_func_end ov29_022E1618 - - arm_func_start ov29_022E1620 -ov29_022E1620: ; 0x022E1620 - ldr r0, [r0, #0xb4] - bx lr - arm_func_end ov29_022E1620 diff --git a/asm/overlay_29_0232124C.s b/asm/overlay_29_0232124C.s deleted file mode 100644 index e1aa0431..00000000 --- a/asm/overlay_29_0232124C.s +++ /dev/null @@ -1,24 +0,0 @@ - .include "asm/macros.inc" - .include "overlay_29_0232124C.inc" - - .text - - arm_func_start ov29_0232124C -ov29_0232124C: ; 0x0232124C - ldr ip, _0232125C ; =ov29_0232119C - mov r1, #1 - mov r2, r1 - bx ip - .align 2, 0 -_0232125C: .word ov29_0232119C - arm_func_end ov29_0232124C - - arm_func_start ov29_02321260 -ov29_02321260: ; 0x02321260 - ldr ip, _02321270 ; =ov29_0232119C - mov r1, #0 - mov r2, r1 - bx ip - .align 2, 0 -_02321270: .word ov29_0232119C - arm_func_end ov29_02321260 diff --git a/include/main_0202B4C4.h b/include/main_0202B4C4.h index 3118297a..52894a38 100644 --- a/include/main_0202B4C4.h +++ b/include/main_0202B4C4.h @@ -6,5 +6,7 @@ void CloseSimpleMenu(s32 window_id); u32 IsSimpleMenuActive(s32 window_id); bool8 CheckSimpleMenuField0x1A0(s32 window_id); +s32 sub_0202B530(s32 window_id); +s32 sub_0202B544(s32 window_id); #endif diff --git a/include/main_02042AF8.h b/include/main_02042AF8.h index 9631504d..61a8818b 100644 --- a/include/main_02042AF8.h +++ b/include/main_02042AF8.h @@ -42,5 +42,7 @@ bool8 IsCollectionMenuActive(s8 a); bool8 IsCollectionMenuState3(s8 a); void ClearBagSelectedItemTable(void); +s32 sub_02042B20(void); +s32 sub_02042B50(void); #endif diff --git a/include/main_02051760.h b/include/main_02051760.h index 5ce60732..4ee0b6a0 100644 --- a/include/main_02051760.h +++ b/include/main_02051760.h @@ -6,5 +6,7 @@ bool8 IsSkyExclusiveDungeon(enum dungeon_id dungeon_id); bool32 JoinedAtRangeCheck2(u8 joined_at); +u8 sub_02051788(s32 i); +u8 sub_02051798(u8 v); #endif //PMDSKY_MAIN_02051760_H diff --git a/include/main_0205EC18.h b/include/main_0205EC18.h index 98d813bc..e6ac0ee1 100644 --- a/include/main_0205EC18.h +++ b/include/main_0205EC18.h @@ -1,6 +1,10 @@ #ifndef PMDSKY_MAIN_0205EC18_H #define PMDSKY_MAIN_0205EC18_H +#include "util.h" + void sub_0205EC18(u32 index); +u8 * sub_0205EC38(s32 i); +bool8 sub_0205EC50(s32 i); #endif //PMDSKY_MAIN_0205EC18_H diff --git a/include/main_02065B3C.h b/include/main_02065B3C.h index c02c2636..17d620ad 100644 --- a/include/main_02065B3C.h +++ b/include/main_02065B3C.h @@ -43,5 +43,8 @@ void SetRandomRequestNpcs1And2(enum monster_id random_request_npc01, enum monste void SetRandomRequestNpc03KindVar(enum monster_id kind); void SetAllEventNpcs(enum monster_id event_npc01, enum monster_id event_npc02, enum monster_id event_npc03, enum monster_id event_npc04); void SetNewFriendActor(enum monster_id new_friend); +void sub_02065BD8(u8 *dst, s32 n); +void sub_02065BF0(u8 *dst); +void sub_02065C08(u8 *src, s32 n); #endif diff --git a/include/overlay_29_022DC61C.h b/include/overlay_29_022DC61C.h index 20be6aba..b0a96941 100644 --- a/include/overlay_29_022DC61C.h +++ b/include/overlay_29_022DC61C.h @@ -3,5 +3,7 @@ // mem init? void ov29_022DC61C(); +void ov29_022DC65C(void); +void ov29_022DC670(void); #endif //PMDSKY_OVERLAY_29_022DC61C_H diff --git a/include/overlay_29_022E1610.h b/include/overlay_29_022E1610.h index 010a6a1e..7d6160a7 100644 --- a/include/overlay_29_022E1610.h +++ b/include/overlay_29_022E1610.h @@ -5,5 +5,7 @@ // Given an item entity, returns the pointer to the item info struct it contains. struct item* GetItemInfo(struct entity *item_entity); +void * ov29_022E1618(struct entity *entity); +void * ov29_022E1620(struct entity *entity); #endif //PMDSKY_OVERLAY_29_022E1610_H diff --git a/include/overlay_29_02321238.h b/include/overlay_29_02321238.h index 2423fd8d..dd4635b2 100644 --- a/include/overlay_29_02321238.h +++ b/include/overlay_29_02321238.h @@ -6,5 +6,7 @@ #include "move.h" void ov29_02321238(struct entity *entity); +void ov29_0232124C(struct entity *entity); +void ov29_02321260(struct entity *entity); #endif diff --git a/main.lsf b/main.lsf index 016a9d36..bb51128e 100644 --- a/main.lsf +++ b/main.lsf @@ -173,7 +173,6 @@ Static main Object src/main_0202AB40.o Object asm/main_0202AB94.o Object src/main_0202B4C4.o - Object asm/main_0202B530.o Object src/main_0202B558.o Object asm/main_0202B568.o Object src/main_0202BA0C.o @@ -217,7 +216,6 @@ Static main Object src/main_0203C910.o Object asm/main_0203CAF0.o Object src/main_02042AF8.o - Object asm/main_02042B20.o Object src/main_02042B84.o Object asm/main_02042BE0.o Object src/main_02043148.o @@ -282,7 +280,6 @@ Static main Object src/main_020514CC.o Object asm/main_02051504.o Object src/main_02051760.o - Object asm/main_02051788.o Object src/tactics_data.o Object asm/main_rodata_020A190C.o Object src/monster_parameters.o @@ -372,7 +369,6 @@ Static main Object asm/main_0205EB00.o Object src/main_0205EBD8.o Object src/main_0205EC18.o - Object asm/main_0205EC38.o Object src/main_0205EC78.o Object asm/main_0205EC98.o Object src/main_0205ED84.o @@ -383,7 +379,6 @@ Static main Object src/main_02065974.o Object asm/main_02065998.o Object src/main_02065B3C.o - Object asm/main_02065BD8.o Object src/main_02065C48.o Object asm/main_02065C84.o Object src/main_020663C8.o @@ -798,7 +793,6 @@ Overlay OVY_29 Object src/poly_text.o Object asm/overlay_29_022DC314.o Object src/overlay_29_022DC61C.o - Object asm/overlay_29_022DC65C.o Object src/overlay_29_022DC684.o Object asm/overlay_29_022DC7E4.o Object src/overlay_29_022DEAB0.o @@ -810,7 +804,6 @@ Overlay OVY_29 Object src/overlay_29_022E0A04.o Object asm/overlay_29_022E0A18.o Object src/overlay_29_022E1610.o - Object asm/overlay_29_022E1618.o Object src/dungeon_util_1.o Object asm/overlay_29_022E1640.o Object src/dg_object.o @@ -1067,7 +1060,6 @@ Overlay OVY_29 Object src/overlay_29_02320764.o Object asm/overlay_29_02320788.o Object src/overlay_29_02321238.o - Object asm/overlay_29_0232124C.o Object src/overlay_29_02321274.o Object asm/overlay_29_02321288.o Object src/overlay_29_02321438.o diff --git a/src/main_0202B4C4.c b/src/main_0202B4C4.c index 8e111952..dd953713 100644 --- a/src/main_0202B4C4.c +++ b/src/main_0202B4C4.c @@ -1,4 +1,11 @@ #include "main_0202B4C4.h" +#include "main_02032558.h" + +extern s32 GetCurrentPage(struct unk_02032558 *p); + +extern void *GetWindowContents(s32 window_id); + +extern s32 GetSelectedItemOnPage(struct unk_02032558 *p); #include "main_0202AAA8.h" #include "main_02001188.h" @@ -25,3 +32,13 @@ bool8 CheckSimpleMenuField0x1A0(s32 window_id) return menu->field_0x1A0 == 0; } + +s32 sub_0202B530(s32 window_id) +{ + return GetSelectedItemOnPage(GetWindowContents(window_id) + 4); +} + +s32 sub_0202B544(s32 window_id) +{ + return GetCurrentPage(GetWindowContents(window_id) + 4); +} diff --git a/src/main_02042AF8.c b/src/main_02042AF8.c index d2bbb0e6..9aa9971a 100644 --- a/src/main_02042AF8.c +++ b/src/main_02042AF8.c @@ -1,5 +1,7 @@ #include "main_02042AF8.h" +extern struct unk_020AFED4 UNK_STORAGE_STRUCT_0XC; + void ClearBagSelectedItemTable(void) { s32 i; @@ -8,3 +10,32 @@ void ClearBagSelectedItemTable(void) UNK_STORAGE_STRUCT_0XC.field_0x8[i] = 0; } } + +s32 sub_02042B20(void) +{ + s32 n; + s32 i; + + n = 0; + + for (i = 0; i < 0x32; i++) { + if (UNK_STORAGE_STRUCT_0XC.field_0x8[i] & 1) { + n++; + } + } + + return n; +} + +s32 sub_02042B50(void) +{ + s32 i; + + for (i = 0; i < 0x32; i++) { + if (UNK_STORAGE_STRUCT_0XC.field_0x8[i] & 1) { + return i; + } + } + + return -1; +} diff --git a/src/main_02051760.c b/src/main_02051760.c index f471707b..eb5375a8 100644 --- a/src/main_02051760.c +++ b/src/main_02051760.c @@ -1,4 +1,7 @@ #include "main_02051760.h" + +extern u8 _020A20B1[]; +extern u8 ARM9_UNKNOWN_TABLE__NA_20A20B0[]; #include "enums.h" #include "util.h" @@ -14,3 +17,21 @@ bool32 JoinedAtRangeCheck2(u8 joined_at) { return joined_at == DUNGEON_BEACH || (joined_at >= DUNGEON_DUMMY_0xEC && DUNGEON_DUMMY_0xF0 >= joined_at); } + +u8 sub_02051788(s32 i) +{ + return _020A20B1[i * 2]; +} + +u8 sub_02051798(u8 v) +{ + s32 i; + + for (i = 0; i < 0x100; i++) { + if (v == ARM9_UNKNOWN_TABLE__NA_20A20B0[i * 2 + 1]) { + return ARM9_UNKNOWN_TABLE__NA_20A20B0[i * 2]; + } + } + + return 0xFF; +} diff --git a/src/main_0205EC18.c b/src/main_0205EC18.c index 66b25094..e629a060 100644 --- a/src/main_0205EC18.c +++ b/src/main_0205EC18.c @@ -9,3 +9,16 @@ void sub_0205EC18(u32 index) { ClearMissionData((struct mission*) (MISSION_DELIVER_LIST_PTR.unk18 + 0x300 + index * 32)); } + +u8 * sub_0205EC38(s32 i) +{ + u8 *p; + + p = MISSION_DELIVER_LIST_PTR.unk18 + 0x320; + return &p[i * 0x20]; +} + +bool8 sub_0205EC50(s32 i) +{ + return MISSION_DELIVER_LIST_PTR.unk18[i * 0x20 + 0x320] == 0; +} diff --git a/src/main_02065B3C.c b/src/main_02065B3C.c index 4c9817d2..402714ba 100644 --- a/src/main_02065B3C.c +++ b/src/main_02065B3C.c @@ -1,4 +1,10 @@ #include "enums.h" + +extern void StrncpySimpleNoPadSafe(u8 *dest, const u8 *src, u32 n); + +extern u8 _022B7310[]; + +extern void StrncpySimple(u8 *dest, const u8 *src, s32 n); #include "main_02065B3C.h" #include "script_variable.h" @@ -57,3 +63,32 @@ void SetNewFriendActor(enum monster_id new_friend) { SPECIAL_ACTORS.new_friend = new_friend; } + +void sub_02065BD8(u8 *dst, s32 n) +{ + StrncpySimple(dst, _022B7310, n); +} + +void sub_02065BF0(u8 *dst) +{ + StrncpySimpleNoPadSafe(dst, _022B7310, 10); +} + +void sub_02065C08(u8 *src, s32 n) +{ + u8 *dst; + s32 i; + + dst = _022B7310; + i = 0; + + while (i < n) { + *dst++ = *src++; + i++; + } + + while (i < 0x10) { + *dst++ = 0; + i++; + } +} diff --git a/src/overlay_29_022DC61C.c b/src/overlay_29_022DC61C.c index af830ddf..a87a79c2 100644 --- a/src/overlay_29_022DC61C.c +++ b/src/overlay_29_022DC61C.c @@ -1,6 +1,10 @@ #include "overlay_29_022DC61C.h" + #include "main_0200330C.h" +extern void ov29_022DC2B8(u8 *p); +extern void ov29_022DC33C(u8 *p); + extern u8 ov29_023538B4[0x0001963C]; extern u8 *ov29_023534E0; @@ -15,3 +19,13 @@ void ov29_022DC61C() ov29_022DC240(ov29_023538B4); ov29_022DC314(ov29_023538B4, ov29_023534E0); } + +void ov29_022DC65C(void) +{ + ov29_022DC2B8(ov29_023538B4); +} + +void ov29_022DC670(void) +{ + ov29_022DC33C(ov29_023538B4); +} diff --git a/src/overlay_29_022E1610.c b/src/overlay_29_022E1610.c index b1d44790..3e226ab1 100644 --- a/src/overlay_29_022E1610.c +++ b/src/overlay_29_022E1610.c @@ -4,3 +4,13 @@ struct item* GetItemInfo(struct entity *item_entity) { return item_entity->info; } + +void * ov29_022E1618(struct entity *entity) +{ + return entity->info; +} + +void * ov29_022E1620(struct entity *entity) +{ + return entity->info; +} diff --git a/src/overlay_29_02321238.c b/src/overlay_29_02321238.c index cf848d10..e124a024 100644 --- a/src/overlay_29_02321238.c +++ b/src/overlay_29_02321238.c @@ -6,3 +6,13 @@ void ov29_02321238(struct entity *entity) { ov29_0232119C(entity, 0, 1); } + +void ov29_0232124C(struct entity *entity) +{ + ov29_0232119C(entity, 1, 1); +} + +void ov29_02321260(struct entity *entity) +{ + ov29_0232119C(entity, 0, 0); +}