2018-06-24 07:09:41 -07:00
|
|
|
BuenasPassword:
|
2015-10-16 10:35:43 -07:00
|
|
|
xor a
|
2015-12-18 17:07:09 -08:00
|
|
|
ld [wWhichIndexSet], a
|
2018-01-23 13:08:43 -08:00
|
|
|
ld hl, .MenuHeader
|
|
|
|
call CopyMenuHeader
|
2015-10-24 07:34:19 -07:00
|
|
|
ld a, [wBuenasPassword]
|
2015-10-16 10:35:43 -07:00
|
|
|
ld c, a
|
2017-12-24 09:47:30 -08:00
|
|
|
farcall GetBuenasPassword
|
2015-10-24 07:34:19 -07:00
|
|
|
ld a, [wMenuBorderLeftCoord]
|
2015-10-16 10:35:43 -07:00
|
|
|
add c
|
|
|
|
add $2
|
2015-10-24 07:34:19 -07:00
|
|
|
ld [wMenuBorderRightCoord], a
|
2015-12-22 19:19:33 -08:00
|
|
|
call PushWindow
|
2015-11-16 18:46:36 -08:00
|
|
|
call DoNthMenu ; menu
|
2017-12-24 09:47:30 -08:00
|
|
|
farcall Buena_ExitMenu
|
2015-10-16 10:35:43 -07:00
|
|
|
ld b, $0
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wMenuSelection]
|
2015-10-16 10:35:43 -07:00
|
|
|
ld c, a
|
2015-10-24 07:34:19 -07:00
|
|
|
ld a, [wBuenasPassword]
|
2018-01-16 14:27:50 -08:00
|
|
|
maskbits NUM_PASSWORDS_PER_CATEGORY
|
2015-10-16 10:35:43 -07:00
|
|
|
cp c
|
2015-11-01 09:44:30 -08:00
|
|
|
jr nz, .wrong
|
2015-10-16 10:35:43 -07:00
|
|
|
ld b, $1
|
|
|
|
|
2015-11-01 09:44:30 -08:00
|
|
|
.wrong
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, b
|
2018-01-23 14:39:09 -08:00
|
|
|
ld [wScriptVar], a
|
2015-10-16 10:35:43 -07:00
|
|
|
ret
|
|
|
|
|
2018-06-24 17:10:37 -07:00
|
|
|
.MenuHeader:
|
2018-01-14 02:59:56 -08:00
|
|
|
db MENU_BACKUP_TILES ; flags
|
2018-01-13 13:38:14 -08:00
|
|
|
menu_coords 0, 0, 10, 7
|
2018-01-23 13:08:43 -08:00
|
|
|
dw .MenuData
|
2015-10-16 10:35:43 -07:00
|
|
|
db 1 ; default option
|
|
|
|
|
|
|
|
db 0
|
|
|
|
|
2018-06-24 17:10:37 -07:00
|
|
|
.MenuData:
|
2018-01-14 02:59:56 -08:00
|
|
|
db STATICMENU_CURSOR | STATICMENU_DISABLE_B ; flags
|
2015-10-16 10:35:43 -07:00
|
|
|
db 0 ; items
|
2015-11-01 09:44:30 -08:00
|
|
|
dw .PasswordIndices
|
|
|
|
dw .PlacePasswordChoices
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.PasswordIndices:
|
2018-01-11 09:00:01 -08:00
|
|
|
db NUM_PASSWORDS_PER_CATEGORY
|
2018-01-14 20:43:51 -08:00
|
|
|
x = 0
|
|
|
|
rept NUM_PASSWORDS_PER_CATEGORY
|
|
|
|
db x
|
|
|
|
x = x + 1
|
|
|
|
endr
|
2015-10-16 10:35:43 -07:00
|
|
|
db -1
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.PlacePasswordChoices:
|
2015-10-16 10:35:43 -07:00
|
|
|
push de
|
2015-10-24 07:34:19 -07:00
|
|
|
ld a, [wBuenasPassword]
|
2015-10-16 10:35:43 -07:00
|
|
|
and $f0
|
|
|
|
ld c, a
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wMenuSelection]
|
2015-10-16 10:35:43 -07:00
|
|
|
add c
|
|
|
|
ld c, a
|
2017-12-24 09:47:30 -08:00
|
|
|
farcall GetBuenasPassword
|
2015-10-16 10:35:43 -07:00
|
|
|
pop hl
|
|
|
|
call PlaceString
|
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
BuenaPrize:
|
2015-10-16 10:35:43 -07:00
|
|
|
xor a
|
2015-11-23 13:04:53 -08:00
|
|
|
ld [wMenuScrollPosition], a
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, $1
|
2018-01-23 14:39:09 -08:00
|
|
|
ld [wMenuSelection], a
|
2015-12-18 17:07:09 -08:00
|
|
|
call Buena_PlacePrizeMenuBox
|
|
|
|
call Buena_DisplayBlueCardBalance
|
2019-10-20 15:24:17 -07:00
|
|
|
ld hl, .BuenaAskWhichPrizeText
|
2015-10-16 10:35:43 -07:00
|
|
|
call PrintText
|
2015-11-01 09:44:30 -08:00
|
|
|
jr .okay
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2015-11-01 09:44:30 -08:00
|
|
|
.loop
|
2019-10-20 15:24:17 -07:00
|
|
|
ld hl, .BuenaAskWhichPrizeText
|
2015-10-31 18:05:02 -07:00
|
|
|
call BuenaPrintText
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2015-11-01 09:44:30 -08:00
|
|
|
.okay
|
2015-10-16 10:35:43 -07:00
|
|
|
call DelayFrame
|
|
|
|
call UpdateSprites
|
2015-12-17 19:31:16 -08:00
|
|
|
call PrintBlueCardBalance
|
2015-12-18 17:07:09 -08:00
|
|
|
call Buena_PrizeMenu
|
2015-11-01 09:44:30 -08:00
|
|
|
jr z, .done
|
2018-01-23 14:39:09 -08:00
|
|
|
ld [wMenuSelectionQuantity], a
|
2015-10-17 14:18:52 -07:00
|
|
|
call Buena_getprize
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, [hl]
|
2015-12-18 17:07:09 -08:00
|
|
|
ld [wNamedObjectIndexBuffer], a
|
2015-10-16 10:35:43 -07:00
|
|
|
call GetItemName
|
2019-10-20 15:24:17 -07:00
|
|
|
ld hl, .BuenaIsThatRightText
|
2015-10-31 18:05:02 -07:00
|
|
|
call BuenaPrintText
|
2015-10-16 10:35:43 -07:00
|
|
|
call YesNoBox
|
2015-11-01 09:44:30 -08:00
|
|
|
jr c, .loop
|
2015-10-24 07:34:19 -07:00
|
|
|
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wMenuSelectionQuantity]
|
2015-10-17 14:18:52 -07:00
|
|
|
call Buena_getprize
|
2015-10-16 10:35:43 -07:00
|
|
|
inc hl
|
|
|
|
ld a, [hld]
|
|
|
|
ld c, a
|
2015-10-24 07:34:19 -07:00
|
|
|
ld a, [wBlueCardBalance]
|
2015-10-16 10:35:43 -07:00
|
|
|
cp c
|
2015-10-24 07:34:19 -07:00
|
|
|
jr c, .InsufficientBalance
|
|
|
|
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, [hli]
|
|
|
|
push hl
|
2018-01-23 14:39:09 -08:00
|
|
|
ld [wCurItem], a
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, $1
|
2015-11-01 15:13:31 -08:00
|
|
|
ld [wItemQuantityChangeBuffer], a
|
2018-01-23 14:39:09 -08:00
|
|
|
ld hl, wNumItems
|
2015-10-16 10:35:43 -07:00
|
|
|
call ReceiveItem
|
|
|
|
pop hl
|
2015-11-01 09:44:30 -08:00
|
|
|
jr nc, .BagFull
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, [hl]
|
|
|
|
ld c, a
|
2015-10-24 07:34:19 -07:00
|
|
|
ld a, [wBlueCardBalance]
|
2015-10-16 10:35:43 -07:00
|
|
|
sub c
|
2015-10-24 07:34:19 -07:00
|
|
|
ld [wBlueCardBalance], a
|
2015-12-17 19:31:16 -08:00
|
|
|
call PrintBlueCardBalance
|
2015-11-01 09:44:30 -08:00
|
|
|
jr .Purchase
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2016-04-10 11:42:14 -07:00
|
|
|
.InsufficientBalance:
|
2019-10-20 15:24:17 -07:00
|
|
|
ld hl, .BuenaNotEnoughPointsText
|
2015-11-01 09:44:30 -08:00
|
|
|
jr .print
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2016-04-10 11:42:14 -07:00
|
|
|
.BagFull:
|
2019-10-20 15:24:17 -07:00
|
|
|
ld hl, .BuenaNoRoomText
|
2015-11-01 09:44:30 -08:00
|
|
|
jr .print
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2016-04-10 11:42:14 -07:00
|
|
|
.Purchase:
|
2015-10-16 10:35:43 -07:00
|
|
|
ld de, SFX_TRANSACTION
|
|
|
|
call PlaySFX
|
2019-10-20 15:24:17 -07:00
|
|
|
ld hl, .BuenaHereYouGoText
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2015-11-01 09:44:30 -08:00
|
|
|
.print
|
2015-10-31 18:05:02 -07:00
|
|
|
call BuenaPrintText
|
2015-11-01 09:44:30 -08:00
|
|
|
jr .loop
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2015-11-01 09:44:30 -08:00
|
|
|
.done
|
2015-12-24 19:58:42 -08:00
|
|
|
call CloseWindow
|
|
|
|
call CloseWindow
|
2019-10-20 15:24:17 -07:00
|
|
|
ld hl, .BuenaComeAgainText
|
2015-10-16 10:35:43 -07:00
|
|
|
call PrintText
|
2015-10-17 09:58:26 -07:00
|
|
|
call JoyWaitAorB
|
2015-10-16 10:35:43 -07:00
|
|
|
call PlayClickSFX
|
|
|
|
ret
|
|
|
|
|
2019-10-20 15:24:17 -07:00
|
|
|
.BuenaAskWhichPrizeText:
|
|
|
|
text_far _BuenaAskWhichPrizeText
|
2018-11-17 10:33:03 -08:00
|
|
|
text_end
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2019-10-20 15:24:17 -07:00
|
|
|
.BuenaIsThatRightText:
|
|
|
|
text_far _BuenaIsThatRightText
|
2018-11-17 10:33:03 -08:00
|
|
|
text_end
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2019-10-20 15:24:17 -07:00
|
|
|
.BuenaHereYouGoText:
|
|
|
|
text_far _BuenaHereYouGoText
|
2018-11-17 10:33:03 -08:00
|
|
|
text_end
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2019-10-20 15:24:17 -07:00
|
|
|
.BuenaNotEnoughPointsText:
|
|
|
|
text_far _BuenaNotEnoughPointsText
|
2018-11-17 10:33:03 -08:00
|
|
|
text_end
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2019-10-20 15:24:17 -07:00
|
|
|
.BuenaNoRoomText:
|
|
|
|
text_far _BuenaNoRoomText
|
2018-11-17 10:33:03 -08:00
|
|
|
text_end
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2019-10-20 15:24:17 -07:00
|
|
|
.BuenaComeAgainText:
|
|
|
|
text_far _BuenaComeAgainText
|
2018-11-17 10:33:03 -08:00
|
|
|
text_end
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
Buena_DisplayBlueCardBalance:
|
2018-01-23 13:08:43 -08:00
|
|
|
ld hl, BlueCardBalanceMenuHeader
|
|
|
|
call LoadMenuHeader
|
2015-10-16 10:35:43 -07:00
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
PrintBlueCardBalance:
|
2015-10-24 07:34:19 -07:00
|
|
|
ld de, wBlueCardBalance
|
2015-12-17 19:31:16 -08:00
|
|
|
call .DrawBox
|
2015-10-16 10:35:43 -07:00
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.DrawBox:
|
2015-10-16 10:35:43 -07:00
|
|
|
push de
|
|
|
|
xor a
|
2018-08-25 11:28:22 -07:00
|
|
|
ldh [hBGMapMode], a
|
2018-01-23 13:08:43 -08:00
|
|
|
ld hl, BlueCardBalanceMenuHeader
|
|
|
|
call CopyMenuHeader
|
2015-11-04 11:02:11 -08:00
|
|
|
call MenuBox
|
2015-10-16 10:35:43 -07:00
|
|
|
call UpdateSprites
|
2015-11-10 13:53:37 -08:00
|
|
|
call MenuBoxCoord2Tile
|
2015-12-17 19:31:16 -08:00
|
|
|
ld bc, SCREEN_WIDTH + 1
|
2015-10-16 10:35:43 -07:00
|
|
|
add hl, bc
|
2015-10-17 14:18:52 -07:00
|
|
|
ld de, .Points_string
|
2015-10-16 10:35:43 -07:00
|
|
|
call PlaceString
|
|
|
|
ld h, b
|
|
|
|
ld l, c
|
|
|
|
inc hl
|
2015-12-17 19:31:16 -08:00
|
|
|
ld a, " "
|
2015-10-16 10:35:43 -07:00
|
|
|
ld [hli], a
|
|
|
|
ld [hld], a
|
|
|
|
pop de
|
|
|
|
lb bc, 1, 2
|
|
|
|
call PrintNum
|
|
|
|
ret
|
|
|
|
|
2015-10-17 14:18:52 -07:00
|
|
|
.Points_string:
|
2015-10-16 10:35:43 -07:00
|
|
|
db "Points@"
|
|
|
|
|
2018-06-24 17:10:37 -07:00
|
|
|
BlueCardBalanceMenuHeader:
|
2018-01-14 02:59:56 -08:00
|
|
|
db MENU_BACKUP_TILES ; flags
|
2018-01-13 13:38:14 -08:00
|
|
|
menu_coords 0, 11, 11, 13
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
Buena_PlacePrizeMenuBox:
|
2018-01-23 13:08:43 -08:00
|
|
|
ld hl, .MenuHeader
|
|
|
|
call LoadMenuHeader
|
2015-10-16 10:35:43 -07:00
|
|
|
ret
|
|
|
|
|
2018-06-24 17:10:37 -07:00
|
|
|
.MenuHeader
|
2018-01-14 02:59:56 -08:00
|
|
|
db MENU_BACKUP_TILES ; flags
|
2018-01-13 13:38:14 -08:00
|
|
|
menu_coords 0, 0, 17, TEXTBOX_Y - 1
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
Buena_PrizeMenu:
|
2018-01-23 13:08:43 -08:00
|
|
|
ld hl, .MenuHeader
|
|
|
|
call CopyMenuHeader
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wMenuSelection]
|
2015-11-01 09:44:30 -08:00
|
|
|
ld [wMenuCursorBuffer], a
|
2015-10-16 10:35:43 -07:00
|
|
|
xor a
|
2015-12-18 17:07:09 -08:00
|
|
|
ld [wWhichIndexSet], a
|
2018-08-25 11:28:22 -07:00
|
|
|
ldh [hBGMapMode], a
|
2015-11-17 12:54:03 -08:00
|
|
|
call InitScrollingMenu
|
2015-10-16 10:35:43 -07:00
|
|
|
call UpdateSprites
|
2015-12-17 19:31:16 -08:00
|
|
|
call ScrollingMenu
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wMenuSelection]
|
2015-10-16 10:35:43 -07:00
|
|
|
ld c, a
|
2015-12-15 15:59:49 -08:00
|
|
|
ld a, [wMenuCursorY]
|
2018-01-23 14:39:09 -08:00
|
|
|
ld [wMenuSelection], a
|
2015-12-15 15:59:49 -08:00
|
|
|
ld a, [wMenuJoypad]
|
2015-10-16 10:35:43 -07:00
|
|
|
cp $2
|
2015-12-17 19:31:16 -08:00
|
|
|
jr z, .cancel
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, c
|
|
|
|
and a
|
|
|
|
ret nz
|
|
|
|
|
2015-12-17 19:31:16 -08:00
|
|
|
.cancel
|
2015-10-16 10:35:43 -07:00
|
|
|
xor a
|
|
|
|
ret
|
|
|
|
|
2018-06-24 17:10:37 -07:00
|
|
|
.MenuHeader:
|
2018-01-14 02:59:56 -08:00
|
|
|
db MENU_BACKUP_TILES ; flags
|
2018-01-13 13:38:14 -08:00
|
|
|
menu_coords 1, 1, 16, 9
|
2018-01-23 13:08:43 -08:00
|
|
|
dw .MenuData
|
2015-10-16 10:35:43 -07:00
|
|
|
db 1 ; default option
|
|
|
|
|
|
|
|
db 0
|
|
|
|
|
2018-06-24 17:10:37 -07:00
|
|
|
.MenuData:
|
2018-01-14 02:59:56 -08:00
|
|
|
db SCROLLINGMENU_DISPLAY_ARROWS ; flags
|
2015-12-17 19:31:16 -08:00
|
|
|
db 4, 13 ; rows, columns
|
2019-06-08 17:31:24 -07:00
|
|
|
db SCROLLINGMENU_ITEMS_NORMAL ; item format
|
2015-10-17 14:18:52 -07:00
|
|
|
dba .indices
|
|
|
|
dba .prizeitem
|
|
|
|
dba .prizepoints
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2018-01-22 10:00:35 -08:00
|
|
|
NUM_BUENA_PRIZES EQU 9 ; ((BuenaPrizeItems.End - BuenaPrizeItems) / 2)
|
2017-12-22 21:31:04 -08:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.indices
|
2017-12-15 14:22:52 -08:00
|
|
|
db NUM_BUENA_PRIZES
|
|
|
|
x = 1
|
|
|
|
rept NUM_BUENA_PRIZES
|
|
|
|
db x
|
|
|
|
x = x + 1
|
|
|
|
endr
|
2015-10-17 14:18:52 -07:00
|
|
|
db -1
|
2015-10-16 10:35:43 -07:00
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.prizeitem
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wMenuSelection]
|
2015-10-17 14:18:52 -07:00
|
|
|
call Buena_getprize
|
2015-10-16 10:35:43 -07:00
|
|
|
ld a, [hl]
|
|
|
|
push de
|
2015-10-17 14:18:52 -07:00
|
|
|
ld [wNamedObjectIndexBuffer], a
|
2015-10-16 10:35:43 -07:00
|
|
|
call GetItemName
|
|
|
|
pop hl
|
|
|
|
call PlaceString
|
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
.prizepoints
|
2018-01-23 14:39:09 -08:00
|
|
|
ld a, [wMenuSelection]
|
2015-10-17 14:18:52 -07:00
|
|
|
call Buena_getprize
|
2015-10-16 10:35:43 -07:00
|
|
|
inc hl
|
|
|
|
ld a, [hl]
|
|
|
|
ld c, "0"
|
|
|
|
add c
|
|
|
|
ld [de], a
|
|
|
|
ret
|
|
|
|
|
2018-06-24 07:09:41 -07:00
|
|
|
Buena_getprize:
|
2015-10-16 10:35:43 -07:00
|
|
|
dec a
|
2017-12-15 14:22:52 -08:00
|
|
|
ld hl, BuenaPrizeItems
|
2015-10-16 10:35:43 -07:00
|
|
|
ld b, 0
|
|
|
|
ld c, a
|
|
|
|
add hl, bc
|
2016-05-04 08:46:23 -07:00
|
|
|
add hl, bc
|
2015-10-16 10:35:43 -07:00
|
|
|
ret
|
|
|
|
|
2017-12-15 14:22:52 -08:00
|
|
|
INCLUDE "data/items/buena_prizes.asm"
|