Merge pull request #48 from mdraves91/pause-menu-disasm

Disassemble and document pause menu functions
This commit is contained in:
dannye
2025-12-06 11:24:49 -06:00
committed by GitHub
25 changed files with 3146 additions and 486 deletions

View File

@@ -55,6 +55,7 @@ DEF FILTER_ENERGY EQU $20
DEF NUM_FILTERS EQU 9
DEF NUM_DECK_CONFIRMATION_VISIBLE_CARDS EQU 7
DEF NUM_FILTERED_LIST_VISIBLE_CARDS EQU 6
DEF NUM_DECK_SAVE_MACHINE_SLOTS EQU 50
DEF NUM_DECK_MACHINE_VISIBLE_DECKS EQU 5

View File

@@ -330,7 +330,28 @@ ENDR
DEF wD606_STRUCT_SIZE EQU $8
DEF SCRIPT_BUFFER_SIZE EQU $20
DEF SCRIPT_STACK_SIZE EQU $10
DEF wDD37_BUFFER_SIZE EQU $19
DEF BLACK_BOX_CARDS_BUFFER_SIZE EQU $14
DEF MAIL_QUEUE_BUFFER_SIZE EQU $19
DEF NEW_MAIL EQU $ff
DEF NUM_UNIQUE_MAILS_IN_GAME EQU 29
DEF MAIL_MAX_NUM EQU 8
DEF MAIL_MAX_ON_SCREEN EQU 4
DEF MAIL_BUFFER_SIZE EQU MAIL_MAX_NUM + 1
DEF B_MAIL_READ EQU 7
DEF B_MAIL_PRIORITY_DELIVERY EQU 7
DEF B_MAIL_BOOSTER_PACK EQU 7
DEF B_MAIL_GENERIC_CARD EQU 6
DEF B_MAIL_BLACK_BOX EQU 5
DEF B_MAIL_BILLS_PC EQU 4
DEF MAIL_COMMAND_GIVE_BOOSTER EQU 1 << B_MAIL_BOOSTER_PACK
DEF MAIL_COMMAND_GIVE_GENERIC_CARD EQU 1 << B_MAIL_GENERIC_CARD
DEF MAIL_COMMAND_GIVE_BLACK_BOX EQU 1 << B_MAIL_BLACK_BOX
DEF MAIL_COMMAND_GIVE_BILLS_PC EQU 1 << B_MAIL_BILLS_PC
DEF MAIL_TERMINATOR EQU $ffff
; TODO: Figure out why 2 is added in IngameCardPop
const_def

345
src/data/mail.asm Normal file
View File

@@ -0,0 +1,345 @@
MACRO end_mail
dw MAIL_TERMINATOR
ENDM
MACRO no_card
dw $0000
ENDM
Mail:
dw .MailEmpty
dw .MailBlackBox
dw .MailBillsPCOutput
dw .MailMailboxIntro
dw .MailDeckDiagnosis1
dw .MailDeckDiagnosis2
dw .MailDeckDiagnosis3
dw .MailDeckDiagnosis4
dw .MailAutoDeckMachine1
dw .MailAutoDeckMachine2
dw .MailAutoDeckMachine3
dw .MailAutoDeckMachine4
dw .MailAutoDeckMachine5
dw .MailChallengeMachine
dw .MailGRChallengeMachine
dw .MailGrandMasterCup
dw .MailRonaldsScoutGR1
dw .MailRonaldsScoutGR2
dw .MailRonaldsScoutGR3
dw .MailRonaldsScoutGR4
dw .MailRonaldsScoutMorino
dw .MailRonaldsScoutCatherine
dw .MailRonaldsScoutHidero
dw .MailRonaldsScoutKanoko
dw .MailRonaldsScoutKamiya
dw .MailRonaldsScoutMami
dw .MailRonaldsScoutColorlessAltar
dw .MailRonaldsScoutBiruritchi
dw .MailLinkDuel
.MailEmpty
tx MailboxEmptySenderText
tx MailboxEmptySubjectText
end_mail
.MailBlackBox
tx MailBlackBoxOutputSenderText
tx MailBlackBoxOutputSubjectText
tx MailBlackBoxOutputBody1Text
db $00, MAIL_COMMAND_GIVE_BLACK_BOX
tx MailBlackBoxOutputBody2Text
no_card
end_mail
.MailBillsPCOutput
tx MailBillsPCOutputSenderText
tx MailBillsPCOutputSubjectText
tx MailBillsPCOutputBody1Text
db $00, MAIL_COMMAND_GIVE_BILLS_PC
tx MailBillsPCOutputBody2Text
no_card
end_mail
.MailMailboxIntro
tx MailMailboxIntroSenderText
tx MailMailboxIntroSubjectText
tx MailMailboxIntroBody1Text
no_card
tx MailMailboxIntroBody2Text
no_card
tx MailMailboxIntroBody3Text
db BOOSTER_PRESENT_PACK_1, MAIL_COMMAND_GIVE_BOOSTER
end_mail
.MailDeckDiagnosis1
tx MailDeckDiagnosis1SenderText
tx MailDeckDiagnosis1SubjectText
tx MailDeckDiagnosis1Body1Text
no_card
tx MailDeckDiagnosis1Body2Text
no_card
tx MailDeckDiagnosis1Body3Text
no_card
tx MailDeckDiagnosis1Body4Text
no_card
end_mail
.MailDeckDiagnosis2
tx MailDeckDiagnosis2SenderText
tx MailDeckDiagnosis2SubjectText
tx MailDeckDiagnosis2Body1Text
no_card
tx MailDeckDiagnosis2Body2Text
no_card
tx MailDeckDiagnosis2Body3Text
no_card
tx MailDeckDiagnosis2Body4Text
no_card
end_mail
.MailDeckDiagnosis3
tx MailDeckDiagnosis3SenderText
tx MailDeckDiagnosis3SubjectText
tx MailDeckDiagnosis3Body1Text
no_card
tx MailDeckDiagnosis3Body2Text
no_card
tx MailDeckDiagnosis3Body3Text
no_card
end_mail
.MailDeckDiagnosis4
tx MailDeckDiagnosis4SenderText
tx MailDeckDiagnosis4SubjectText
tx MailDeckDiagnosis4Body1Text
no_card
tx MailDeckDiagnosis4Body2Text
no_card
end_mail
.MailAutoDeckMachine1
tx MailAutoDeckMachine1SenderText
tx MailAutoDeckMachine1SubjectText
tx MailAutoDeckMachine1Body1Text
no_card
tx MailAutoDeckMachine1Body2Text
no_card
tx MailAutoDeckMachine1Body3Text
db BOOSTER_BEGINNING_POKEMON, MAIL_COMMAND_GIVE_BOOSTER
end_mail
.MailAutoDeckMachine2
tx MailAutoDeckMachine2SenderText
tx MailAutoDeckMachine2SubjectText
tx MailAutoDeckMachine2Body1Text
no_card
tx MailAutoDeckMachine2Body2Text
db BOOSTER_LEGENDARY_POWER, MAIL_COMMAND_GIVE_BOOSTER
end_mail
.MailAutoDeckMachine3
tx MailAutoDeckMachine3SenderText
tx MailAutoDeckMachine3SubjectText
tx MailAutoDeckMachine3Body1Text
no_card
tx MailAutoDeckMachine3Body2Text
no_card
tx MailAutoDeckMachine3Body3Text
db BOOSTER_ISLAND_OF_FOSSIL, MAIL_COMMAND_GIVE_BOOSTER
end_mail
.MailAutoDeckMachine4
tx MailAutoDeckMachine4SenderText
tx MailAutoDeckMachine4SubjectText
tx MailAutoDeckMachine4Body1Text
no_card
tx MailAutoDeckMachine4Body2Text
no_card
tx MailAutoDeckMachine4Body3Text
db BOOSTER_SKY_FLYING_POKEMON, MAIL_COMMAND_GIVE_BOOSTER
end_mail
.MailAutoDeckMachine5
tx MailAutoDeckMachine5SenderText
tx MailAutoDeckMachine5SubjectText
tx MailAutoDeckMachine5Body1Text
no_card
tx MailAutoDeckMachine5Body2Text
no_card
tx MailAutoDeckMachine5Body3Text
no_card
end_mail
.MailChallengeMachine
tx MailChallengeMachineSenderText
tx MailChallengeMachineSubjectText
tx MailChallengeMachineBody1Text
no_card
tx MailChallengeMachineBody2Text
no_card
end_mail
.MailGRChallengeMachine
tx MailGRChallengeMachineSenderText
tx MailGRChallengeMachineSubjectText
tx MailGRChallengeMachineBody1Text
no_card
tx MailGRChallengeMachineBody2Text
no_card
tx MailGRChallengeMachineBody3Text
no_card
end_mail
.MailGrandMasterCup
tx MailGrandMasterCupSenderText
tx MailGrandMasterCupSubjectText
tx MailGrandMasterCupBody1Text
no_card
tx MailGrandMasterCupBody2Text
no_card
end_mail
.MailRonaldsScoutGR1
tx MailRonaldsScoutGR1SenderText
tx MailRonaldsScoutGR1SubjectText
tx MailRonaldsScoutGR1Body1Text
no_card
tx MailRonaldsScoutGR1Body2Text
no_card
end_mail
.MailRonaldsScoutGR2
tx MailRonaldsScoutGR2SenderText
tx MailRonaldsScoutGR2SubjectText
tx MailRonaldsScoutGR2Body1Text
no_card
tx MailRonaldsScoutGR2Body2Text
no_card
end_mail
.MailRonaldsScoutGR3
tx MailRonaldsScoutGR3SenderText
tx MailRonaldsScoutGR3SubjectText
tx MailRonaldsScoutGR3Body1Text
no_card
tx MailRonaldsScoutGR3Body2Text
no_card
end_mail
.MailRonaldsScoutGR4
tx MailRonaldsScoutGR4SenderText
tx MailRonaldsScoutGR4SubjectText
tx MailRonaldsScoutGR4Body1Text
no_card
tx MailRonaldsScoutGR4Body2Text
no_card
end_mail
.MailRonaldsScoutMorino
tx MailRonaldsScoutMorinoSenderText
tx MailRonaldsScoutMorinoSubjectText
tx MailRonaldsScoutMorinoBody1Text
no_card
tx MailRonaldsScoutMorinoBody2Text
no_card
tx MailRonaldsScoutMorinoBody3Text
no_card
tx MailRonaldsScoutMorinoBody4Text
no_card
end_mail
.MailRonaldsScoutCatherine
tx MailRonaldsScoutCatherineSenderText
tx MailRonaldsScoutCatherineSubjectText
tx MailRonaldsScoutCatherineBody1Text
no_card
tx MailRonaldsScoutCatherineBody2Text
no_card
tx MailRonaldsScoutCatherineBody3Text
no_card
end_mail
.MailRonaldsScoutHidero
tx MailRonaldsScoutHideroSenderText
tx MailRonaldsScoutHideroSubjectText
tx MailRonaldsScoutHideroBody1Text
no_card
tx MailRonaldsScoutHideroBody2Text
no_card
tx MailRonaldsScoutHideroBody3Text
no_card
end_mail
.MailRonaldsScoutKanoko
tx MailRonaldsScoutKanokoSenderText
tx MailRonaldsScoutKanokoSubjectText
tx MailRonaldsScoutKanokoBody1Text
no_card
tx MailRonaldsScoutKanokoBody2Text
no_card
tx MailRonaldsScoutKanokoBody3Text
no_card
end_mail
.MailRonaldsScoutKamiya
tx MailRonaldsScoutKamiyaSenderText
tx MailRonaldsScoutKamiyaSubjectText
tx MailRonaldsScoutKamiyaBody1Text
no_card
tx MailRonaldsScoutKamiyaBody2Text
no_card
tx MailRonaldsScoutKamiyaBody3Text
no_card
end_mail
.MailRonaldsScoutMami
tx MailRonaldsScoutMamiSenderText
tx MailRonaldsScoutMamiSubjectText
tx MailRonaldsScoutMamiBody1Text
no_card
tx MailRonaldsScoutMamiBody2Text
no_card
tx MailRonaldsScoutMamiBody3Text
no_card
tx MailRonaldsScoutMamiBody4Text
no_card
tx MailRonaldsScoutMamiBody5Text
no_card
end_mail
.MailRonaldsScoutColorlessAltar
tx MailRonaldsScoutColorlessAltarSenderText
tx MailRonaldsScoutColorlessAltarSubjectText
tx MailRonaldsScoutColorlessAltarBody1Text
no_card
tx MailRonaldsScoutColorlessAltarBody2Text
no_card
tx MailRonaldsScoutColorlessAltarBody3Text
no_card
tx MailRonaldsScoutColorlessAltarBody4Text
no_card
end_mail
.MailRonaldsScoutBiruritchi
tx MailRonaldsScoutBiruritchiSenderText
tx MailRonaldsScoutBiruritchiSubjectText
tx MailRonaldsScoutBiruritchiBody1Text
no_card
tx MailRonaldsScoutBiruritchiBody2Text
no_card
tx MailRonaldsScoutBiruritchiBody3Text
no_card
tx MailRonaldsScoutBiruritchiBody4Text
no_card
tx MailRonaldsScoutBiruritchiBody5Text
no_card
end_mail
.MailLinkDuel
tx MailLinkDuelSenderText
tx MailLinkDuelSubjectText
tx MailLinkDuelBody1Text
no_card
tx MailLinkDuelBody2Text
no_card
end_mail

File diff suppressed because it is too large Load Diff

View File

@@ -348,10 +348,10 @@ Func_c24d:
ld [wd586], a
ld [wCurOWLocation], a
ld [wCurMusic], a
ld [wd611 + 0], a
ld [wd611 + 1], a
ld [wd613 + 0], a
ld [wd613 + 1], a
ld [wSentMailBitmask + 0], a
ld [wSentMailBitmask + 1], a
ld [wSentMailBitmask + 2], a
ld [wSentMailBitmask + 3], a
call Func_ebc6
jr nc, .asm_c299
call Func_eb39
@@ -2836,7 +2836,7 @@ OverworldScriptTable:
dw ScriptCommand_SetTextRAM2b ; $61
dw ScriptCommand_SetVariableTextRAM2b ; $62
dw ScriptCommand_ReplaceNPC ; $63
dw ScriptCommand_64 ; $64
dw ScriptCommand_SendMail ; $64
dw ScriptCommand_CheckNPCLoaded ; $65
dw ScriptCommand_GiveDeck ; $66
dw ScriptCommand_67 ; $67
@@ -4388,22 +4388,24 @@ ScriptCommand_ReplaceNPC:
jp IncreaseScriptPointerBy3
; for the buffer value n,
; - if n = 0 or n >= 29, skip
; - else, set bit (m-1) of [dw hl] and Func_1f24e, where
; - hl = wd611 and m = n if 0 < n <= 16,
; - hl = wd613 and m = n-16 if 16 < n < 29,
; - if n = 0 or n >= NUM_UNIQUE_MAILS_IN_GAME, skip
; - else, set bit (m-1) of [dw hl] and AddMailToQueue, where
; - hl = wSentMailBitmask and m = n if 0 < n <= 16,
; - hl = wSentMailBitmask + 2 and m = n-16 if 16 < n < NUM_UNIQUE_MAILS_IN_GAME,
; then IncreaseScriptPointerBy2
ScriptCommand_64:
ScriptCommand_SendMail:
call Get1ScriptArg_IncrIndexBy1
or a
jr z, .done
cp $1d
jr nc, .done
ld hl, wd611
jr z, .done ; 0 is an invalid mail number
cp NUM_UNIQUE_MAILS_IN_GAME
jr nc, .done ; mail > NUM_UNIQUE_MAILS_IN_GAME is another invalid mail number
ld hl, wSentMailBitmask
cp $10 + 1
jr c, .set_bitmask
inc hl
inc hl ; wd613
inc hl ; wSentMailBitmask + 2
sub $10
.set_bitmask
ld de, 1
@@ -4414,7 +4416,7 @@ ScriptCommand_64:
rl d
jr .set_bitmask_loop
.got_bitmask
ld a, [hli]
ld a, [hli] ; wSentMailBitmask or wSentMailBitmask + 2
ld c, a
ld a, [hld]
ld b, a
@@ -4424,8 +4426,11 @@ ScriptCommand_64:
ld a, b
and d
.checked_bit
; if the bit is set then we have already sent this mail before. do not send again
jr nz, .done
; set bit and call
; if we got here, this mail has never been sent before.
; set the appropriate bit in the bitmask, and send the mail
ld a, c
or e
ld c, a
@@ -4436,7 +4441,7 @@ ScriptCommand_64:
ld [hli], a
ld [hl], b
call Get1ScriptArg_IncrIndexBy1
farcall Func_1f24e
farcall AddMailToQueue
.done
jp IncreaseScriptPointerBy2
@@ -5680,7 +5685,7 @@ Func_f085:
dec c
jr nz, .asm_f091
ld c, PAD_A | PAD_B
farcall Func_10221
farcall WaitForButtonPress
pop de
ret
; 0xf0c3

View File

@@ -189,7 +189,7 @@ SECTION "Bank 4@4221", ROMX[$4221], BANK[$4]
; waits until any of the keys
; in register c are pressed
Func_10221:
WaitForButtonPress:
.loop
call DoFrame
ldh a, [hKeysPressed]
@@ -1263,17 +1263,17 @@ Func_1081a:
ret
Func_10836:
ld hl, Data_1083d
ld hl, .function_map
call CallMappedFunction
ret
Data_1083d: ; pause menu
db $00, $07, $f2, $45 ; status
db $01, $07, $02, $45 ; diary
db $02, $04, $65, $48 ; deck
db $03, $07, $4f, $67 ; minicon
db $04, $07, $9a, $5c ; coin
db $05, $07, $6e, $41 ; settings
.function_map: ; pause menu
key_func $00, PauseMenuStatusScreen ; status
key_func $01, PauseMenuDiaryScreen ; diary
key_func $02, PauseMenuDeckScreen ; deck
key_func $03, PauseMenuMinicomScreen ; minicom
key_func $04, PauseMenuCoinScreen ; coin
key_func $05, PauseMenuConfigScreen ; config
db $ff
Func_10856:
@@ -1283,7 +1283,29 @@ Func_10856:
ret
; 0x10861
SECTION "Bank 4@488a", ROMX[$488a], BANK[$4]
SECTION "Bank 4@4865", ROMX[$4865], BANK[$4]
PauseMenuDeckScreen:
call Func_1022a
call ShowDeckSelectionMenuFromPauseMenu
call Func_10252
ret
ShowDeckSelectionMenuFromPauseMenu:
push af
push bc
push de
push hl
call SetFadePalsFrameFunc
farcall DeckSelectionMenu
farcall StartFadeToWhite
farcall WaitPalFading_Bank07
call UnsetFadePalsFrameFunc
pop hl
pop de
pop bc
pop af
ret
ZeroObjectPositionsAndEnableOBPFading:
push af
@@ -6303,7 +6325,7 @@ Func_131d7:
ldtx hl, GameCenterBlackBoxSaveRequestText
call PrintScrollableText_NoTextBoxLabelVRAM0
ld c, $00
farcall Func_1c5a3
farcall DrawSavePromptAndWaitForInput
ret nc
ldtx hl, GameCenterBlackBoxUnableSaveRequiredText
call PrintScrollableText_NoTextBoxLabelVRAM0
@@ -6320,7 +6342,7 @@ Func_131eb:
ret
Func_131fd:
farcall Func_1f324
farcall CheckForBlackBoxCardInMail
ret nc
ldtx hl, GameCenterBlackBoxUnableLastOutputRemainingText
call PrintScrollableText_NoTextBoxLabelVRAM0

View File

@@ -5965,9 +5965,31 @@ HandCardsGfx:
WhatIsYourNameData:
textitem 1, 1, WhatIsYourNameText
db $ff ; end
; 0x1ae65
SECTION "Bank 6@6e92", ROMX[$6e92], BANK[$6]
Deck1RenameText:
textitem 2, 1, Deck1Text
textitem 14, 1, DeckText
db $ff
Deck2RenameText:
textitem 2, 1, Deck2Text
textitem 14, 1, DeckText
db $ff
Deck3RenameText:
textitem 2, 1, Deck3Text
textitem 14, 1, DeckText
db $ff
Deck4RenameText:
textitem 2, 1, Deck4Text
textitem 14, 1, DeckText
db $ff
Deck5RenameText:
textitem 2, 1, Deck5Text
textitem 14, 1, DeckText
db $ff
; dupe of PlayConfirmOrCancelSFX in bank 2
; if a = MENU_CANCEL (-1), play SFX_CANCEL (usually following B button)
@@ -5993,6 +6015,13 @@ InputPlayerName:
ld a, MAX_PLAYER_NAME_LENGTH
ld hl, WhatIsYourNameData
lb bc, 12, 1
; fallthrough
; a = maximum length of name (depending on whether player's or deck's).
; bc = position of name.
; de = dest. pointer.
; hl = pointer to text item of the question.
InputName:
call InitializeInputName
call Set_OBJ_8x8

File diff suppressed because it is too large Load Diff

View File

@@ -2185,7 +2185,7 @@ CheckDeck:
; of each type there are (Basic, Stage1, Stage2, Energy, Trainer)
; and within Energy cards, count each color as well
; outputs all results in wDeckCheckCardCounts
.GetDeckCardCounts:
.GetDeckCardCounts
ld e, l
ld d, h
ld hl, wPlayerDeck
@@ -2195,6 +2195,7 @@ CheckDeck:
call DisableSRAM
pop hl
.asm_25461
push hl
ld hl, wDeckCheckCardCounts
ld c, wDeckCheckCardCountsEnd - wDeckCheckCardCounts
@@ -4855,7 +4856,7 @@ Func_2612a:
ldtx hl, GameCenterBillsPCStartPromptText
call YesOrNoMenuWithText
ret c
farcall Func_1f333
farcall CheckForBillsPCCardInMail
ldtx hl, GameCenterBillsPCUnableLastOutputRemainingText
jr c, .asm_2619a
farcall GetGameCenterChips

View File

@@ -3531,7 +3531,7 @@ Func_2bc4f:
ld [hl], d
ld a, $ff ; all decks
farcall DrawDeckSelectionMenu
farcall DrawDecksScreen
xor a
.asm_2bc5c
ld hl, .MenuParameters
@@ -3543,7 +3543,7 @@ Func_2bc4f:
call DrawWideTextBox_PrintText
.loop_input
call DoFrame
farcall Func_8fb9
farcall HandleStartButtonInDeckSelectionMenu
jr c, .asm_2bc5c
call HandleMenuInput
jp nc, .loop_input ; can be jr
@@ -3558,7 +3558,7 @@ Func_2bc4f:
farcall CheckIfCurDeckIsEmpty
jp nc, .valid ; can be jr
; deck is empty
farcall Func_9215
farcall PrintThereIsNoDeckHereText
jr .asm_2bc5c
.valid

View File

@@ -69,7 +69,7 @@ Func_2c0c8:
Func_2c0d1:
xor a
start_script
script_command_64 $11
send_mail $11
end_script
ld a, EVENT_F5
farcall GetEventValue
@@ -700,7 +700,7 @@ Func_2c584:
xor a
start_script
wait_for_fade
script_command_64 $13
send_mail $13
set_event EVENT_MET_GR4_LIGHTNING_CLUB
set_active_npc NPC_GR_4, DialogGR4Text
script_command_01
@@ -6031,7 +6031,7 @@ Func_2ed37:
Func_2ed3e:
xor a
start_script
script_command_64 $12
send_mail $12
end_script
call WaterClubEntrance_ShouldRonaldAppear
jr c, .quit
@@ -6529,7 +6529,7 @@ Script_2f127:
reset_event EVENT_TALKED_TO_KEN
reset_event EVENT_TALKED_TO_ADAM
reset_event EVENT_TALKED_TO_GR3_WATER_CLUB
script_command_64 $05
send_mail $05
print_npc_text Text0833
script_command_02
set_active_npc_direction WEST
@@ -7128,7 +7128,7 @@ Func_2f56e:
Func_2f575:
xor a
start_script
script_command_64 $12
send_mail $12
end_script
call FireClubEntrance_ShouldRonaldAppear
jr c, .quit
@@ -8024,7 +8024,7 @@ Func_2fc29:
ret
Script_2fc3e:
script_command_64 $09
send_mail $09
set_event EVENT_GOT_GR_COIN_PIECE_BOTTOM_LEFT
print_npc_text Text0c6e
give_coin COIN_GR_START + COIN_GR_PIECE3

View File

@@ -234,7 +234,7 @@ Func_30192:
Func_301c0:
farcall Func_d683
farcall Func_1f293
farcall DeliverMailFromQueue
call WaitPalFading
.loop
call DoFrame
@@ -1784,7 +1784,7 @@ Func_317eb:
ld a, [wd584]
cp MAP_GRASS_FORT_ENTRANCE
jr nz, .asm_317f6
farcall Func_1f293
farcall DeliverMailFromQueue
.asm_317f6
ld bc, $3b
ld a, $14
@@ -2552,7 +2552,7 @@ Func_31da0:
script_jump_if_b0nz .ows_31dcb
ask_question Text11ae, TRUE
script_jump_if_b0z .ows_31dcb
script_command_64 $15
send_mail $15
set_event EVENT_LIGHTNING_FORT_ENTRANCE_DOOR_STATE
script_command_02
play_sfx SFX_DOORS
@@ -2849,7 +2849,7 @@ Func_32016:
ld a, [wd584]
cp MAP_LIGHTNING_FORT_ENTRANCE
jr nz, .asm_32021
farcall Func_1f293
farcall DeliverMailFromQueue
.asm_32021
ld a, EVENT_RENNAS_ROOM_DOOR_STATE
farcall GetEventValue
@@ -3502,7 +3502,7 @@ Func_324e1:
set_event EVENT_BEAT_CATHERINE
set_var VAR_30, $01
set_var VAR_33, $00
script_command_64 $07
send_mail $07
print_npc_text Text11d6
give_booster_packs BoosterList_cd63
script_jump .ows_32524
@@ -3692,7 +3692,7 @@ Func_32664:
script_jump_if_b0nz .ows_3268f
ask_question Text0c83, TRUE
script_jump_if_b0z .ows_3268f
script_command_64 $16
send_mail $16
set_event EVENT_FIRE_FORT_ENTRANCE_DOOR_STATE
script_command_02
play_sfx SFX_DOORS
@@ -3936,7 +3936,7 @@ Func_3286d:
ld a, [wd584]
cp MAP_FIRE_FORT_ENTRANCE
jr nz, .asm_32878
farcall Func_1f293
farcall DeliverMailFromQueue
.asm_32878
ld a, EVENT_JES_ROOM_DOOR_STATE
farcall GetEventValue
@@ -5061,7 +5061,7 @@ Func_3308e:
script_jump_if_b0nz .ows_330b9
ask_question Text1215, TRUE
script_jump_if_b0z .ows_330b9
script_command_64 $17
send_mail $17
set_event EVENT_WATER_FORT_ENTRANCE_DOOR_STATE
script_command_02
play_sfx SFX_DOORS
@@ -5127,7 +5127,7 @@ Func_33129:
ld a, [wd584]
cp MAP_WATER_FORT_ENTRANCE
jr nz, .asm_33134
farcall Func_1f293
farcall DeliverMailFromQueue
.asm_33134
ld a, EVENT_MIYAJIMAS_ROOM_DOOR_STATE
farcall GetEventValue
@@ -5632,7 +5632,7 @@ Func_334b3:
ret
Script_334f6:
script_command_64 $18
send_mail $18
script_command_02
play_sfx SFX_DOORS
load_tilemap TILEMAP_094, $04, $07

View File

@@ -1,7 +1,7 @@
Script_34000:
wait_for_fade
set_var VAR_TIMES_MET_RONALD, $01
script_command_64 $10
send_mail $10
set_active_npc NPC_RONALD, DialogRonaldText
move_player .NPCMovement_34031, TRUE
wait_for_player_animation
@@ -265,7 +265,7 @@ Func_341f7:
xor a
start_script
wait_for_fade
script_command_64 $06
send_mail $06
set_var VAR_TIMES_MET_RONALD, $04
set_var VAR_28, $01
set_var VAR_2B, $00
@@ -394,7 +394,7 @@ Func_342ef:
xor a
start_script
wait_for_fade
script_command_64 $14
send_mail $14
set_var VAR_TIMES_MET_RONALD, $05
load_npc NPC_GR_X, 4, 15, SOUTH
set_active_npc NPC_GR_X, DialogGRXText
@@ -561,8 +561,8 @@ Func_3442d:
xor a
start_script
wait_for_fade
script_command_64 $19
script_command_64 $1a
send_mail $19
send_mail $1a
set_var VAR_TIMES_MET_RONALD, $07
script_command_01
print_npc_text Text1285
@@ -601,7 +601,7 @@ Func_3442d:
Func_3448d:
xor a
start_script
script_command_64 $1b
send_mail $1b
set_var VAR_TIMES_MET_RONALD, $08
play_song_next MUSIC_RONALD
do_frames 60
@@ -1705,8 +1705,8 @@ Func_34d15:
farcall Func_1312e
jr c, .asm_34d2f
farcall Func_4569f
ld a, $81
farcall Func_1f24e
ld a, $81 ; priority black box mail
farcall AddMailToQueue
.asm_34d2f
ld a, $00
ld [wd582], a
@@ -2830,7 +2830,7 @@ Func_35596:
script_jump_if_b0nz .ows_355b4
set_event EVENT_BEAT_MORINO
reset_event EVENT_TALKED_TO_MORINO
script_command_64 $0a
send_mail $0a
print_npc_text Text0dc0
give_booster_packs BoosterList_cd59
script_jump .ows_355d1
@@ -3409,7 +3409,7 @@ Func_35a0d:
ld a, [wd584]
cp MAP_FIGHTING_FORT_ENTRANCE
jr nz, .asm_35a18
farcall Func_1f293
farcall DeliverMailFromQueue
.asm_35a18
ld a, EVENT_BEAT_KAMIYA
farcall GetEventValue
@@ -3630,7 +3630,7 @@ Func_35b82:
end_script
ret
.ows_35bbf
script_command_64 $0b
send_mail $0b
set_event EVENT_GOT_MACHAMP_COIN
print_npc_text Text0c25
give_coin COIN_MACHAMP
@@ -4628,7 +4628,7 @@ Func_3639f:
ld a, [wd584]
cp MAP_PSYCHIC_STRONGHOLD_ENTRANCE
jr nz, .asm_363aa
farcall Func_1f293
farcall DeliverMailFromQueue
.asm_363aa
xor a
start_script
@@ -6205,7 +6205,7 @@ Func_36fe9:
ret
Func_36ff2:
farcall Func_1f293
farcall DeliverMailFromQueue
ld a, EVENT_MET_COLORLESS_ALTAR_MEMBERS
farcall GetEventValue
jr nz, .asm_3700f
@@ -7044,7 +7044,7 @@ Func_3766c:
ld a, [wd584]
cp MAP_GR_CASTLE_ENTRANCE
jr nz, .asm_37677
farcall Func_1f293
farcall DeliverMailFromQueue
.asm_37677
ld a, EVENT_MET_BIRURITCHI_AND_ADMINS
farcall GetEventValue

View File

@@ -4857,7 +4857,7 @@ Func_3ada1:
inc hl
ld [hl], d
call ClearScreenAndDrawDeckMachineScreen
ld a, $32
ld a, NUM_DECK_SAVE_MACHINE_SLOTS
ld [wNumDeckMachineEntries], a
xor a
.asm_3adb7
@@ -4877,22 +4877,22 @@ Func_3ada1:
ld a, [wScrollMenuScrollOffset]
add b
ld [wSelectedDeckMachineEntry], a
farcall Func_9287
farcall ResetCheckMenuCursorPositionAndBlink
call DrawWideTextBox
ld hl, $6e7b
call PlaceTextItems
.asm_3aded:
call DoFrame
farcall Func_9292
farcall HandleCheckMenuInput
jp nc, .asm_3aded
cp $ff
jr nz, .asm_3ae01
ld a, [wTempScrollMenuItem]
jp .asm_3adb7
.asm_3ae01
ld a, [wMusicStereoPanningBackup]
ld a, [wCheckMenuCursorYPosition]
sla a
ld hl, wCurSongBankBackup
ld hl, wCheckMenuCursorXPosition
add [hl]
or a
jr nz, .asm_3ae33
@@ -5133,7 +5133,7 @@ CopyBBytesFromHLToDE_Bank0e:
jr nz, .loop
ret
Func_3afb1:
CopyListFromHLToDE_Bank0e:
.asm_3afb1
ld a, [hli]
ld [de], a
@@ -5636,7 +5636,7 @@ SECTION "Bank e@72db", ROMX[$72db], BANK[$e]
Func_3b2db:
ld a, $ff
farcall DrawDeckSelectionMenu
farcall DrawDecksScreen
xor a
.asm_3b2e2
ld hl, $735e
@@ -5645,7 +5645,7 @@ Func_3b2db:
call DrawWideTextBox_PrintText
.asm_3b2ee
call DoFrame
farcall Func_8fb9
farcall HandleStartButtonInDeckSelectionMenu
jr c, .asm_3b2e2
call HandleMenuInput
jp nc, .asm_3b2ee
@@ -5655,7 +5655,7 @@ Func_3b2db:
ld [wCurDeck], a
farcall CheckIfCurDeckIsEmpty
jp nc, Func_3b315
farcall Func_9215
farcall PrintThereIsNoDeckHereText
ld a, [wCurDeck]
jr .asm_3b2e2
@@ -5871,7 +5871,7 @@ Func_3b45f:
ldtx hl, YouMayOnlyCarry4DecksText
call DrawWideTextBox_WaitForInput
ld a, $ff
farcall DrawDeckSelectionMenu
farcall DrawDecksScreen
xor a
.asm_3b46c
ld hl, $735e
@@ -5880,7 +5880,7 @@ Func_3b45f:
call DrawWideTextBox_PrintText
.asm_3b478
call DoFrame
farcall Func_8fb9
farcall HandleStartButtonInDeckSelectionMenu
jr c, .asm_3b46c
call HandleMenuInput
jp nc, .asm_3b478
@@ -5901,18 +5901,18 @@ Func_3b45f:
push hl
ld de, wd47e
call EnableSRAM
call Func_3afb1
call CopyListFromHLToDE_Bank0e
pop hl
push hl
ld bc, $18
add hl, bc
farcall Func_9397
farcall AddDeckToCollection
pop hl
ld a, $60
farcall ClearNBytesFromHL
call DisableSRAM
ld a, $ff
farcall DrawDeckSelectionMenu
farcall DrawDecksScreen
ld a, [wCurDeck]
ld hl, $735e
call InitializeMenuParameters
@@ -6001,7 +6001,7 @@ Func_3b4eb:
call CopyBBytesFromHLToDE_Bank0e
call DisableSRAM
ld a, $ff
farcall DrawDeckSelectionMenu
farcall DrawDecksScreen
ld a, [wd496]
ld [wCurDeck], a
ld hl, $735e
@@ -6042,7 +6042,7 @@ Func_3b4eb:
Func_3b5f1:
call Func_3bcd6
farcall DrawDeckSelectionMenu
farcall DrawDecksScreen
ldtx hl, DismantleTheseDecksPromptText
call YesOrNoMenuWithText
jr nc, .asm_3b601
@@ -6075,7 +6075,7 @@ Func_3b5f1:
.asm_3b634
call DisableSRAM
ld a, [wd49a]
farcall DrawDeckSelectionMenu
farcall DrawDecksScreen
ldtx hl, DismantledTheseDecksText
call DrawWideTextBox_WaitForInput
or a
@@ -6090,7 +6090,7 @@ Func_3b646:
push hl
ld bc, $18
add hl, bc
farcall Func_9397
farcall AddDeckToCollection
pop hl
ld a, $60
farcall ClearNBytesFromHL
@@ -6134,7 +6134,7 @@ Func_3b661:
ld de, wCurDeckCards
ld b, $80
call CopyBBytesFromHLToDE_Bank0e
farcall Func_9a0f
farcall CheckIfThereAreAnyBasicCardsInDeck
jr c, .asm_3b6c0
ldtx hl, CannotBuildLackingBasicPokemonText
call DrawWideTextBox_WaitForInput
@@ -6914,7 +6914,7 @@ Func_3bb09:
ld a, [wScrollMenuScrollOffset]
add b
ld [wSelectedDeckMachineEntry], a
farcall Func_9287
farcall ResetCheckMenuCursorPositionAndBlink
xor a
ld [wd0cd], a
call DrawWideTextBox
@@ -6929,7 +6929,7 @@ Func_3bb09:
ld a, [wTempScrollMenuItem]
jp .asm_3bb30
.asm_3bbe6
ld a, [wMusicStereoPanningBackup]
ld a, [wCheckMenuCursorYPosition]
sla a
ld hl, wCurSongBankBackup
add [hl]
@@ -7101,6 +7101,96 @@ Func_3bd3b:
ret
; 0x3bd5c
SECTION "Bank e@7e8d", ROMX[$7e8d], BANK[$e]
SaveDeckDataToWRAM2:
push de
ld de, wc000
call CopyListFromHLToDE_Bank0e
pop de
ld hl, wc000 + DECK_NAME_SIZE
bank1call SaveDeckCards
call SwitchToWRAM2
ld hl, wc000
ld de, w2d28e
ld b, DECK_COMPRESSED_STRUCT_SIZE
call CopyBBytesFromHLToDE_Bank0e
call SwitchToWRAM1
ret
OpenDeckSaveMachineFromDeckBuilding:
ld a, [wCurDeck]
push af
xor a
ld [wScrollMenuScrollOffset], a
ldtx de, DeckSaveMachineText
ld hl, wDeckMachineTitleText
ld [hl], e
inc hl
ld [hl], d
call ClearScreenAndDrawDeckMachineScreen
ld a, NUM_DECK_SAVE_MACHINE_SLOTS
ld [wNumDeckMachineEntries], a
xor a
.wait_input
ld hl, DeckMachineSelectionParams
farcall InitializeScrollMenuParameters
call DrawListScrollArrows
call PrintNumSavedDecks
ldtx hl, PleaseSelectDeckText
call DrawWideTextBox_PrintText
ldtx de, PleaseSelectDeckText
call InitDeckMachineDrawingParams
call HandleDeckMachineSelection
jr c, .wait_input
cp $ff
jr z, .cancel
ld b, a
ld a, [wScrollMenuScrollOffset]
add b
ld [wSelectedDeckMachineEntry], a
call CheckIfSelectedDeckMachineEntryIsEmpty
jr c, .save_deck
ldtx hl, DeleteSavedDeckPromptText
call YesOrNoMenuWithText
ld a, [wTempScrollMenuItem]
jr c, .wait_input
.save_deck
call GetSelectedSavedDeckPtr
ld d, h
ld e, l
ld hl, w2d28e
ld b, DECK_COMPRESSED_STRUCT_SIZE
call EnableSRAM
call SwitchToWRAM2
call CopyBBytesFromHLToDE_Bank0e
call SwitchToWRAM1
call DisableSRAM
call ClearScreenAndDrawDeckMachineScreen
call DrawListScrollArrows
call PrintNumSavedDecks
ld a, [wTempScrollMenuItem]
ld hl, DeckMachineSelectionParams
farcall InitializeScrollMenuParameters
call HandleScrollMenu.draw_visible_cursor
pop af
ld [wCurDeck], a
farcall GetSRAMPointerToCurDeck
call EnableSRAM
farcall CopyDeckName
call DisableSRAM
xor a
ld [wTxRam2], a
ld [wTxRam2 + 1], a
ldtx hl, SavedDeckToMachineText
call DrawWideTextBox_WaitForInput
ret
.cancel
pop af
ld [wCurDeck], a
ret
; 0x3bf55
SECTION "Bank e@7f5e", ROMX[$7f5e], BANK[$e]
Func_3bf5e:

View File

@@ -230,7 +230,7 @@ Func_3c1d0:
ask_question BattleCenterBeginPromptText, TRUE
script_jump_if_b0z .ows_3c20b
play_song MUSIC_CARD_POP
script_command_64 $1c
send_mail $1c
script_command_02
link_duel
script_jump_if_b1nz .ows_3c204
@@ -346,7 +346,7 @@ Func_3c1d0:
get_var VAR_20
compare_loaded_var $05
script_jump_if_b0z .ows_3c2d8
script_command_64 $0f
send_mail $0f
.ows_3c2d8
script_ret

View File

@@ -860,7 +860,7 @@ Func_4053e:
HandleTCGIslandInput:
farcall Func_d683
farcall Func_1f293
farcall DeliverMailFromQueue
call WaitPalFading
.loop_input
call DoFrame
@@ -1514,9 +1514,9 @@ Func_40f46:
wait_for_player_animation
set_active_npc NPC_DR_MASON, DialogDrMasonText
script_command_01
script_command_64 $03
script_command_64 $04
script_command_64 $08
send_mail $03
send_mail $04
send_mail $08
set_event EVENT_GOT_CHANSEY_COIN
script_call .ows_40f83
script_call .ows_40fac
@@ -1647,7 +1647,7 @@ Func_4101d:
start_script
set_event EVENT_EB
set_var VAR_34, $01
script_command_64 $0d
send_mail $0d
end_script
farcall Func_eff7
jr .asm_41073
@@ -3420,7 +3420,7 @@ Func_41d64:
script_command_02
script_jump .ows_41d99
.ows_41d94
script_command_64 $0e
send_mail $0e
script_jump .ows_41d88
.ows_41d99
end_script
@@ -5719,7 +5719,7 @@ Func_42fe1:
script_jump Script_432a0
Script_43000:
script_command_64 $0c
send_mail $0c
play_song_next MUSIC_HALL_OF_HONOR
script_command_02
print_npc_text Text0927

View File

@@ -2023,7 +2023,7 @@ Func_456de:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld c, $03
.asm_45734
ld a, e
@@ -2057,7 +2057,7 @@ Func_456de:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld c, $05
.asm_4576b
ld a, e
@@ -2080,7 +2080,7 @@ Func_456de:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld a, e
ld [hli], a
ld a, d
@@ -2107,7 +2107,7 @@ Func_456de:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld a, e
ld [hli], a
ld a, d
@@ -2137,7 +2137,7 @@ Func_456de:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld a, e
ld [hli], a
ld a, d
@@ -2215,7 +2215,7 @@ Func_457ea:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
.asm_45858
ld a, e
ld [hli], a
@@ -2234,7 +2234,7 @@ Func_457ea:
Func_45868:
xor a
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld [hli], a
ld [hl], a
ld hl, BlackboxPromoCards
@@ -2262,7 +2262,7 @@ Func_45868:
ld a, [hld]
ld d, a
push hl
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
call AppendCardToListInHL
ld hl, wCurDeckCards
call Func_443bd
@@ -2287,7 +2287,7 @@ Func_45868:
or e
jr z, .asm_458be
push hl
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
call AppendCardToListInHL
pop hl
jr .asm_458ad
@@ -2296,7 +2296,7 @@ Func_45868:
Func_458bf:
xor a
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld [hli], a
ld [hl], a
ld hl, wCurDeckCards
@@ -2319,7 +2319,7 @@ Func_458bf:
jr c, .asm_458c8
.asm_458e7
push hl
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
call AppendCardToListInHL
pop hl
jr .asm_458c8
@@ -2387,7 +2387,7 @@ Func_458bf:
cp $02
jp nc, .asm_4593a
push hl
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
call AppendCardToListInHL
pop hl
jr .asm_4593a
@@ -2496,7 +2496,7 @@ Func_458bf:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
call AppendCardToListInHL
dec c
jr nz, .asm_459f7
@@ -2534,7 +2534,7 @@ Func_458bf:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
call AppendCardToListInHL
dec c
jr nz, .asm_45a3c
@@ -2572,7 +2572,7 @@ Func_458bf:
ld a, [hli]
ld e, a
ld d, [hl]
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
call AppendCardToListInHL
dec c
jr nz, .asm_45a81
@@ -2580,7 +2580,7 @@ Func_458bf:
ret
.asm_45a9c
call Func_45bc3
ld hl, wdd5f
ld hl, wBlackBoxCardReceived
ld de, $a
call AppendCardToListInHL
jr .asm_45a9b
@@ -2757,7 +2757,7 @@ Func_45bc3:
push de
push hl
ld hl, wCurDeckCards
ld de, wdd5f
ld de, wBlackBoxCardReceived
ld bc, $c
call CopyDataHLtoDE_SaveRegisters
pop hl

View File

@@ -344,7 +344,7 @@ Func_13ac1::
CreditsCmd_WaitInput:
ld a, [wCreditsCmdArg1]
ld c, a
call Func_10221
call WaitForButtonPress
ret
CreditsCmd_MusicFadeOut:

View File

@@ -2664,8 +2664,8 @@ LoadScene::
farcall _LoadScene
ret
Func_3e75::
farcall $7, $6f2a
UpdateMailboxPage::
farcall _UpdateMailboxPage
ret
Func_3e7a::

View File

@@ -4,6 +4,7 @@ INCLUDE "macros/code.asm"
INCLUDE "macros/data.asm"
INCLUDE "macros/animations.asm"
INCLUDE "macros/map.asm"
INCLUDE "macros/menu.asm"
INCLUDE "macros/scripts.asm"
INCLUDE "macros/text.asm"
INCLUDE "macros/wram.asm"

39
src/macros/menu.asm Normal file
View File

@@ -0,0 +1,39 @@
/*
\1 ; cursor x coordinate - int
\2 ; cursor y coordinate - int
\3 ; y displacement between items - int
\4 ; number of items - int
\5 ; cursor tile number - SYM_*, usually SYM_CURSOR_R
\6 ; tile behind cursor - SYM_*, usually SYM_SPACE
\7 ; function pointer if non-0 - function ptr or NULL
8 bytes. Used by InitializeMenuParameters.
*/
MACRO menu_parameters
db \1, \2, \3, \4, \5, \6
dw \7
ENDM
/*
\1 ; skip clear - TRUE or FALSE
\2 ; width - int
\3 ; height - int
\4 ; blink cursor symbol - SYM_*, usually SYM_CURSOR_R
\5 ; space symbol - SYM_*, usually SYM_SPACE
\6 ; default cursor symbol - SYM_*, usually SYM_CURSOR_R
\7 ; selection cursor symbol - SYM_*, usually SYM_CURSOR_R
\8 ; press keys - PAD_*, usually PAD_A
\9 ; held keys - PAD_*, usually PAD_B
\10 ; has horizontal scroll - TRUE or FALSE
\11 ; vertical step - int
\12 ; update function - function ptr or NULL
\13 ; label text ID - text ptr or NULL
15 bytes. Used by LoadMenuBoxParams.
Usually followed by a list of textitem macros, then $ff
*/
MACRO menu_box_params
db \1, \2, \3, \4, \5, \6, \7, \8, \9, \<10>, \<11>
dw \<12>
tx \<13>
ENDM

View File

@@ -107,7 +107,7 @@ ENDM
const ScriptCommand_SetTextRAM2b_index ; $61
const ScriptCommand_SetVariableTextRAM2b_index ; $62
const ScriptCommand_ReplaceNPC_index ; $63
const ScriptCommand_64_index ; $64
const ScriptCommand_SendMail_index ; $64
const ScriptCommand_CheckNPCLoaded_index ; $65
const ScriptCommand_GiveDeck_index ; $66
const ScriptCommand_67_index ; $67
@@ -664,8 +664,8 @@ MACRO replace_npc
db \2 ; npc to load
ENDM
MACRO script_command_64
run_command ScriptCommand_64
MACRO send_mail
run_command ScriptCommand_SendMail
db \1
ENDM

View File

@@ -71,10 +71,11 @@ ENDR
sCurrentlySelectedDeck:: ; b7a0
ds $1
s0b7a1:: ; b7a1
ds $1
ds $1
; keeps track of how many unnamed decks have been built
; as they suffix the number ### in the form of "<PLYAYER>の###デッキ"
; max number is MAX_UNNAMED_DECK_NUM
sUnnamedDeckCounter:: ; b7a1
ds $2
; each bit represents whether the player has
; obtained a card from a given set

View File

@@ -1819,6 +1819,8 @@ wNamingScreenCursorBlinkCounter:: ; d0e3
; to check whether a new filter is to be applied
wTempCardTypeFilter:: ; d0e4
wCardListCursorPos:: ; d0e4
wCurScrollMenuItem:: ; d0e4
wNamingScreenCursorY:: ; d0e4
@@ -1861,8 +1863,11 @@ wNumEntriesInCurFilter::
wBoosterPackCardListSize:: ; d0ee
ds $1
wd0ef:: ; d0ef
ds $2
wCheckMenuCursorXPosition:: ; d0ef
ds $1
wCheckMenuCursorYPosition:: ; d0f0
ds $1
; deck selected by the player in the Decks screen
wCurDeck:: ; d0f1
@@ -1940,7 +1945,7 @@ wCurCardTypeFilter:: ; d11a
wTempCurMenuItem:: ; d11b
ds $1
wd11c:: ; d11c
wTempFilteredCardListNumCursorPositions:: ; d11c
ds $1
ds $1
@@ -1948,7 +1953,7 @@ wd11c:: ; d11c
wced7:: ; d11e
ds $1
wd11f:: ; d11f
wCardListVisibleOffsetBackup:: ; d11f
ds $1
; stores how many different cards there are in a deck
@@ -2014,13 +2019,22 @@ wd381:: ; d381
wSameNameCardsLimit:: ; d382
ds $1
wd383:: ; d383
; whether to include the cards in the selected deck
; to appear in the filtered lists
; is TRUE when building a deck (since the cards should be shown for removal)
; is FALSE when choosing a deck configuration to send through Gift Center
; (can't select cards that are included in already built decks)
wIncludeCardsInDeck:: ; d383
ds $1
wd384:: ; d384
; pointer to a function that handles the menu
; when building a deck configuration
wDeckConfigurationMenuHandlerFunction:: ; d384
ds $2
wd386:: ; d386
; pointer to a transition table for the
; function in wDeckConfigurationMenuHandlerFunction
wDeckConfigurationMenuTransitionTable:: ; d386
ds $2
wCurCardListPtr:: ; d388
@@ -2106,6 +2120,8 @@ wNamingScreenNamePosition:: ; d3e9
wNamingScreenMode:: ; d3eb
ds $1
; see also sUnnamedDeckCounter
wTempUnnamedDeckCounter:: ; d3ec
ds $3
wd3ef:: ; d3ef
@@ -2363,11 +2379,11 @@ wScriptNPC:: ; d60e
wScriptNPCName:: ; d60f
ds $2
wd611:: ; d611
ds $2
wd613:: ; d613
ds $2
; a bitmask for every unique mail in the game (29 total).
; the corresponding bit is set when a mail is sent, and mask is checked before sending
; mail in event scripts. Mail that is not sent via event script skips the check.
wSentMailBitmask:: ; d611
ds $4
wd615:: ; d615
ds $1
@@ -3194,7 +3210,7 @@ wdd05:: ; dd05
wdd06:: ; dd06
ds $1
wdd07:: ; dd07
wMinicomMenuCursorPosition:: ; dd07
ds $1
wCurBoosterPack:: ; dd08
@@ -3245,48 +3261,69 @@ wdd2e:: ; dd2e
wdd2f:: ; dd2f
ds $1
ds $6
wdd36:: ; dd36
; id of the mail item being read
wMailId:: ; dd30
ds $1
wdd37:: ; dd37
ds wDD37_BUFFER_SIZE
wdd50:: ; dd50
; 0 - mailbox full, 1 - new mail, 2 - no new mail
wMailboxStatus:: ; dd31
ds $1
wdd51:: ; dd51
ds $9
; text offset of the sender line. displayed when reading a mail
wMailSenderText:: ; dd32
ds $2
wdd5a:: ; dd5a
; text offset of the subject line. displayed when reading a mail
wMailSubjectText:: ; dd34
ds $2
; number of minicom mail queued to be delivered. mail is delivered when changing OW locations
wNumMailInQueue:: ; dd36
ds $1
wdd5b:: ; dd5b
; list of mail items queued to be delivered
wMailQueue:: ; dd37
ds MAIL_QUEUE_BUFFER_SIZE
; total number of mail in your mailbox
wMailCount:: ; dd50
ds $1
wdd5c:: ; dd5c
; list of mail items in the player's mailbox. holds up to 8 mail.
; Each byte is the id of a mail item.
; When mail is read, $80 is added to the id
wMailList:: ; dd51
ds MAIL_BUFFER_SIZE
; $ff when the player has new mail. set to 0 when opening mincom mail menu. affects the mailbox animation
wNewMail:: ; dd5a
ds $1
wdd5d:: ; dd5d
; copied from wNumMailInQueue when visiting world map.
; cleared after viewing the mailbox screen once.
; used to show the "mailbox full" graphic
wTempNumMailInQueue:: ; dd5b
ds $1
wdd5e:: ; dd5e
; which page of mail you are viewing. 0 or 1
wMailboxPage:: ; dd5c
ds $1
wdd5f:: ; dd5f
; the mail you have selected to read/delete
wSelectedMailCursorPosition:: ; dd5d
ds $1
wdd60:: ; dd60
; 0 - read mail, 1 - delete mail, 2 - quit
wMailOptionSelected:: ; dd5e
ds $1
ds $12
; card offsets. the cards mailed to you after using the Game Center black box
wBlackBoxCardReceived:: ; dd5f
ds BLACK_BOX_CARDS_BUFFER_SIZE
wdd73:: ; dd73
ds $1
wdd74:: ; dd74
ds $1
; card offset. the card mailed to you after using the Game Center Bill's PC
wBillsPCCardReceived:: ; dd73
ds $2
wdd75:: ; dd75
ds $1

View File

@@ -126,7 +126,7 @@ script_commands = {
0x61: { "name": "set_text_ram2b", "params": [ "text" ] },
0x62: { "name": "set_variable_text_ram2b", "params": [ "text", "text" ] },
0x63: { "name": "replace_npc", "params": [ "npc", "npc" ] },
0x64: { "name": "script_command_64", "params": [ "byte" ] }, # ?
0x64: { "name": "send_mail", "params": [ "byte" ] }, # ?
0x65: { "name": "check_npc_loaded", "params": [ "npc" ] },
0x66: { "name": "give_deck", "params": [ "deck" ] },
0x67: { "name": "script_command_67", "params": [ "byte", "byte" ] }, # ?