diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s deleted file mode 100644 index 9e4e6b4a87..0000000000 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E48.s +++ /dev/null @@ -1,18 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80147E48 -/* DE548 80147E48 3C028016 */ lui $v0, %hi(gUIPanels) -/* DE54C 80147E4C 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) -/* DE550 80147E50 00042140 */ sll $a0, $a0, 5 -/* DE554 80147E54 00822021 */ addu $a0, $a0, $v0 -/* DE558 80147E58 90830000 */ lbu $v1, ($a0) -/* DE55C 80147E5C 30620001 */ andi $v0, $v1, 1 -/* DE560 80147E60 10400004 */ beqz $v0, .L80147E74 -/* DE564 80147E64 3462000A */ ori $v0, $v1, 0xa -/* DE568 80147E68 A0820000 */ sb $v0, ($a0) -/* DE56C 80147E6C AC860008 */ sw $a2, 8($a0) -/* DE570 80147E70 A0850002 */ sb $a1, 2($a0) -.L80147E74: -/* DE574 80147E74 03E00008 */ jr $ra -/* DE578 80147E78 00000000 */ nop diff --git a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s b/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s deleted file mode 100644 index 642f9a9643..0000000000 --- a/asm/nonmatchings/code_ddaf0_len_c50/func_80147E7C.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80147E7C -/* DE57C 80147E7C 3C028016 */ lui $v0, %hi(gUIPanels) -/* DE580 80147E80 24429D50 */ addiu $v0, $v0, %lo(gUIPanels) -/* DE584 80147E84 00042140 */ sll $a0, $a0, 5 -/* DE588 80147E88 00822021 */ addu $a0, $a0, $v0 -/* DE58C 80147E8C 90830000 */ lbu $v1, ($a0) -/* DE590 80147E90 30620001 */ andi $v0, $v1, 1 -/* DE594 80147E94 10400009 */ beqz $v0, .L80147EBC -/* DE598 80147E98 00000000 */ nop -/* DE59C 80147E9C 8C820004 */ lw $v0, 4($a0) -/* DE5A0 80147EA0 14A20004 */ bne $a1, $v0, .L80147EB4 -/* DE5A4 80147EA4 3462000A */ ori $v0, $v1, 0xa -/* DE5A8 80147EA8 306200FD */ andi $v0, $v1, 0xfd -/* DE5AC 80147EAC 03E00008 */ jr $ra -/* DE5B0 80147EB0 A0820000 */ sb $v0, ($a0) -.L80147EB4: -/* DE5B4 80147EB4 A0820000 */ sb $v0, ($a0) -/* DE5B8 80147EB8 AC850008 */ sw $a1, 8($a0) -.L80147EBC: -/* DE5BC 80147EBC 03E00008 */ jr $ra -/* DE5C0 80147EC0 00000000 */ nop diff --git a/include/common_structs.h b/include/common_structs.h index 35167741b6..09e67e3585 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1554,7 +1554,7 @@ typedef struct { typedef struct { /* 0x00 */ s8 flags; /* 0x01 */ char unk_01; - /* 0x02 */ char unk_02; // related to heirarchy somehow - sibling? group? + /* 0x02 */ s8 unk_02; // related to heirarchy somehow - sibling? group? /* 0x03 */ s8 parent; // ? /* 0x04 */ s32 unk_04; /* 0x08 */ UNK_PTR unk_08; diff --git a/src/code_ddaf0_len_c50.c b/src/code_ddaf0_len_c50.c index 8d7629b561..36f7a8ee95 100644 --- a/src/code_ddaf0_len_c50.c +++ b/src/code_ddaf0_len_c50.c @@ -26,9 +26,28 @@ INCLUDE_ASM(s32, "code_ddaf0_len_c50", set_ui_panel_properties); INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147D70); -INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147E48); +void func_80147E48(s32 panelIndex, s8 arg1, s32 arg2) { + UIPanel* panels = gUIPanels; -INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147E7C); + if (panels[panelIndex].flags & 1) { + panels[panelIndex].flags |= 0xA; + panels[panelIndex].unk_08 = arg2; + panels[panelIndex].unk_02 = arg1; + } +} + +void func_80147E7C(s32 panelIndex, s32 arg1) { + UIPanel* panels = gUIPanels; + + if (panels[panelIndex].flags & 1) { + if (arg1 == panels[panelIndex].unk_04) { + panels[panelIndex].flags &= ~0x2; + } else { + panels[panelIndex].flags |= 0xA; + panels[panelIndex].unk_08 = arg1; + } + } +} INCLUDE_ASM(s32, "code_ddaf0_len_c50", func_80147EC4);