summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTal Hayon <talhayon1@gmail.com>2022-03-25 13:55:05 +0300
committerTal Hayon <talhayon1@gmail.com>2022-03-25 13:55:05 +0300
commit091ec976e2e8a2b68a1d4691a8bcd4683e314a1e (patch)
treee84c7c0fcaab96ac7af81044ce3e280288d88d5c
parenta032220b1e8fe701a622f6be57e1ca1a0b6e4043 (diff)
Match 2 ui nonmatch functions
-rw-r--r--asm/non_matching/ui/TextUIElement.inc75
-rw-r--r--asm/non_matching/ui/sub_0801C25C.inc75
-rw-r--r--src/ui.c24
3 files changed, 12 insertions, 162 deletions
diff --git a/asm/non_matching/ui/TextUIElement.inc b/asm/non_matching/ui/TextUIElement.inc
deleted file mode 100644
index 2521b2e2..00000000
--- a/asm/non_matching/ui/TextUIElement.inc
+++ /dev/null
@@ -1,75 +0,0 @@
- .syntax unified
- push {r4, lr}
- adds r4, r0, #0
- ldrb r0, [r4, #2]
- ldr r1, _0801CDC0 @ =gUnk_0200AF00
- cmp r0, #9
- bne _0801CDD4
- adds r0, r1, #0
- adds r0, #0x2f
- ldrb r2, [r0]
- cmp r2, #0
- bne _0801CDCE
- ldr r0, _0801CDC4 @ =gArea
- ldrb r0, [r0, #0x18]
- cmp r0, #2
- beq _0801CDC8
- cmp r0, #3
- beq _0801CDCC
- adds r0, r1, #0
- adds r0, #0x2c
- ldrb r2, [r0]
- b _0801CDCE
- .align 2, 0
-_0801CDC0: .4byte gUnk_0200AF00
-_0801CDC4: .4byte gArea
-_0801CDC8:
- movs r2, #0xb
- b _0801CDCE
-_0801CDCC:
- movs r2, #0xa
-_0801CDCE:
- adds r0, r1, #0
- adds r0, #0x32
- strb r2, [r0]
-_0801CDD4:
- adds r0, r1, #0
- adds r0, #0x30
- ldrb r1, [r4, #3]
- adds r0, r0, r1
- ldrb r2, [r0]
- ldrb r1, [r4]
- movs r0, #3
- rsbs r0, r0, #0
- ands r0, r1
- strb r0, [r4]
- cmp r2, #0
- beq _0801CE1E
- ldr r1, _0801CE20 @ =gUnk_080C9044
- movs r0, #0x80
- lsls r0, r0, #0x12
- ldrb r0, [r0, #7]
- adds r0, r0, r1
- ldrb r0, [r0]
- adds r2, r2, r0
- adds r0, r4, #0
- adds r1, r2, #0
- bl sub_0801CAFC
- ldrb r0, [r4, #3]
- bl FindUIElement
- adds r1, r0, #0
- cmp r1, #0
- beq _0801CE1E
- ldrh r0, [r1, #0xc]
- strh r0, [r4, #0xc]
- ldrh r0, [r1, #0xe]
- strh r0, [r4, #0xe]
- ldrb r0, [r4]
- movs r1, #2
- orrs r0, r1
- strb r0, [r4]
-_0801CE1E:
- pop {r4, pc}
- .align 2, 0
-_0801CE20: .4byte gUnk_080C9044
- .syntax divided
diff --git a/asm/non_matching/ui/sub_0801C25C.inc b/asm/non_matching/ui/sub_0801C25C.inc
deleted file mode 100644
index 3dc31d7c..00000000
--- a/asm/non_matching/ui/sub_0801C25C.inc
+++ /dev/null
@@ -1,75 +0,0 @@
- .syntax unified
- push {r4, r5, r6, r7, lr}
- movs r4, #0
- ldr r5, _0801C2E4 @ =gUnk_0200AF34
- adds r6, r5, #0
- subs r6, #0x34
- movs r7, #0xd
- rsbs r7, r7, #0
- ldr r3, _0801C2E8 @ =0x040000D4
-_0801C26C:
- lsls r0, r4, #5
- adds r2, r0, r5
- ldrb r1, [r2]
- movs r0, #3
- ands r0, r1
- cmp r0, #3
- bne _0801C2A8
- lsls r0, r1, #0x1c
- lsrs r0, r0, #0x1e
- cmp r0, #1
- bne _0801C2A8
- adds r0, r7, #0
- ands r0, r1
- movs r1, #8
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r2, #0x1c]
- str r0, [r3]
- ldrh r0, [r2, #0x1a]
- lsls r0, r0, #5
- ldr r1, _0801C2EC @ =0x06010000
- adds r0, r0, r1
- str r0, [r3, #4]
- ldrb r0, [r2, #0x19]
- lsls r0, r0, #3
- movs r1, #0x84
- lsls r1, r1, #0x18
- orrs r0, r1
- str r0, [r3, #8]
- ldr r0, [r3, #8]
-_0801C2A8:
- adds r4, #1
- cmp r4, #0x17
- ble _0801C26C
- adds r2, r6, #0
- ldrb r3, [r2, #0x13]
- movs r0, #0x13
- ldrsb r0, [r2, r0]
- cmp r0, #0
- bge _0801C2C8
- movs r1, #0x7f
- ands r1, r3
- strb r1, [r2, #0x13]
- movs r0, #0x8d
- lsls r0, r0, #1
- bl sub_0801C2F0
-_0801C2C8:
- ldrb r2, [r6, #0x14]
- movs r0, #0x14
- ldrsb r0, [r6, r0]
- cmp r0, #0
- bge _0801C2E0
- movs r1, #0x7f
- ands r1, r2
- strb r1, [r6, #0x14]
- movs r0, #0x93
- lsls r0, r0, #1
- bl sub_0801C2F0
-_0801C2E0:
- pop {r4, r5, r6, r7, pc}
- .align 2, 0
-_0801C2E4: .4byte gUnk_0200AF34
-_0801C2E8: .4byte 0x040000D4
-_0801C2EC: .4byte 0x06010000
- .syntax divided
diff --git a/src/ui.c b/src/ui.c
index 8927154d..eb4407d8 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -124,7 +124,7 @@ void DrawUIElements(void) {
}
}
-NONMATCH("asm/non_matching/ui/sub_0801C25C.inc", void sub_0801C25C(void)) {
+void sub_0801C25C(void) {
u32 uVar1;
s32 index;
u8 tmp;
@@ -133,8 +133,8 @@ NONMATCH("asm/non_matching/ui/sub_0801C25C.inc", void sub_0801C25C(void)) {
for (index = 0; index < MAX_UI_ELEMENTS; index++) {
element = &gUnk_0200AF00.elements[index];
if (((element->used) == 1) && ((element->unk_0_1) == 1)) {
- // TODO wrong bitfield access here
- if (element->unk_0_2 == 1) {
+ u8 temp = element->unk_0_2;
+ if (temp == 1) {
element->unk_0_2 = 2;
DmaSet(3, element->firstTile, element->unk_1a * 0x20 + 0x6010000, element->numTiles << 3 | 0x84000000);
}
@@ -151,7 +151,6 @@ NONMATCH("asm/non_matching/ui/sub_0801C25C.inc", void sub_0801C25C(void)) {
sub_0801C2F0(0x126, tmp);
}
}
-END_NONMATCH
ASM_FUNC("asm/non_matching/ui/sub_0801C2F0.inc", void sub_0801C2F0(u32 a, u32 b))
@@ -354,7 +353,7 @@ u32 sub_0801CC80(UIElement* element) {
ASM_FUNC("asm/non_matching/ui/ItemUIElement.inc", void ItemUIElement())
-NONMATCH("asm/non_matching/ui/TextUIElement.inc", void TextUIElement(UIElement* element)) {
+void TextUIElement(UIElement* element) {
UIElement* buttonUIElement;
u32 tmp;
extern struct_0200AF00* ptr;
@@ -362,25 +361,27 @@ NONMATCH("asm/non_matching/ui/TextUIElement.inc", void TextUIElement(UIElement*
UIElement* ptr2;
if (element->type2 == 9) {
- if (gUnk_0200AF00.unk_2f == 0) {
+ tmp = gUnk_0200AF00.unk_2f;
+ if (tmp == 0) {
switch (gArea.field_0x18) {
case 2:
- tmp1 = 0xb;
+ tmp = 0xb;
break;
case 3:
- tmp1 = 0xa;
+ tmp = 0xa;
break;
default:
- tmp1 = gUnk_0200AF00.unk_2c;
+ tmp = gUnk_0200AF00.unk_2c;
break;
}
- gUnk_0200AF00.unk_32 = tmp1;
}
+ gUnk_0200AF00.unk_32 = tmp;
}
tmp = gUnk_0200AF00.unk_30[element->buttonElementId];
element->unk_0_1 = 0;
if (tmp != 0) {
- sub_0801CAFC(element, tmp + gUnk_080C9044[((SaveHeader*)0x2000000)->language]);
+ tmp += gUnk_080C9044[((SaveHeader*)0x2000000)->language];
+ sub_0801CAFC(element, tmp);
buttonUIElement = FindUIElement(element->buttonElementId);
if (buttonUIElement != NULL) {
element->x = buttonUIElement->x;
@@ -389,7 +390,6 @@ NONMATCH("asm/non_matching/ui/TextUIElement.inc", void TextUIElement(UIElement*
}
}
}
-END_NONMATCH
UIElement* FindUIElement(u32 type) {
UIElement* element;