Decomp ov31_02382F68

This commit is contained in:
user 2024-07-31 08:22:44 +02:00
parent bd07c19005
commit 76e8d94dc1
6 changed files with 25 additions and 36 deletions

View File

@ -221,6 +221,7 @@
.public ov29_0238280C
.public ov31_02382B54
.public ov31_02382DAC
.public ov31_02382F68
.public ov31_02389E22
.public ov31_02389F5C
.public ov31_0238A044

View File

@ -1,34 +1,8 @@
.include "asm/macros.inc"
.include "overlay_31002382F68.inc"
.include "overlay_31002382FBC.inc"
.text
arm_func_start ov31_02382F68
ov31_02382F68: ; 0x02382F68
stmdb sp!, {r4, lr}
ldr r1, _02382FB4 ; =ov31_0238A2A0
ldr r2, _02382FB8 ; =ov31_02389E22
ldr r1, [r1, #4]
mov r4, r0
ldr r0, [r1, #0x14]
mov r0, r0, lsl #2
ldrh r0, [r2, r0]
bl StringFromId
mov r3, r0
ldr ip, _02382FB4 ; =ov31_0238A2A0
mov r0, r4
mov r1, #0x10
mov r2, #0x12
str r3, [ip]
bl DrawTextInWindow
mov r0, r4
bl UpdateWindow
ldmia sp!, {r4, pc}
.align 2, 0
_02382FB4: .word ov31_0238A2A0
_02382FB8: .word ov31_02389E22
arm_func_end ov31_02382F68
arm_func_start ov31_02382FBC
ov31_02382FBC: ; 0x02382FBC
stmdb sp!, {r4, lr}

View File

@ -57,6 +57,7 @@ void ov31_02382DAC(void);
struct struct_1* ov31_02382E08(void);
void ov31_02382E18(u32* arg_1, u32 arg_2);
void ov31_02382ED4(u32* arg_1);
void ov31_02382F68(struct Window* window);

View File

@ -308,7 +308,7 @@ Overlay OVY_31
{
After OVY_29
Object src/overlay_3102382820.o
Object asm/overlay_31002382F68.o
Object asm/overlay_31002382FBC.o
}
Overlay OVY_32
{

View File

@ -11,10 +11,12 @@ extern struct struct_1 DUNGEON_WINDOW_PARAMS_3;
extern u32 DUNGEON_WINDOW_PARAMS_4;
extern u32 DUNGEON_MAIN_MENU_ITEMS;
extern struct struct_3* ov31_0238A2A0[2];
extern struct {u8* str; struct struct_3* st3;} ov31_0238A2A0;
extern struct struct_1 OVERLAY31_UNKNOWN_STRUCT__NA_2389E30;
extern u16 ov31_02389E22[];
extern void* MemAlloc(u32 size, u32 nmemb);
//extern u32 sub_020348E4(struct struct_1*);
@ -252,7 +254,7 @@ void ov31_02382E18(u32* arg_1, u32 arg_2)
AdvanceFrame(0x62);
ov31_02382ED4(arg_1);
while ((u8)(ov31_0238A2A0[1] != NULL)) {
while ((u8)(ov31_0238A2A0.st3 != NULL)) {
AdvanceFrame(0x62);
}
@ -275,11 +277,11 @@ void ov31_02382ED4(u32* arg_1)
return;
tmp1 = MemAlloc(sizeof(struct struct_3), 8);
ov31_0238A2A0[1] = tmp1;
ov31_0238A2A0[1]->field_0x4 = 0;
ov31_0238A2A0[1]->a = arg_1;
ov31_0238A2A0[1]->b = 0;
ov31_0238A2A0[1]->c = 0;
ov31_0238A2A0.st3 = tmp1;
ov31_0238A2A0.st3->field_0x4 = 0;
ov31_0238A2A0.st3->a = arg_1;
ov31_0238A2A0.st3->b = 0;
ov31_0238A2A0.st3->c = 0;
u32 floor_type = GetFloorType();
u32 r4 = 0;
@ -291,5 +293,14 @@ void ov31_02382ED4(u32* arg_1)
r4 = 3;
}
ov31_0238A2A0[1]->d = r4;
ov31_0238A2A0.st3->d = r4;
}
void ov31_02382F68(struct Window* window)
{
u8* str = StringFromId(ov31_02389E22[ov31_0238A2A0.st3->d * 2]);
ov31_0238A2A0.str = str;
DrawTextInWindow(window, 16, 18, str);
UpdateWindow(window);
}

View File

@ -16,6 +16,8 @@ if len(sys.argv) != 3:
_, function_location, function_header = sys.argv
if function_location.endswith('.s'):
function_location = function_location[:-2]
if function_location.startswith("./asm/"):
function_location = function_location[6:]
if function_header.endswith(';'):
function_header = function_header[:-1]