finished buy_menu_helpers
This commit is contained in:
@@ -1,220 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start sub_813F66C
|
|
||||||
sub_813F66C: @ 813F66C
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
cmp r4, 0x1
|
|
||||||
beq _0813F680
|
|
||||||
ldr r0, _0813F67C @ =gUnknown_8464804
|
|
||||||
bl InitWindows
|
|
||||||
b _0813F686
|
|
||||||
.align 2, 0
|
|
||||||
_0813F67C: .4byte gUnknown_8464804
|
|
||||||
_0813F680:
|
|
||||||
ldr r0, _0813F6CC @ =gUnknown_846483C
|
|
||||||
bl InitWindows
|
|
||||||
_0813F686:
|
|
||||||
bl DeactivateAllTextPrinters
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x1
|
|
||||||
movs r2, 0xD0
|
|
||||||
bl TextWindow_SetUserSelectedFrame
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0x13
|
|
||||||
movs r2, 0xE0
|
|
||||||
bl TextWindow_LoadResourcesStdFrame0
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0xA
|
|
||||||
movs r2, 0xF0
|
|
||||||
bl TextWindow_SetStdFrame0_WithPal
|
|
||||||
movs r0, 0
|
|
||||||
bl PutWindowTilemap
|
|
||||||
movs r0, 0x4
|
|
||||||
bl PutWindowTilemap
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PutWindowTilemap
|
|
||||||
cmp r4, 0x1
|
|
||||||
bne _0813F6C4
|
|
||||||
movs r0, 0x6
|
|
||||||
bl PutWindowTilemap
|
|
||||||
_0813F6C4:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813F6CC: .4byte gUnknown_846483C
|
|
||||||
thumb_func_end sub_813F66C
|
|
||||||
|
|
||||||
thumb_func_start sub_813F6D0
|
|
||||||
sub_813F6D0: @ 813F6D0
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _0813F6F0 @ =gSaveBlock1Ptr
|
|
||||||
ldr r0, [r0]
|
|
||||||
movs r1, 0xA4
|
|
||||||
lsls r1, 2
|
|
||||||
adds r0, r1
|
|
||||||
bl GetMoney
|
|
||||||
adds r3, r0, 0
|
|
||||||
movs r0, 0
|
|
||||||
movs r1, 0xA
|
|
||||||
movs r2, 0xF
|
|
||||||
bl PrintMoneyAmountInMoneyBoxWithBorder
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813F6F0: .4byte gSaveBlock1Ptr
|
|
||||||
thumb_func_end sub_813F6D0
|
|
||||||
|
|
||||||
thumb_func_start sub_813F6F4
|
|
||||||
sub_813F6F4: @ 813F6F4
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r9
|
|
||||||
mov r6, r8
|
|
||||||
push {r6,r7}
|
|
||||||
sub sp, 0x14
|
|
||||||
mov r9, r3
|
|
||||||
ldr r3, [sp, 0x30]
|
|
||||||
ldr r4, [sp, 0x34]
|
|
||||||
ldr r6, [sp, 0x38]
|
|
||||||
ldr r5, [sp, 0x3C]
|
|
||||||
mov r8, r5
|
|
||||||
ldr r5, [sp, 0x40]
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
mov r7, r9
|
|
||||||
lsls r7, 24
|
|
||||||
lsrs r7, 24
|
|
||||||
mov r9, r7
|
|
||||||
lsls r3, 24
|
|
||||||
lsrs r3, 24
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
lsls r6, 24
|
|
||||||
lsrs r6, 24
|
|
||||||
lsls r5, 24
|
|
||||||
lsrs r5, 24
|
|
||||||
str r4, [sp]
|
|
||||||
str r6, [sp, 0x4]
|
|
||||||
lsls r4, r5, 1
|
|
||||||
adds r4, r5
|
|
||||||
ldr r5, _0813F758 @ =gUnknown_8464884
|
|
||||||
adds r4, r5
|
|
||||||
str r4, [sp, 0x8]
|
|
||||||
mov r4, r8
|
|
||||||
lsls r4, 24
|
|
||||||
asrs r4, 24
|
|
||||||
str r4, [sp, 0xC]
|
|
||||||
str r2, [sp, 0x10]
|
|
||||||
mov r2, r9
|
|
||||||
bl AddTextPrinterParameterized4
|
|
||||||
add sp, 0x14
|
|
||||||
pop {r3,r4}
|
|
||||||
mov r8, r3
|
|
||||||
mov r9, r4
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813F758: .4byte gUnknown_8464884
|
|
||||||
thumb_func_end sub_813F6F4
|
|
||||||
|
|
||||||
thumb_func_start sub_813F75C
|
|
||||||
sub_813F75C: @ 813F75C
|
|
||||||
push {r4-r6,lr}
|
|
||||||
mov r6, r8
|
|
||||||
push {r6}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r5, r0, 0
|
|
||||||
adds r6, r1, 0
|
|
||||||
mov r8, r2
|
|
||||||
lsls r5, 24
|
|
||||||
lsrs r5, 24
|
|
||||||
bl sub_809B56C
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
bl GetTextSpeedSetting
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
str r4, [sp]
|
|
||||||
str r0, [sp, 0x4]
|
|
||||||
str r6, [sp, 0x8]
|
|
||||||
mov r0, r8
|
|
||||||
str r0, [sp, 0xC]
|
|
||||||
adds r0, r5, 0
|
|
||||||
movs r1, 0x2
|
|
||||||
movs r2, 0x13
|
|
||||||
movs r3, 0xE
|
|
||||||
bl DisplayMessageAndContinueTask
|
|
||||||
movs r0, 0
|
|
||||||
bl ScheduleBgCopyTilemapToVram
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_813F75C
|
|
||||||
|
|
||||||
thumb_func_start sub_813F7A8
|
|
||||||
sub_813F7A8: @ 813F7A8
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
movs r2, 0x1
|
|
||||||
movs r3, 0xD
|
|
||||||
bl SetWindowBorderStyle
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_813F7A8
|
|
||||||
|
|
||||||
thumb_func_start sub_813F7C0
|
|
||||||
sub_813F7C0: @ 813F7C0
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r1, 24
|
|
||||||
movs r2, 0xA
|
|
||||||
movs r3, 0xF
|
|
||||||
bl SetWindowBorderStyle
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_813F7C0
|
|
||||||
|
|
||||||
thumb_func_start sub_813F7D8
|
|
||||||
sub_813F7D8: @ 813F7D8
|
|
||||||
push {lr}
|
|
||||||
sub sp, 0x10
|
|
||||||
adds r3, r1, 0
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
ldr r1, _0813F800 @ =gUnknown_846487C
|
|
||||||
movs r2, 0x2
|
|
||||||
str r2, [sp]
|
|
||||||
movs r2, 0x1
|
|
||||||
str r2, [sp, 0x4]
|
|
||||||
movs r2, 0xD
|
|
||||||
str r2, [sp, 0x8]
|
|
||||||
str r3, [sp, 0xC]
|
|
||||||
movs r2, 0x2
|
|
||||||
movs r3, 0
|
|
||||||
bl CreateYesNoMenuWithCallbacks
|
|
||||||
add sp, 0x10
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813F800: .4byte gUnknown_846487C
|
|
||||||
thumb_func_end sub_813F7D8
|
|
||||||
|
|
||||||
.align 2, 0 @ Don't pad with nop.
|
|
||||||
+20
-20
@@ -572,7 +572,7 @@ _0809AEAC:
|
|||||||
ldrb r0, [r0, 0x16]
|
ldrb r0, [r0, 0x16]
|
||||||
lsls r0, 28
|
lsls r0, 28
|
||||||
lsrs r0, 28
|
lsrs r0, 28
|
||||||
bl sub_813F66C
|
bl BuyMenuInitWindows
|
||||||
bl sub_809B080
|
bl sub_809B080
|
||||||
b _0809AF5E
|
b _0809AF5E
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
@@ -819,7 +819,7 @@ sub_809B15C: @ 809B15C
|
|||||||
push {lr}
|
push {lr}
|
||||||
bl sub_809B764
|
bl sub_809B764
|
||||||
bl sub_809BAFC
|
bl sub_809BAFC
|
||||||
bl sub_813F6D0
|
bl BuyMenuDrawMoneyBox
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
bl ScheduleBgCopyTilemapToVram
|
bl ScheduleBgCopyTilemapToVram
|
||||||
movs r0, 0x1
|
movs r0, 0x1
|
||||||
@@ -1116,7 +1116,7 @@ _0809B398:
|
|||||||
movs r1, 0x2
|
movs r1, 0x2
|
||||||
adds r2, r7, 0
|
adds r2, r7, 0
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
b _0809B400
|
b _0809B400
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0809B3D0: .4byte 0x00000177
|
_0809B3D0: .4byte 0x00000177
|
||||||
@@ -1138,7 +1138,7 @@ _0809B3D8:
|
|||||||
movs r1, 0x2
|
movs r1, 0x2
|
||||||
adds r2, r7, 0
|
adds r2, r7, 0
|
||||||
movs r3, 0x2
|
movs r3, 0x2
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
_0809B400:
|
_0809B400:
|
||||||
add sp, 0x14
|
add sp, 0x14
|
||||||
pop {r4-r7}
|
pop {r4-r7}
|
||||||
@@ -1204,7 +1204,7 @@ _0809B45C:
|
|||||||
adds r0, r6, 0
|
adds r0, r6, 0
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
movs r3, 0x69
|
movs r3, 0x69
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
_0809B480:
|
_0809B480:
|
||||||
add sp, 0x14
|
add sp, 0x14
|
||||||
pop {r4-r6}
|
pop {r4-r6}
|
||||||
@@ -1251,7 +1251,7 @@ sub_809B494: @ 809B494
|
|||||||
movs r1, 0
|
movs r1, 0
|
||||||
adds r2, r5, 0
|
adds r2, r5, 0
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
lsls r0, r7, 16
|
lsls r0, r7, 16
|
||||||
lsrs r0, 16
|
lsrs r0, 16
|
||||||
bl ItemIdToBattleMoveId
|
bl ItemIdToBattleMoveId
|
||||||
@@ -1273,7 +1273,7 @@ sub_809B494: @ 809B494
|
|||||||
movs r1, 0x2
|
movs r1, 0x2
|
||||||
adds r2, r5, 0
|
adds r2, r5, 0
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
b _0809B55C
|
b _0809B55C
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0809B514: .4byte gStringVar1
|
_0809B514: .4byte gStringVar1
|
||||||
@@ -1294,7 +1294,7 @@ _0809B528:
|
|||||||
movs r0, 0x6
|
movs r0, 0x6
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
ldr r2, _0809B568 @ =gUnknown_8416217
|
ldr r2, _0809B568 @ =gUnknown_8416217
|
||||||
movs r0, 0x10
|
movs r0, 0x10
|
||||||
str r0, [sp]
|
str r0, [sp]
|
||||||
@@ -1305,7 +1305,7 @@ _0809B528:
|
|||||||
movs r0, 0x6
|
movs r0, 0x6
|
||||||
movs r1, 0x2
|
movs r1, 0x2
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
_0809B55C:
|
_0809B55C:
|
||||||
add sp, 0x14
|
add sp, 0x14
|
||||||
pop {r4-r7}
|
pop {r4-r7}
|
||||||
@@ -1388,7 +1388,7 @@ _0809B5E0:
|
|||||||
movs r0, 0x4
|
movs r0, 0x4
|
||||||
movs r1, 0x2
|
movs r1, 0x2
|
||||||
movs r3, 0x1
|
movs r3, 0x1
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
_0809B5F8:
|
_0809B5F8:
|
||||||
add sp, 0x14
|
add sp, 0x14
|
||||||
pop {r4,r5}
|
pop {r4,r5}
|
||||||
@@ -2134,7 +2134,7 @@ sub_809BB44: @ 809BB44
|
|||||||
movs r1, 0
|
movs r1, 0
|
||||||
adds r2, r4, 0
|
adds r2, r4, 0
|
||||||
movs r3, 0x2
|
movs r3, 0x2
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
add sp, 0x14
|
add sp, 0x14
|
||||||
pop {r4}
|
pop {r4}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
@@ -2223,7 +2223,7 @@ _0809BC1A:
|
|||||||
ldr r1, _0809BC74 @ =gUnknown_8416842
|
ldr r1, _0809BC74 @ =gUnknown_8416842
|
||||||
ldr r2, _0809BC78 @ =sub_809BF98
|
ldr r2, _0809BC78 @ =sub_809BF98
|
||||||
adds r0, r6, 0
|
adds r0, r6, 0
|
||||||
bl sub_813F75C
|
bl BuyMenuDisplayMessage
|
||||||
b _0809BC8E
|
b _0809BC8E
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0809BC70: .4byte gSaveBlock1Ptr
|
_0809BC70: .4byte gSaveBlock1Ptr
|
||||||
@@ -2236,7 +2236,7 @@ _0809BC7C:
|
|||||||
ldr r1, _0809BC98 @ =gUnknown_8416766
|
ldr r1, _0809BC98 @ =gUnknown_8416766
|
||||||
ldr r2, _0809BC9C @ =sub_809BCA0
|
ldr r2, _0809BC9C @ =sub_809BCA0
|
||||||
adds r0, r6, 0
|
adds r0, r6, 0
|
||||||
bl sub_813F75C
|
bl BuyMenuDisplayMessage
|
||||||
_0809BC8E:
|
_0809BC8E:
|
||||||
pop {r4-r7}
|
pop {r4-r7}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
@@ -2265,7 +2265,7 @@ sub_809BCA0: @ 809BCA0
|
|||||||
lsrs r4, 16
|
lsrs r4, 16
|
||||||
movs r0, 0x1
|
movs r0, 0x1
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl sub_813F7C0
|
bl BuyMenuQuantityBoxThinBorder
|
||||||
ldr r0, _0809BD44 @ =gStringVar1
|
ldr r0, _0809BD44 @ =gStringVar1
|
||||||
adds r1, r4, 0
|
adds r1, r4, 0
|
||||||
movs r2, 0x1
|
movs r2, 0x1
|
||||||
@@ -2287,11 +2287,11 @@ sub_809BCA0: @ 809BCA0
|
|||||||
movs r1, 0x2
|
movs r1, 0x2
|
||||||
adds r2, r6, 0
|
adds r2, r6, 0
|
||||||
movs r3, 0
|
movs r3, 0
|
||||||
bl sub_813F6F4
|
bl BuyMenuPrint
|
||||||
strh r4, [r5, 0x2]
|
strh r4, [r5, 0x2]
|
||||||
movs r0, 0x3
|
movs r0, 0x3
|
||||||
movs r1, 0
|
movs r1, 0
|
||||||
bl sub_813F7A8
|
bl BuyMenuQuantityBoxNormalBorder
|
||||||
adds r0, r7, 0
|
adds r0, r7, 0
|
||||||
bl sub_809BB44
|
bl sub_809BB44
|
||||||
movs r0, 0
|
movs r0, 0
|
||||||
@@ -2423,7 +2423,7 @@ _0809BDD4:
|
|||||||
ldr r1, _0809BE4C @ =gUnknown_841678E
|
ldr r1, _0809BE4C @ =gUnknown_841678E
|
||||||
ldr r2, _0809BE50 @ =sub_809BE90
|
ldr r2, _0809BE50 @ =sub_809BE90
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
bl sub_813F75C
|
bl BuyMenuDisplayMessage
|
||||||
b _0809BE88
|
b _0809BE88
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0809BE3C: .4byte gMain
|
_0809BE3C: .4byte gMain
|
||||||
@@ -2464,7 +2464,7 @@ sub_809BE90: @ 809BE90
|
|||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r0, 24
|
lsrs r0, 24
|
||||||
ldr r1, _0809BEA0 @ =gUnknown_83DF0B4
|
ldr r1, _0809BEA0 @ =gUnknown_83DF0B4
|
||||||
bl sub_813F7D8
|
bl BuyMenuConfirmPurchase
|
||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
@@ -2493,7 +2493,7 @@ sub_809BEA4: @ 809BEA4
|
|||||||
ldr r1, _0809BEEC @ =gUnknown_84167E7
|
ldr r1, _0809BEEC @ =gUnknown_84167E7
|
||||||
ldr r2, _0809BEF0 @ =sub_809BF0C
|
ldr r2, _0809BEF0 @ =sub_809BF0C
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
bl sub_813F75C
|
bl BuyMenuDisplayMessage
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
bl nullsub_52
|
bl nullsub_52
|
||||||
ldrh r0, [r4, 0xA]
|
ldrh r0, [r4, 0xA]
|
||||||
@@ -2509,7 +2509,7 @@ _0809BEF4:
|
|||||||
ldr r1, _0809BF04 @ =gUnknown_8416861
|
ldr r1, _0809BF04 @ =gUnknown_8416861
|
||||||
ldr r2, _0809BF08 @ =sub_809BF98
|
ldr r2, _0809BF08 @ =sub_809BF98
|
||||||
adds r0, r5, 0
|
adds r0, r5, 0
|
||||||
bl sub_813F75C
|
bl BuyMenuDisplayMessage
|
||||||
_0809BEFE:
|
_0809BEFE:
|
||||||
pop {r4,r5}
|
pop {r4,r5}
|
||||||
pop {r0}
|
pop {r0}
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
.section .rodata
|
|
||||||
.align 2
|
|
||||||
|
|
||||||
gUnknown_8464804:: @ 8464804
|
|
||||||
.incbin "baserom.gba", 0x464804, 0x38
|
|
||||||
|
|
||||||
gUnknown_846483C:: @ 846483C
|
|
||||||
.incbin "baserom.gba", 0x46483C, 0x40
|
|
||||||
|
|
||||||
gUnknown_846487C:: @ 846487C
|
|
||||||
.incbin "baserom.gba", 0x46487C, 0x8
|
|
||||||
|
|
||||||
gUnknown_8464884:: @ 8464884
|
|
||||||
.incbin "baserom.gba", 0x464884, 0xC
|
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
#define GUARD_SHOP_H
|
#define GUARD_SHOP_H
|
||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
#include "menu_helpers.h"
|
||||||
|
|
||||||
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
|
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
|
||||||
|
|
||||||
@@ -9,5 +10,15 @@ void CreatePokemartMenu(const u16 *);
|
|||||||
void CreateDecorationShop1Menu(const u16 *);
|
void CreateDecorationShop1Menu(const u16 *);
|
||||||
void CreateDecorationShop2Menu(const u16 *);
|
void CreateDecorationShop2Menu(const u16 *);
|
||||||
void sub_809C09C(u16, u16, u8);
|
void sub_809C09C(u16, u16, u8);
|
||||||
|
u8 sub_809B56C(void);
|
||||||
|
|
||||||
|
// buy_menu_helper
|
||||||
|
void BuyMenuInitWindows(bool32 isSellingTM);
|
||||||
|
void BuyMenuDrawMoneyBox(void);
|
||||||
|
void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 color);
|
||||||
|
void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback);
|
||||||
|
void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram);
|
||||||
|
void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram);
|
||||||
|
void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo);
|
||||||
|
|
||||||
#endif // GUARD_SHOP_H
|
#endif // GUARD_SHOP_H
|
||||||
|
|||||||
+2
-2
@@ -254,7 +254,7 @@ SECTIONS {
|
|||||||
asm/unk_text_util.o(.text);
|
asm/unk_text_util.o(.text);
|
||||||
asm/berry_pouch.o(.text);
|
asm/berry_pouch.o(.text);
|
||||||
asm/itemfinder.o(.text);
|
asm/itemfinder.o(.text);
|
||||||
asm/buy_menu_helpers.o(.text);
|
src/buy_menu_helpers.o(.text);
|
||||||
asm/slot_machine.o(.text);
|
asm/slot_machine.o(.text);
|
||||||
src/roamer.o(.text);
|
src/roamer.o(.text);
|
||||||
src/mystery_gift_menu.o(.text);
|
src/mystery_gift_menu.o(.text);
|
||||||
@@ -445,7 +445,7 @@ SECTIONS {
|
|||||||
data/unk_text_util.o(.rodata);
|
data/unk_text_util.o(.rodata);
|
||||||
data/berry_pouch.o(.rodata);
|
data/berry_pouch.o(.rodata);
|
||||||
data/itemfinder.o(.rodata);
|
data/itemfinder.o(.rodata);
|
||||||
data/buy_menu_helpers.o(.rodata);
|
src/buy_menu_helpers.o(.rodata);
|
||||||
data/slot_machine.o(.rodata);
|
data/slot_machine.o(.rodata);
|
||||||
src/roamer.o(.rodata);
|
src/roamer.o(.rodata);
|
||||||
src/mystery_gift_menu.o(.rodata);
|
src/mystery_gift_menu.o(.rodata);
|
||||||
|
|||||||
@@ -0,0 +1,216 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "task.h"
|
||||||
|
#include "text.h"
|
||||||
|
#include "window.h"
|
||||||
|
#include "text_window.h"
|
||||||
|
#include "money.h"
|
||||||
|
#include "menu_helpers.h"
|
||||||
|
#include "new_menu_helpers.h"
|
||||||
|
#include "menu.h"
|
||||||
|
#include "shop.h"
|
||||||
|
|
||||||
|
static const struct WindowTemplate sShopBuyMenuWindowTemplatesNormal[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x1,
|
||||||
|
.tilemapTop = 0x1,
|
||||||
|
.width = 0x8,
|
||||||
|
.height = 0x3,
|
||||||
|
.paletteNum = 0xF,
|
||||||
|
.baseBlock = 0x27,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x1,
|
||||||
|
.tilemapTop = 0xB,
|
||||||
|
.width = 0xD,
|
||||||
|
.height = 0x2,
|
||||||
|
.paletteNum = 0xF,
|
||||||
|
.baseBlock = 0x3F,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x2,
|
||||||
|
.tilemapTop = 0xF,
|
||||||
|
.width = 0x1A,
|
||||||
|
.height = 0x4,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0x59,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x11,
|
||||||
|
.tilemapTop = 0x9,
|
||||||
|
.width = 0xC,
|
||||||
|
.height = 0x4,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0xC1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0xB,
|
||||||
|
.tilemapTop = 0x1,
|
||||||
|
.width = 0x11,
|
||||||
|
.height = 0xC,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0xF1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x5,
|
||||||
|
.tilemapTop = 0xE,
|
||||||
|
.width = 0x19,
|
||||||
|
.height = 0x6,
|
||||||
|
.paletteNum = 0xF,
|
||||||
|
.baseBlock = 0x1BD,
|
||||||
|
},
|
||||||
|
DUMMY_WIN_TEMPLATE,
|
||||||
|
};
|
||||||
|
|
||||||
|
// firered uses different layout when selling TMs
|
||||||
|
static const struct WindowTemplate sShopBuyMenuWindowTemplatesTM[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x1,
|
||||||
|
.tilemapTop = 0x1,
|
||||||
|
.width = 0x8,
|
||||||
|
.height = 0x3,
|
||||||
|
.paletteNum = 0xF,
|
||||||
|
.baseBlock = 0x27,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x1,
|
||||||
|
.tilemapTop = 0xB,
|
||||||
|
.width = 0xD,
|
||||||
|
.height = 0x2,
|
||||||
|
.paletteNum = 0xF,
|
||||||
|
.baseBlock = 0x3F,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x2,
|
||||||
|
.tilemapTop = 0xF,
|
||||||
|
.width = 0x1A,
|
||||||
|
.height = 0x4,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0x59,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x11,
|
||||||
|
.tilemapTop = 0x9,
|
||||||
|
.width = 0xC,
|
||||||
|
.height = 0x4,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0xC1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0xB,
|
||||||
|
.tilemapTop = 0x1,
|
||||||
|
.width = 0x11,
|
||||||
|
.height = 0xA,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0xF1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0xC,
|
||||||
|
.tilemapTop = 0xC,
|
||||||
|
.width = 0x12,
|
||||||
|
.height = 0x8,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0x19B,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x1,
|
||||||
|
.tilemapTop = 0xE,
|
||||||
|
.width = 0xA,
|
||||||
|
.height = 0x4,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0x22B,
|
||||||
|
},
|
||||||
|
DUMMY_WIN_TEMPLATE,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct WindowTemplate sShopBuyMenuYesNoWindowTemplate =
|
||||||
|
{
|
||||||
|
.bg = 0x0,
|
||||||
|
.tilemapLeft = 0x15,
|
||||||
|
.tilemapTop = 0x9,
|
||||||
|
.width = 0x6,
|
||||||
|
.height = 0x4,
|
||||||
|
.paletteNum = 0xE,
|
||||||
|
.baseBlock = 0xC1,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct TextColor sShopBuyMenuTextColors[] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.fgColor = 0,
|
||||||
|
.bgColor = 1,
|
||||||
|
.shadowColor = 2,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.fgColor = 0,
|
||||||
|
.bgColor = 2,
|
||||||
|
.shadowColor = 3,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.fgColor = 0,
|
||||||
|
.bgColor = 3,
|
||||||
|
.shadowColor = 2,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
void BuyMenuInitWindows(bool32 isSellingTM)
|
||||||
|
{
|
||||||
|
if (isSellingTM != TRUE)
|
||||||
|
InitWindows(sShopBuyMenuWindowTemplatesNormal);
|
||||||
|
else
|
||||||
|
InitWindows(sShopBuyMenuWindowTemplatesTM);
|
||||||
|
DeactivateAllTextPrinters();
|
||||||
|
TextWindow_SetUserSelectedFrame(0, 0x1, 0xD0);
|
||||||
|
TextWindow_LoadResourcesStdFrame0(0, 0x13, 0xE0);
|
||||||
|
TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xF0);
|
||||||
|
PutWindowTilemap(0);
|
||||||
|
PutWindowTilemap(4);
|
||||||
|
PutWindowTilemap(5);
|
||||||
|
if (isSellingTM == TRUE)
|
||||||
|
PutWindowTilemap(6);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuyMenuDrawMoneyBox(void)
|
||||||
|
{
|
||||||
|
PrintMoneyAmountInMoneyBoxWithBorder(0, 0xA, 0xF, GetMoney(&gSaveBlock1Ptr->money));
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 color)
|
||||||
|
{
|
||||||
|
AddTextPrinterParameterized4(windowId, font, x, y, letterSpacing, lineSpacing, &sShopBuyMenuTextColors[color], speed, text);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback)
|
||||||
|
{
|
||||||
|
DisplayMessageAndContinueTask(taskId, 2, 0x13, 0xE, sub_809B56C(), GetTextSpeedSetting(), text, callback);
|
||||||
|
ScheduleBgCopyTilemapToVram(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram)
|
||||||
|
{
|
||||||
|
SetWindowBorderStyle(windowId, copyToVram, 0x1, 0xD);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram)
|
||||||
|
{
|
||||||
|
SetWindowBorderStyle(windowId, copyToVram, 0xA, 0xF);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo)
|
||||||
|
{
|
||||||
|
CreateYesNoMenuWithCallbacks(taskId, &sShopBuyMenuYesNoWindowTemplate, 2, 0, 2, 1, 0xD, yesNo);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user