mirror of
https://github.com/zeldaret/tmc
synced 2026-05-30 08:56:48 -04:00
@@ -1,101 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
ldr r4, _0801C9E0 @ =gUnk_0200AF00
|
||||
ldrb r1, [r4, #1]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0801C9B2
|
||||
bl AreaHasKeys
|
||||
cmp r0, #0
|
||||
bne _0801C9EC
|
||||
_0801C9B2:
|
||||
ldrb r0, [r4, #0x10]
|
||||
cmp r0, #0
|
||||
beq _0801CA50
|
||||
movs r0, #0
|
||||
strb r0, [r4, #0x10]
|
||||
ldr r2, _0801C9E4 @ =gUnk_020350E2
|
||||
strh r0, [r2]
|
||||
strh r0, [r2, #2]
|
||||
strh r0, [r2, #4]
|
||||
strh r0, [r2, #6]
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x40
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
strh r0, [r1]
|
||||
ldr r1, _0801C9E8 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
b _0801CA50
|
||||
.align 2, 0
|
||||
_0801C9E0: .4byte gUnk_0200AF00
|
||||
_0801C9E4: .4byte gUnk_020350E2
|
||||
_0801C9E8: .4byte gScreen
|
||||
_0801C9EC:
|
||||
ldrb r0, [r4, #0x10]
|
||||
cmp r0, #0
|
||||
bne _0801CA1E
|
||||
ldr r2, _0801CA54 @ =gUnk_020350E2
|
||||
adds r1, r2, #0
|
||||
adds r1, #0x40
|
||||
ldr r3, _0801CA58 @ =0x0000F01C
|
||||
strh r3, [r2]
|
||||
adds r0, r3, #1
|
||||
strh r0, [r2, #2]
|
||||
adds r0, r3, #2
|
||||
strh r0, [r1]
|
||||
adds r0, r3, #3
|
||||
strh r0, [r1, #2]
|
||||
adds r3, #0x5a
|
||||
strh r3, [r2, #4]
|
||||
adds r0, r3, #1
|
||||
strh r0, [r1, #4]
|
||||
adds r0, r3, #2
|
||||
strh r0, [r2, #6]
|
||||
adds r0, r3, #3
|
||||
strh r0, [r1, #6]
|
||||
ldr r1, _0801CA5C @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
_0801CA1E:
|
||||
ldr r0, _0801CA60 @ =gSave
|
||||
ldr r3, _0801CA64 @ =gArea
|
||||
ldrb r1, [r3, #3]
|
||||
ldr r5, _0801CA68 @ =0x0000045C
|
||||
adds r2, r0, r5
|
||||
adds r1, r1, r2
|
||||
ldrb r0, [r4, #0x12]
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bne _0801CA38
|
||||
ldrb r0, [r4, #0x10]
|
||||
cmp r0, #0
|
||||
bne _0801CA50
|
||||
_0801CA38:
|
||||
movs r0, #2
|
||||
strb r0, [r4, #0x10]
|
||||
ldrb r0, [r3, #3]
|
||||
adds r0, r0, r2
|
||||
ldrb r0, [r0]
|
||||
strb r0, [r4, #0x12]
|
||||
ldrb r1, [r4, #0x12]
|
||||
movs r0, #0x76
|
||||
movs r2, #0
|
||||
movs r3, #2
|
||||
bl sub_0801C5E0
|
||||
_0801CA50:
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801CA54: .4byte gUnk_020350E2
|
||||
_0801CA58: .4byte 0x0000F01C
|
||||
_0801CA5C: .4byte gScreen
|
||||
_0801CA60: .4byte gSave
|
||||
_0801CA64: .4byte gArea
|
||||
_0801CA68: .4byte 0x0000045C
|
||||
.syntax divided
|
||||
@@ -1,152 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r2, _0801C4F0 @ =gUnk_0200AF00
|
||||
ldrb r1, [r2, #1]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
adds r6, r2, #0
|
||||
cmp r0, #0
|
||||
beq _0801C4FC
|
||||
ldrb r0, [r6, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0801C4C8
|
||||
b _0801C5D0
|
||||
_0801C4C8:
|
||||
movs r0, #0
|
||||
strb r0, [r6, #0xa]
|
||||
ldr r3, _0801C4F4 @ =gUnk_02035160
|
||||
strh r0, [r3]
|
||||
strh r0, [r3, #2]
|
||||
strh r0, [r3, #4]
|
||||
strh r0, [r3, #6]
|
||||
strh r0, [r3, #8]
|
||||
adds r4, r3, #0
|
||||
adds r4, #0x40
|
||||
strh r0, [r4]
|
||||
strh r0, [r4, #2]
|
||||
strh r0, [r4, #4]
|
||||
strh r0, [r4, #6]
|
||||
strh r0, [r4, #8]
|
||||
ldr r1, _0801C4F8 @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
b _0801C5D0
|
||||
.align 2, 0
|
||||
_0801C4F0: .4byte gUnk_0200AF00
|
||||
_0801C4F4: .4byte gUnk_02035160
|
||||
_0801C4F8: .4byte gScreen
|
||||
_0801C4FC:
|
||||
ldrb r0, [r6, #0xa]
|
||||
cmp r0, #0
|
||||
bne _0801C560
|
||||
movs r0, #2
|
||||
strb r0, [r6, #0xa]
|
||||
ldr r3, _0801C54C @ =gUnk_02035160
|
||||
adds r4, r3, #0
|
||||
adds r4, #0x40
|
||||
ldr r1, _0801C550 @ =gWalletSizes
|
||||
ldr r2, _0801C554 @ =gSave
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r0, #2]
|
||||
strh r1, [r3]
|
||||
adds r0, r1, #1
|
||||
strh r0, [r3, #2]
|
||||
adds r0, r1, #2
|
||||
strh r0, [r4]
|
||||
adds r0, r1, #3
|
||||
strh r0, [r4, #2]
|
||||
ldr r1, _0801C558 @ =0x0000F070
|
||||
strh r1, [r3, #4]
|
||||
adds r0, r1, #1
|
||||
strh r0, [r4, #4]
|
||||
adds r0, r1, #2
|
||||
strh r0, [r3, #6]
|
||||
adds r0, r1, #3
|
||||
strh r0, [r4, #6]
|
||||
adds r0, r1, #4
|
||||
strh r0, [r3, #8]
|
||||
adds r0, r1, #5
|
||||
strh r0, [r4, #8]
|
||||
ldr r1, _0801C55C @ =gScreen
|
||||
movs r0, #1
|
||||
strh r0, [r1, #0xe]
|
||||
movs r4, #1
|
||||
b _0801C564
|
||||
.align 2, 0
|
||||
_0801C54C: .4byte gUnk_02035160
|
||||
_0801C550: .4byte gWalletSizes
|
||||
_0801C554: .4byte gSave
|
||||
_0801C558: .4byte 0x0000F070
|
||||
_0801C55C: .4byte gScreen
|
||||
_0801C560:
|
||||
movs r4, #0
|
||||
ldr r2, _0801C580 @ =gSave
|
||||
_0801C564:
|
||||
adds r5, r6, #0
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xc0
|
||||
ldrh r1, [r5, #0xe]
|
||||
adds r3, r1, #0
|
||||
ldrh r0, [r0]
|
||||
cmp r3, r0
|
||||
beq _0801C58A
|
||||
cmp r3, r0
|
||||
bhs _0801C584
|
||||
adds r0, r1, #1
|
||||
strh r0, [r5, #0xe]
|
||||
b _0801C588
|
||||
.align 2, 0
|
||||
_0801C580: .4byte gSave
|
||||
_0801C584:
|
||||
subs r0, r1, #1
|
||||
strh r0, [r6, #0xe]
|
||||
_0801C588:
|
||||
movs r4, #2
|
||||
_0801C58A:
|
||||
cmp r4, #1
|
||||
beq _0801C5A4
|
||||
cmp r4, #2
|
||||
bne _0801C5CC
|
||||
ldr r0, _0801C5D4 @ =gUnk_0200AF00
|
||||
ldrb r0, [r0, #0xc]
|
||||
movs r1, #3
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0801C5A4
|
||||
movs r0, #0x6f
|
||||
bl SoundReq
|
||||
_0801C5A4:
|
||||
ldr r4, _0801C5D4 @ =gUnk_0200AF00
|
||||
ldrh r3, [r4, #0xe]
|
||||
movs r2, #0
|
||||
ldr r1, _0801C5D8 @ =gWalletSizes
|
||||
ldr r0, _0801C5DC @ =gSave
|
||||
adds r0, #0xa8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #2
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, r3
|
||||
bhi _0801C5BE
|
||||
movs r2, #1
|
||||
_0801C5BE:
|
||||
movs r0, #0x70
|
||||
adds r1, r3, #0
|
||||
movs r3, #3
|
||||
bl sub_0801C5E0
|
||||
ldrb r0, [r4, #0xc]
|
||||
adds r4, r0, #1
|
||||
_0801C5CC:
|
||||
ldr r0, _0801C5D4 @ =gUnk_0200AF00
|
||||
strb r4, [r0, #0xc]
|
||||
_0801C5D0:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_0801C5D4: .4byte gUnk_0200AF00
|
||||
_0801C5D8: .4byte gWalletSizes
|
||||
_0801C5DC: .4byte gSave
|
||||
.syntax divided
|
||||
@@ -1,117 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
adds r4, r0, #0
|
||||
ldrb r1, [r4]
|
||||
movs r0, #3
|
||||
rsbs r0, r0, #0
|
||||
ands r0, r1
|
||||
strb r0, [r4]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801CC80
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0801CD90
|
||||
ldrb r0, [r4, #8]
|
||||
cmp r0, r1
|
||||
beq _0801CCE0
|
||||
strb r1, [r4, #8]
|
||||
ldr r0, _0801CD1C @ =gSpriteAnimations_322
|
||||
lsls r1, r1, #2
|
||||
adds r1, r1, r0
|
||||
ldr r1, [r1]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801CAB8
|
||||
_0801CCE0:
|
||||
ldrb r0, [r4, #1]
|
||||
movs r1, #3
|
||||
eors r0, r1
|
||||
rsbs r1, r0, #0
|
||||
orrs r1, r0
|
||||
lsrs r6, r1, #0x1f
|
||||
ldr r3, _0801CD20 @ =gUnk_0200AF13
|
||||
cmp r6, #0
|
||||
beq _0801CCF4
|
||||
adds r3, #1
|
||||
_0801CCF4:
|
||||
ldrb r0, [r4, #8]
|
||||
cmp r0, #7
|
||||
blt _0801CD60
|
||||
cmp r0, #8
|
||||
ble _0801CD28
|
||||
cmp r0, #0xa
|
||||
bgt _0801CD60
|
||||
ldr r1, _0801CD24 @ =gSave
|
||||
adds r0, r1, #0
|
||||
adds r0, #0xad
|
||||
ldrb r2, [r0]
|
||||
ldrb r0, [r3]
|
||||
adds r5, r1, #0
|
||||
cmp r0, r2
|
||||
beq _0801CD4C
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x80
|
||||
strb r0, [r3]
|
||||
b _0801CD4C
|
||||
.align 2, 0
|
||||
_0801CD1C: .4byte gSpriteAnimations_322
|
||||
_0801CD20: .4byte gUnk_0200AF13
|
||||
_0801CD24: .4byte gSave
|
||||
_0801CD28:
|
||||
ldr r5, _0801CD44 @ =gSave
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xac
|
||||
ldrb r2, [r0]
|
||||
ldrb r0, [r3]
|
||||
cmp r0, r2
|
||||
beq _0801CD3C
|
||||
adds r0, r2, #0
|
||||
adds r0, #0x80
|
||||
strb r0, [r3]
|
||||
_0801CD3C:
|
||||
ldr r1, _0801CD48 @ =gBombBagSizes
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xae
|
||||
b _0801CD52
|
||||
.align 2, 0
|
||||
_0801CD44: .4byte gSave
|
||||
_0801CD48: .4byte gBombBagSizes
|
||||
_0801CD4C:
|
||||
ldr r1, _0801CD5C @ =gQuiverSizes
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xaf
|
||||
_0801CD52:
|
||||
ldrb r0, [r0]
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
b _0801CD64
|
||||
.align 2, 0
|
||||
_0801CD5C: .4byte gQuiverSizes
|
||||
_0801CD60:
|
||||
movs r0, #1
|
||||
movs r2, #0
|
||||
_0801CD64:
|
||||
movs r1, #3
|
||||
cmp r0, r2
|
||||
bhi _0801CD6C
|
||||
movs r1, #4
|
||||
_0801CD6C:
|
||||
strb r1, [r4, #0x18]
|
||||
adds r0, r6, #0
|
||||
bl FindUIElement
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
beq _0801CD90
|
||||
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]
|
||||
adds r0, r4, #0
|
||||
bl sub_0801CAD0
|
||||
_0801CD90:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
@@ -1,39 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, lr}
|
||||
adds r4, r0, #0
|
||||
adds r0, r1, #0
|
||||
lsls r5, r4, #5
|
||||
ldr r1, _0801C330 @ =0x06010000
|
||||
adds r4, r5, r1
|
||||
movs r1, #0xa
|
||||
bl Div
|
||||
cmp r0, #9
|
||||
bls _0801C308
|
||||
movs r0, #9
|
||||
_0801C308:
|
||||
ldr r2, _0801C334 @ =0x040000D4
|
||||
lsls r0, r0, #5
|
||||
ldr r3, _0801C338 @ =gUnk_085C4620
|
||||
adds r0, r0, r3
|
||||
str r0, [r2]
|
||||
str r4, [r2, #4]
|
||||
ldr r4, _0801C33C @ =0x84000008
|
||||
str r4, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
adds r1, #0xa
|
||||
lsls r1, r1, #5
|
||||
adds r1, r1, r3
|
||||
str r1, [r2]
|
||||
ldr r1, _0801C340 @ =0x06010020
|
||||
adds r0, r5, r1
|
||||
str r0, [r2, #4]
|
||||
str r4, [r2, #8]
|
||||
ldr r0, [r2, #8]
|
||||
pop {r4, r5, pc}
|
||||
.align 2, 0
|
||||
_0801C330: .4byte 0x06010000
|
||||
_0801C334: .4byte 0x040000D4
|
||||
_0801C338: .4byte gUnk_085C4620
|
||||
_0801C33C: .4byte 0x84000008
|
||||
_0801C340: .4byte 0x06010020
|
||||
.syntax divided
|
||||
@@ -1,66 +0,0 @@
|
||||
.syntax unified
|
||||
push {r4, r5, r6, r7, lr}
|
||||
adds r4, r0, #0
|
||||
adds r5, r1, #0
|
||||
ldr r7, _0801C650 @ =gUnk_085C4B20
|
||||
cmp r2, #0
|
||||
bne _0801C5F0
|
||||
ldr r0, _0801C654 @ =0xFFFFFD80
|
||||
adds r7, r7, r0
|
||||
_0801C5F0:
|
||||
ldr r0, _0801C658 @ =0x000003FF
|
||||
ands r0, r4
|
||||
lsls r6, r0, #5
|
||||
ldr r0, _0801C65C @ =0x0600C000
|
||||
adds r4, r6, r0
|
||||
cmp r3, #2
|
||||
beq _0801C620
|
||||
cmp r3, #3
|
||||
bne _0801C63C
|
||||
adds r0, r5, #0
|
||||
movs r1, #0x64
|
||||
bl Div
|
||||
adds r5, r1, #0
|
||||
ldr r1, _0801C660 @ =0x040000D4
|
||||
lsls r0, r0, #6
|
||||
adds r0, r7, r0
|
||||
str r0, [r1]
|
||||
str r4, [r1, #4]
|
||||
ldr r0, _0801C664 @ =0x84000010
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
ldr r0, _0801C668 @ =0x0600C040
|
||||
adds r4, r6, r0
|
||||
_0801C620:
|
||||
adds r0, r5, #0
|
||||
movs r1, #0xa
|
||||
bl Div
|
||||
adds r5, r1, #0
|
||||
ldr r1, _0801C660 @ =0x040000D4
|
||||
lsls r0, r0, #6
|
||||
adds r0, r7, r0
|
||||
str r0, [r1]
|
||||
str r4, [r1, #4]
|
||||
ldr r0, _0801C664 @ =0x84000010
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
adds r4, #0x40
|
||||
_0801C63C:
|
||||
ldr r1, _0801C660 @ =0x040000D4
|
||||
lsls r0, r5, #6
|
||||
adds r0, r7, r0
|
||||
str r0, [r1]
|
||||
str r4, [r1, #4]
|
||||
ldr r0, _0801C664 @ =0x84000010
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_0801C650: .4byte gUnk_085C4B20
|
||||
_0801C654: .4byte 0xFFFFFD80
|
||||
_0801C658: .4byte 0x000003FF
|
||||
_0801C65C: .4byte 0x0600C000
|
||||
_0801C660: .4byte 0x040000D4
|
||||
_0801C664: .4byte 0x84000010
|
||||
_0801C668: .4byte 0x0600C040
|
||||
.syntax divided
|
||||
+2
-2
@@ -13367,13 +13367,13 @@
|
||||
"type": "unknown"
|
||||
},
|
||||
{
|
||||
"path": "gfx/gGfx_89_5.4bpp",
|
||||
"path": "gfx/RupeeKeyDigitsYellow.4bpp",
|
||||
"start": 6047904,
|
||||
"size": 640,
|
||||
"type": "gfx"
|
||||
},
|
||||
{
|
||||
"path": "assets/gUnk_085C4B20.bin",
|
||||
"path": "assets/RupeeKeyDigits.bin",
|
||||
"start": 6048544,
|
||||
"size": 640,
|
||||
"type": "unknown"
|
||||
|
||||
@@ -4453,11 +4453,11 @@ gGfx_88_3::
|
||||
.incbin "gfx/gGfx_88_3.4bpp"
|
||||
gUnk_085C4620::
|
||||
.incbin "assets/gUnk_085C4620.bin"
|
||||
gGfx_89_5::
|
||||
.incbin "gfx/gGfx_89_5.4bpp"
|
||||
RupeeKeyDigitsYellow::
|
||||
.incbin "gfx/RupeeKeyDigitsYellow.4bpp"
|
||||
@ gfx_unknown_18
|
||||
gUnk_085C4B20::
|
||||
.incbin "assets/gUnk_085C4B20.bin"
|
||||
RupeeKeyDigits::
|
||||
.incbin "assets/RupeeKeyDigits.bin"
|
||||
gUnk_data0_085C4DA0::
|
||||
.incbin "assets/gUnk_data0_085C4DA0.bin"
|
||||
gUnk_data1_085C4E60::
|
||||
|
||||
@@ -436,7 +436,7 @@ gGfxGroup_89::
|
||||
gfx_raw src=offset_gGfx_89_2, unknown=0x7, dest=0x6008000, size=0xe00
|
||||
gfx_raw src=offset_gGfx_89_3, unknown=0x7, dest=0x6010000, size=0x2000
|
||||
gfx_raw src=offset_gGfx_89_4, unknown=0x7, dest=0x6013000, size=0x640
|
||||
gfx_raw src=offset_gGfx_89_5, unknown=0x7, dest=0x6013c00, size=0x280
|
||||
gfx_raw src=offset_RupeeKeyDigitsYellow, unknown=0x7, dest=0x6013c00, size=0x280
|
||||
gfx_raw src=offset_gGfx_89_6, unknown=0x7, dest=0x6014000, size=0x8c0, terminator=1
|
||||
|
||||
gGfxGroup_90::
|
||||
|
||||
@@ -22,7 +22,7 @@ typedef struct {
|
||||
|
||||
typedef struct {
|
||||
substruct_160 unk_0;
|
||||
u8 unk_9[54];
|
||||
u8 unk_9[50];
|
||||
substruct_160 unk_40;
|
||||
} struct_02035160;
|
||||
extern struct_02035160 gUnk_02035160;
|
||||
@@ -60,6 +60,9 @@ typedef struct {
|
||||
|
||||
extern struct_020350E2 gUnk_020350E2;
|
||||
|
||||
extern u32 gUnk_085C4620[];
|
||||
extern Frame* gSpriteAnimations_322[];
|
||||
|
||||
typedef struct {
|
||||
u16 unk_0; // -> gOamCmd._4
|
||||
u16 unk_2; // -> gOamCmd._6
|
||||
@@ -78,14 +81,15 @@ extern const u8 gUnk_080C9044[];
|
||||
extern void (*const EzloNagUIElement_Actions[])(UIElement*);
|
||||
extern u16 gUnk_080C9058[];
|
||||
extern Frame gUnk_080C9094[];
|
||||
extern u8 RupeeKeyDigits[];
|
||||
|
||||
void sub_0801C2F0(u32, u32);
|
||||
u32 sub_0801C2F0(u32, u32);
|
||||
void DrawHearts(void);
|
||||
void DrawChargeBar(void);
|
||||
void DrawRupees(void);
|
||||
void DrawKeys(void);
|
||||
void CreateUIElement(u32, u32);
|
||||
void sub_0801C5E0(u32, u32, u32, u32);
|
||||
u32 DrawDigits(u32, u32, u32, u32);
|
||||
void sub_0801CAFC(UIElement*, u32);
|
||||
void sub_0801CB20(UIElement*, UIElementDefinition*);
|
||||
UIElement* FindUIElement(u32);
|
||||
@@ -152,7 +156,30 @@ void sub_0801C25C(void) {
|
||||
}
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/ui/sub_0801C2F0.inc", void sub_0801C2F0(u32 a, u32 b))
|
||||
u32 sub_0801C2F0(u32 param_1, u32 param_2) {
|
||||
u32 uVar1;
|
||||
register u32 rem asm("r1");
|
||||
vu32* ptr;
|
||||
param_1 = param_1 * 0x20 + 0x6010000;
|
||||
|
||||
uVar1 = Div(param_2, 10);
|
||||
if (uVar1 > 9) {
|
||||
uVar1 = 9;
|
||||
}
|
||||
ptr = ®_DMA3SAD;
|
||||
ptr[0] = (u32)(gUnk_085C4620 + uVar1 * 8);
|
||||
// DMA3DAD
|
||||
ptr[1] = param_1;
|
||||
// DMA3CNT
|
||||
ptr[2] = 0x84000008;
|
||||
ptr[2];
|
||||
ptr[0] = (u32)(gUnk_085C4620 + (rem + 10) * 8);
|
||||
// DMA3DAD
|
||||
ptr[1] = param_1 + 0x20;
|
||||
// DMA3CNT
|
||||
ptr[2] = 0x84000008;
|
||||
return ptr[2];
|
||||
}
|
||||
|
||||
void DrawUI(void) {
|
||||
gUnk_0200AF00.unk_0 &= ~gUnk_0200AF00.unk_1;
|
||||
@@ -223,11 +250,129 @@ void RecoverUI(u32 bottomPt, u32 topPt) {
|
||||
gUnk_0200AF00.unk_a = 0;
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/ui/DrawRupees.inc", void DrawRupees(void))
|
||||
void DrawRupees(void) {
|
||||
u32 cVar1;
|
||||
u32 temp;
|
||||
u32 temp2;
|
||||
substruct_160* ptr;
|
||||
substruct_160* ptr2;
|
||||
const u16* ptr3;
|
||||
struct_02035160* ptr4;
|
||||
|
||||
if ((gUnk_0200AF00.unk_1 & 0x40) != 0) {
|
||||
if (gUnk_0200AF00.unk_a != 0) {
|
||||
gUnk_0200AF00.unk_a = 0;
|
||||
ptr4 = &gUnk_02035160;
|
||||
ptr = &ptr4->unk_0;
|
||||
ptr->unk_0 = 0;
|
||||
ptr->unk_2 = 0;
|
||||
ptr->unk_4 = 0;
|
||||
ptr->unk_6 = 0;
|
||||
ptr->unk_8 = 0;
|
||||
ptr2 = &ptr4->unk_40;
|
||||
ptr2->unk_0 = 0;
|
||||
ptr2->unk_2 = 0;
|
||||
ptr2->unk_4 = 0;
|
||||
ptr2->unk_6 = 0;
|
||||
ptr2->unk_8 = 0;
|
||||
gScreen.bg0.updated = 1;
|
||||
}
|
||||
} else {
|
||||
if (gUnk_0200AF00.unk_a == 0) {
|
||||
gUnk_0200AF00.unk_a = 2;
|
||||
ptr4 = &gUnk_02035160;
|
||||
ptr2 = &ptr4->unk_40;
|
||||
ptr3 = gWalletSizes;
|
||||
ptr4->unk_0.unk_0 = temp2 = *(ptr3 + (u32)gSave.stats.walletType * 2 + 1);
|
||||
ptr4->unk_0.unk_2 = temp2 + 1;
|
||||
ptr2->unk_0 = temp2 + 2;
|
||||
ptr2->unk_2 = temp2 + 3;
|
||||
temp2 = 0xf070;
|
||||
ptr4->unk_0.unk_4 = temp2;
|
||||
ptr2->unk_4 = temp2 + 1;
|
||||
ptr4->unk_0.unk_6 = temp2 + 2;
|
||||
ptr2->unk_6 = temp2 + 3;
|
||||
ptr4->unk_0.unk_8 = temp2 + 4;
|
||||
ptr2->unk_8 = temp2 + 5;
|
||||
gScreen.bg0.updated = 1;
|
||||
cVar1 = 1;
|
||||
} else {
|
||||
cVar1 = 0;
|
||||
}
|
||||
|
||||
if (gUnk_0200AF00.rupees != gSave.stats.rupees) {
|
||||
if (gUnk_0200AF00.rupees < gSave.stats.rupees) {
|
||||
gUnk_0200AF00.rupees++;
|
||||
} else {
|
||||
gUnk_0200AF00.rupees--;
|
||||
}
|
||||
cVar1 = 2;
|
||||
}
|
||||
switch (cVar1) {
|
||||
case 2:
|
||||
temp = gUnk_0200AF00.unk_c;
|
||||
temp &= 3;
|
||||
if ((temp) == 0) {
|
||||
SoundReq(SFX_RUPEE_GET);
|
||||
}
|
||||
case 1:
|
||||
DrawDigits(0x70, gUnk_0200AF00.rupees,
|
||||
gWalletSizes[(u32)gSave.stats.walletType * 2] <= gUnk_0200AF00.rupees, 3);
|
||||
cVar1 = gUnk_0200AF00.unk_c + 1;
|
||||
default:
|
||||
gUnk_0200AF00.unk_c = cVar1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Draw icon with text for rupees or keys
|
||||
ASM_FUNC("asm/non_matching/ui/sub_0801C5E0.inc",
|
||||
void sub_0801C5E0(u32 iconVramIndex, u32 count, bool32 isTextYellow, u32 d))
|
||||
u32 DrawDigits(u32 iconVramIndex, u32 count, u32 isTextYellow, u32 digits) {
|
||||
int iVar2;
|
||||
int iVar3;
|
||||
u8* puVar4;
|
||||
u32 digit;
|
||||
vu32* ptr;
|
||||
vu32* ptr2;
|
||||
register u32 r1 asm("r1");
|
||||
|
||||
puVar4 = RupeeKeyDigits;
|
||||
if (isTextYellow == 0) {
|
||||
puVar4 -= 0x280;
|
||||
}
|
||||
iVar3 = (iconVramIndex & 0x3ff) * 0x20;
|
||||
iVar2 = iVar3 + 0x600c000;
|
||||
switch (digits) {
|
||||
case 3:
|
||||
digit = Div(count, 100);
|
||||
count = r1;
|
||||
ptr = ®_DMA3SAD;
|
||||
ptr[0] = (int)puVar4 + (int)(digit)*0x40;
|
||||
// DMA3DAD
|
||||
ptr[1] = iVar2;
|
||||
// DMA3CNT
|
||||
ptr[2] = 0x84000010;
|
||||
ptr[2];
|
||||
iVar2 = iVar3 + 0x600c040;
|
||||
case 2:
|
||||
digit = Div(count, 10);
|
||||
count = r1;
|
||||
ptr = ®_DMA3SAD;
|
||||
ptr[0] = (int)puVar4 + (int)(digit)*0x40;
|
||||
// DMA3DAD
|
||||
ptr[1] = iVar2;
|
||||
// DMA3CNT
|
||||
ptr[2] = 0x84000010;
|
||||
ptr[2];
|
||||
iVar2 += 0x40;
|
||||
}
|
||||
|
||||
ptr2 = ®_DMA3SAD;
|
||||
ptr2[0] = (int)puVar4 + count * 0x40;
|
||||
ptr2[1] = iVar2;
|
||||
ptr2[2] = 0x84000010;
|
||||
return ptr2[2];
|
||||
}
|
||||
|
||||
void sub_0801C66C(void) {
|
||||
struct_02034CF0* ptr;
|
||||
@@ -279,7 +424,49 @@ void sub_0801C824(void) {
|
||||
|
||||
ASM_FUNC("asm/non_matching/ui/DrawChargeBar.inc", void DrawChargeBar())
|
||||
|
||||
ASM_FUNC("asm/non_matching/ui/DrawKeys.inc", void DrawKeys(void))
|
||||
void DrawKeys(void) {
|
||||
s32 iVar1;
|
||||
substruct_0E2* ptr1;
|
||||
substruct_0E2* ptr2;
|
||||
u32 temp;
|
||||
|
||||
if (!(((gUnk_0200AF00.unk_1 & 0x80) == 0) && (AreaHasKeys()))) {
|
||||
if (gUnk_0200AF00.unk_10 != 0) {
|
||||
gUnk_0200AF00.unk_10 = 0;
|
||||
ptr1 = &gUnk_020350E2.unk_0[0];
|
||||
ptr1->unk_0 = 0;
|
||||
ptr1->unk_2 = 0;
|
||||
ptr1->unk_4 = 0;
|
||||
ptr1->unk_6 = 0;
|
||||
gUnk_020350E2.unk_0[1].unk_0 = 0;
|
||||
gUnk_020350E2.unk_0[1].unk_2 = 0;
|
||||
gUnk_020350E2.unk_0[1].unk_4 = 0;
|
||||
gUnk_020350E2.unk_0[1].unk_6 = 0;
|
||||
gScreen.bg0.updated = 1;
|
||||
}
|
||||
} else {
|
||||
if (gUnk_0200AF00.unk_10 == 0) {
|
||||
ptr1 = &gUnk_020350E2.unk_0[0];
|
||||
ptr2 = &gUnk_020350E2.unk_0[1];
|
||||
temp = 0xf01c;
|
||||
ptr1->unk_0 = temp;
|
||||
ptr1->unk_2 = temp + 1;
|
||||
ptr2->unk_0 = temp + 2;
|
||||
ptr2->unk_2 = temp + 3;
|
||||
temp = 0xf076;
|
||||
ptr1->unk_4 = temp;
|
||||
ptr2->unk_4 = temp + 1;
|
||||
ptr1->unk_6 = temp + 2;
|
||||
ptr2->unk_6 = temp + 3;
|
||||
gScreen.bg0.updated = 1;
|
||||
}
|
||||
if ((gUnk_0200AF00.unk_12 != gSave.unk45C[gArea.dungeon_idx]) || (gUnk_0200AF00.unk_10 == 0)) {
|
||||
gUnk_0200AF00.unk_10 = 2;
|
||||
gUnk_0200AF00.unk_12 = gSave.unk45C[gArea.dungeon_idx];
|
||||
DrawDigits(0x76, gUnk_0200AF00.unk_12, 0, 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/ui/CreateUIElement.inc", void CreateUIElement(u32 type, u32 type2))
|
||||
|
||||
@@ -351,7 +538,74 @@ u32 sub_0801CC80(UIElement* element) {
|
||||
return itemId;
|
||||
}
|
||||
|
||||
ASM_FUNC("asm/non_matching/ui/ItemUIElement.inc", void ItemUIElement())
|
||||
void ItemUIElement(UIElement* element) {
|
||||
u32 itemMaxNumber;
|
||||
u32 itemId;
|
||||
u8* puVar3;
|
||||
UIElement* element2;
|
||||
u32 uVar5;
|
||||
u32 playerItemCount;
|
||||
u8* psVar8;
|
||||
u32 uiElementType;
|
||||
|
||||
element->unk_0_1 = 0;
|
||||
itemId = sub_0801CC80(element);
|
||||
if (itemId == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (element->unk_8 != itemId) {
|
||||
element->unk_8 = itemId;
|
||||
sub_0801CAB8(element, gSpriteAnimations_322[itemId]);
|
||||
}
|
||||
|
||||
if (element->type ^ 3) {
|
||||
uiElementType = 1;
|
||||
} else {
|
||||
uiElementType = 0;
|
||||
}
|
||||
|
||||
psVar8 = &gUnk_0200AF00.unk_13;
|
||||
if (uiElementType != 0) {
|
||||
psVar8 = &gUnk_0200AF00.unk_14;
|
||||
}
|
||||
|
||||
switch ((s32)element->unk_8) {
|
||||
case 7:
|
||||
case 8:
|
||||
playerItemCount = gSave.stats.bombCount;
|
||||
if (*psVar8 != playerItemCount) {
|
||||
*psVar8 = playerItemCount + 0x80;
|
||||
}
|
||||
itemMaxNumber = gBombBagSizes[gSave.stats.bombBagType];
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
playerItemCount = gSave.stats.arrowCount;
|
||||
if (*psVar8 != playerItemCount) {
|
||||
*psVar8 = playerItemCount + 0x80;
|
||||
}
|
||||
itemMaxNumber = gQuiverSizes[gSave.stats.quiverType];
|
||||
break;
|
||||
default:
|
||||
itemMaxNumber = 1;
|
||||
playerItemCount = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
uVar5 = 3;
|
||||
if (itemMaxNumber <= playerItemCount) {
|
||||
uVar5 = 4;
|
||||
}
|
||||
element->unk_18 = uVar5;
|
||||
element2 = FindUIElement(uiElementType);
|
||||
if (element2 != 0) {
|
||||
element->x = element2->x;
|
||||
element->y = element2->y;
|
||||
element->unk_0_1 = 1;
|
||||
sub_0801CAD0(element);
|
||||
}
|
||||
}
|
||||
|
||||
void TextUIElement(UIElement* element) {
|
||||
UIElement* buttonUIElement;
|
||||
|
||||
Reference in New Issue
Block a user