mirror of https://github.com/zeldaret/tmc.git
Match 2 ui nonmatch functions
This commit is contained in:
parent
a032220b1e
commit
091ec976e2
|
|
@ -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
|
||||
|
|
@ -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
|
||||
24
src/ui.c
24
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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue