diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 3360 |
1 files changed, 56 insertions, 3304 deletions
@@ -9791,7 +9791,7 @@ InitNickname: ; e3de ret ; e3fd -Functione3fd: ; e3fd +_BillsPC: ; e3fd call Functione40a ret c call Functione41c @@ -9851,7 +9851,7 @@ Functione443: ; e443 (3:6443) xor a ld [wcf76], a ld [hBGMapMode], a - call Function1e5d + call DoNthMenu jr c, .cancel ld a, [wMenuCursorBuffer] push af @@ -11479,1698 +11479,17 @@ INCLUDE "engine/spawn_points.asm" INCLUDE "engine/map_setup.asm" -PokemonCenterPC: ; 1559a - call PC_CheckPartyForPokemon - ret c - call PC_PlayBootSound - ld hl, UnknownText_0x15a27 - call PC_DisplayText - ld hl, UnknownText_0x15a2c - call PC_DisplayTextWaitMenu - ld hl, .TopMenu - call LoadMenuDataHeader -.loop - xor a - ld [hBGMapMode], a - call Function1563e - ld [wcf76], a - call Function1e5d - jr c, .shutdown - ld a, [MenuSelection] - ld hl, .JumpTable - call Function1fa7 - jr nc, .loop - -.shutdown - call Function156b8 - call ExitMenu - call WriteBackup - ret -; 155d6 - -.TopMenu: ; 0x155d6 - db $48 ; flags - db 00, 00 ; start coords - db 12, 15 ; end coords - dw .MenuData2 - db 1 ; default option -; 0x155de - -.MenuData2: ; 0x155de - db $a0 ; flags - db 0 ; items - dw .WhichPC - dw Function1f8d - dw .JumpTable -; 0x155e6 - -.JumpTable: ; 155e6 - dw Function15679, .String_PlayersPC - dw Function15668, .String_BillsPC - dw Function15689, .String_OaksPC - dw Function1569a, .String_HallOfFame - dw Function156ab, .String_TurnOff -; 155fa - -.String_PlayersPC: db "<PLAYER>'s PC@" -.String_BillsPC: db "BILL's PC@" -.String_OaksPC: db "PROF.OAK's PC@" -.String_HallOfFame: db "HALL OF FAME@" -.String_TurnOff: db "TURN OFF@" -; 1562c - -.WhichPC: ; 1562c - ; before pokedex - db 3 ; items - db 1, 0, 4 ; bill's, player's, turn off - db -1 - - ; before Hall Of Fame - db 4 ; items - db 1, 0, 2, 4 ; bill's, player's, oak's, turn off - db -1 - - ; postgame - db 5 ; items - db 1, 0, 2, 3, 4 ; bill's, player's, oak's, hall of fame, turn off - db -1 -; 1563e - -Function1563e: ; 1563e - call CheckReceivedDex - jr nz, .asm_15646 - ld a, $0 - ret - -.asm_15646 - ld a, [wd95e] - and a - ld a, $1 - ret z - ld a, $2 - ret -; 15650 - -PC_CheckPartyForPokemon: ; 15650 - ld a, [PartyCount] - and a - ret nz - ld de, SFX_CHOOSE_PC_OPTION - call PlaySFX - ld hl, UnknownText_0x15663 - call PC_DisplayText - scf - ret -; 15663 - -UnknownText_0x15663: ; 0x15663 - ; Bzzzzt! You must have a #MON to use this! - text_jump UnknownText_0x1c1328 - db "@" -; 0x15668 - -Function15668: ; 15668 - call Function156c2 - ld hl, UnknownText_0x15a31 - call PC_DisplayText - callba Functione3fd - and a - ret -; 15679 (5:5679) - -Function15679: ; 15679 - call Function156c2 - ld hl, UnknownText_0x15a36 - call PC_DisplayText - ld b, $0 - call Function15704 - and a - ret -; 15689 - -Function15689: ; 15689 - call Function156c2 - ld hl, UnknownText_0x15a3b - call PC_DisplayText - callba ProfOaksPC - and a - ret -; 1569a - -Function1569a: ; 1569a - call Function156c2 - call FadeToMenu - callba Function86650 - call Function2b3c - and a - ret -; 156ab - -Function156ab: ; 156ab - ld hl, UnknownText_0x15a40 - call PrintText - scf - ret -; 156b3 - -PC_PlayBootSound: ; 156b3 - ld de, SFX_BOOT_PC - jr Function156d0 - -Function156b8: ; 156b8 - ld de, SFX_SHUT_DOWN_PC - call Function156d0 - call WaitSFX - ret - -Function156c2: ; 156c2 - ld de, SFX_CHOOSE_PC_OPTION - jr Function156d0 - -Function156c7: ; 156c7 - ld de, SFX_SWITCH_POKEMON - call Function156d0 - ld de, SFX_SWITCH_POKEMON - -Function156d0: ; 156d0 - push de - call WaitSFX - pop de - call PlaySFX - ret -; 156d9 - -Function156d9: ; 156d9 - call PC_PlayBootSound - ld hl, UnknownText_0x156ff - call PC_DisplayText - ld b, $1 - call Function15704 - and a - jr nz, .asm_156f9 - call OverworldTextModeSwitch - call Function321c - call UpdateSprites - call Function156b8 - ld c, $0 - ret - -.asm_156f9 - call ClearBGPalettes - ld c, $1 - ret -; 156ff - -UnknownText_0x156ff: ; 0x156ff - ; turned on the PC. - text_jump UnknownText_0x1c1353 - db "@" -; 0x15704 - -Function15704: ; 15704 - ld a, b - ld [wcf76], a - ld hl, UnknownText_0x157cc - call PC_DisplayTextWaitMenu - call Function15715 - call ExitMenu - ret -; 15715 - -Function15715: ; 15715 - xor a - ld [wd0d7], a - ld [wd0dd], a - ld hl, KrissPCMenuData - call LoadMenuDataHeader -.asm_15722 - call UpdateTimePals - call Function1e5d - jr c, .asm_15731 - call Function1fa7 - jr nc, .asm_15722 - jr .asm_15732 - -.asm_15731 - xor a - -.asm_15732 - call ExitMenu - ret -; 15736 - -KrissPCMenuData: ; 0x15736 - db %01000000 - db 0, 0 ; top left corner coords (y, x) - db 12, 15 ; bottom right corner coords (y, x) - dw .KrissPCMenuData2 - db 1 ; default selected option - -.KrissPCMenuData2 - db %10100000 ; bit7 - db 0 ; # items? - dw .KrissPCMenuList1 - dw Function1f8d - dw .KrissPCMenuPointers - -.KrissPCMenuPointers ; 0x15746 - dw KrisWithdrawItemMenu, .WithdrawItem - dw KrisDepositItemMenu, .DepositItem - dw KrisTossItemMenu, .TossItem - dw KrisMailBoxMenu, .MailBox - dw KrisDecorationMenu, .Decoration - dw KrisLogOffMenu, .LogOff - dw KrisLogOffMenu, .TurnOff - -.WithdrawItem db "WITHDRAW ITEM@" -.DepositItem db "DEPOSIT ITEM@" -.TossItem db "TOSS ITEM@" -.MailBox db "MAIL BOX@" -.Decoration db "DECORATION@" -.TurnOff db "TURN OFF@" -.LogOff db "LOG OFF@" - -WITHDRAW_ITEM EQU 0 -DEPOSIT_ITEM EQU 1 -TOSS_ITEM EQU 2 -MAIL_BOX EQU 3 -DECORATION EQU 4 -TURN_OFF EQU 5 -LOG_OFF EQU 6 - -.KrissPCMenuList1 - db 5 - db WITHDRAW_ITEM - db DEPOSIT_ITEM - db TOSS_ITEM - db MAIL_BOX - db TURN_OFF - db -1 - -.KrissPCMenuList2 - db 6 - db WITHDRAW_ITEM - db DEPOSIT_ITEM - db TOSS_ITEM - db MAIL_BOX - db DECORATION - db LOG_OFF - db -1 - -PC_DisplayTextWaitMenu: ; 157bb - ld a, [Options] - push af - set NO_TEXT_SCROLL, a - ld [Options], a - call MenuTextBox - pop af - ld [Options], a - ret -; 157cc - -UnknownText_0x157cc: ; 0x157cc - ; What do you want to do? - text_jump UnknownText_0x1c1368 - db "@" -; 0x157d1 - -KrisWithdrawItemMenu: ; 0x157d1 - call LoadStandardMenuDataHeader - callba ClearPCItemScreen -.asm_157da - call Function15985 - jr c, .asm_157e4 - call Function157e9 - jr .asm_157da - -.asm_157e4 - call Function2b3c - xor a - ret -; 0x157e9 - -Function157e9: ; 0x157e9 - ; check if the item has a quantity - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr z, .askquantity - - ; items without quantity are always ×1 - ld a, 1 - ld [wItemQuantityChangeBuffer], a - jr .withdraw - -.askquantity - ld hl, .HowManyText - call MenuTextBox - callba Function24fbf - call ExitMenu - call ExitMenu - jr c, .done - -.withdraw - ld a, [wItemQuantityChangeBuffer] - ld [Buffer1], a ; quantity - ld a, [wd107] - ld [Buffer2], a - ld hl, NumItems - call ReceiveItem - jr nc, .PackFull - ld a, [Buffer1] - ld [wItemQuantityChangeBuffer], a - ld a, [Buffer2] - ld [wd107], a - ld hl, PCItems - call TossItem - predef PartyMonItemName - ld hl, .WithdrewText - call MenuTextBox - xor a - ld [hBGMapMode], a - call ExitMenu - ret - -.PackFull - ld hl, .NoRoomText - call MenuTextBoxBackup - ret - -.done - ret -; 0x15850 - -.HowManyText ; 0x15850 - text_jump _KrissPCHowManyWithdrawText - db "@" - -.WithdrewText ; 0x15855 - text_jump _KrissPCWithdrewItemsText - db "@" - -.NoRoomText ; 0x1585a - text_jump _KrissPCNoRoomWithdrawText - db "@" - - -KrisTossItemMenu: ; 0x1585f - call LoadStandardMenuDataHeader - callba ClearPCItemScreen -.asm_15868 - call Function15985 - jr c, .asm_15878 - ld de, PCItems - callba Function129f4 - jr .asm_15868 - -.asm_15878 - call Function2b3c - xor a - ret -; 0x1587d - - -KrisDecorationMenu: ; 0x1587d - callba _KrisDecorationMenu - ld a, c - and a - ret z - scf - ret -; 0x15888 - - -KrisLogOffMenu: ; 0x15888 - xor a - scf - ret -; 0x1588b - - -KrisDepositItemMenu: ; 0x1588b - call Function158b8 - jr c, .asm_158b6 - call DisableSpriteUpdates - call LoadStandardMenuDataHeader - callba Function106a5 -.asm_1589c - callba Function106be - ld a, [wcf66] - and a - jr z, .asm_158b3 - call Function158cc - callba CheckRegisteredItem - jr .asm_1589c - -.asm_158b3 - call Function2b3c - -.asm_158b6 - xor a - ret -; 0x158b8 - -Function158b8: ; 0x158b8 - callba Function129d5 - ret nc - ld hl, UnknownText_0x158c7 - call MenuTextBoxBackup - scf - ret -; 0x158c7 - -UnknownText_0x158c7: ; 0x158c7 - ; No items here! - text_jump UnknownText_0x1c13df - db "@" -; 0x158cc - - -Function158cc: ; 0x158cc - ld a, [wc2ce] - push af - ld a, $0 - ld [wc2ce], a - callba CheckItemMenu - ld a, [wItemAttributeParamBuffer] - ld hl, .jumptable - rst JumpTable - pop af - ld [wc2ce], a - ret -; 0x158e7 - -.jumptable: ; 0x158e7 - dw .maybe_use - dw .no_use - dw .no_use - dw .no_use - dw .maybe_use - dw .maybe_use - dw .maybe_use - -.no_use: - ret - -.maybe_use: - ld a, [Buffer1] - push af - ld a, [Buffer2] - push af - call Function1590a - pop af - ld [Buffer2], a - pop af - ld [Buffer1], a - ret -; 0x1590a - -Function1590a: ; 0x1590a - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr z, .asm_1591d - ld a, $1 - ld [wItemQuantityChangeBuffer], a - jr .asm_15933 - -.asm_1591d - ld hl, .HowManyText - call MenuTextBox - callba Function24fbf - push af - call ExitMenu - call ExitMenu - pop af - jr c, .asm_1596c - -.asm_15933 - ld a, [wItemQuantityChangeBuffer] - ld [Buffer1], a - ld a, [wd107] - ld [Buffer2], a - ld hl, PCItems - call ReceiveItem - jr nc, .asm_15965 - ld a, [Buffer1] - ld [wItemQuantityChangeBuffer], a - ld a, [Buffer2] - ld [wd107], a - ld hl, NumItems - call TossItem - predef PartyMonItemName - ld hl, .DepositText - call PrintText - ret - -.asm_15965 - ld hl, .NoRoomText - call PrintText - ret - -.asm_1596c - and a - ret -; 0x1596e - - -.HowManyText ; 0x1596e - text_jump _KrissPCHowManyDepositText - db "@" - -.DepositText ; 0x15973 - text_jump _KrissPCDepositItemsText - db "@" - -.NoRoomText ; 0x15978 - text_jump _KrissPCNoRoomDepositText - db "@" - - -KrisMailBoxMenu: ; 0x1597d - callba _KrisMailBoxMenu - xor a - ret -; 0x15985 - - -Function15985: ; 0x15985 - xor a - ld [wd0e3], a -.asm_15989 - ld a, [wc2ce] - push af - ld a, $0 - ld [wc2ce], a - ld hl, MenuData15a08 - call CopyMenuDataHeader - hlcoord 0, 0 - ld b, $a - ld c, $12 - call TextBox - ld a, [wd0d7] - ld [wMenuCursorBuffer], a - ld a, [wd0dd] - ld [wd0e4], a - call HandleScrollingMenu - ld a, [wd0e4] - ld [wd0dd], a - ld a, [MenuSelection2] - ld [wd0d7], a - pop af - ld [wc2ce], a - ld a, [wd0e3] - and a - jr nz, .asm_159d8 - ld a, [wcf73] - cp $2 - jr z, .asm_15a06 - cp $1 - jr z, .asm_159fb - cp $4 - jr z, .asm_159f2 - jr .asm_159f8 - -.asm_159d8 - ld a, [wcf73] - cp $2 - jr z, .asm_159e9 - cp $1 - jr z, .asm_159ef - cp $4 - jr z, .asm_159ef - jr .asm_159f8 - -.asm_159e9 - xor a - ld [wd0e3], a - jr .asm_159f8 - -.asm_159ef - call Function156c7 - -.asm_159f2 - callba Function2490c - -.asm_159f8 - jp .asm_15989 - -.asm_159fb - callba Function24706 - call Function1bee - and a - ret - -.asm_15a06 - scf - ret -; 0x15a08 - -MenuData15a08: ; 0x15a08 - db %01000000 - db 1, 4 ; start coords - db 10, 18 ; end coords - dw .MenuData2 - db 1 ; default option - -.MenuData2 - db %10110000 - db 4, 8 ; rows/cols? - db 2 ; horizontal spacing? - dbw 0, PCItems - dba PlaceMenuItemName - dba PlaceMenuItemQuantity - dba Function244c3 - -PC_DisplayText: ; 15a20 - call MenuTextBox - call ExitMenu - ret -; 15a27 - - -UnknownText_0x15a27: ; 0x15a27 - ; turned on the PC. - text_jump UnknownText_0x1c144d - db "@" -; 0x15a2c - -UnknownText_0x15a2c: ; 0x15a2c - ; Access whose PC? - text_jump UnknownText_0x1c1462 - db "@" -; 0x15a31 - -UnknownText_0x15a31: ; 0x15a31 - ; BILL's PC accessed. #MON Storage System opened. - text_jump UnknownText_0x1c1474 - db "@" -; 0x15a36 - -UnknownText_0x15a36: ; 0x15a36 - ; Accessed own PC. Item Storage System opened. - text_jump UnknownText_0x1c14a4 - db "@" -; 0x15a3b - -UnknownText_0x15a3b: ; 0x15a3b - ; PROF.OAK's PC accessed. #DEX Rating System opened. - text_jump UnknownText_0x1c14d2 - db "@" -; 0x15a40 - -UnknownText_0x15a40: ; 0x15a40 - ; … Link closed… - text_jump UnknownText_0x1c1505 - db "@" -; 0x15a45 - +INCLUDE "engine/pokecenter_pc.asm" INCLUDE "engine/mart.asm" -GiveMoney:: ; 15fd7 - ld a, $3 - call AddMoney - ld bc, MaxMoney - ld a, $3 - call CompareMoney - jr z, .asm_15ff5 - jr c, .asm_15ff5 - ld hl, MaxMoney - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - scf - ret - -.asm_15ff5 - and a - ret -; 15ff7 - -MaxMoney: ; 15ff7 - dt 999999 -; 15ffa - - -TakeMoney:: ; 15ffa - ld a, 3 - call SubtractMoney - jr nc, .asm_16009 - xor a - ld [de], a - inc de - ld [de], a - inc de - ld [de], a - scf - ret - -.asm_16009 - and a - ret -; 1600b - -CompareMoney:: ; 1600b - ld a, $3 -CompareFunds: ; 1600d - push hl - push de - push bc - ld h, b - ld l, c - ld c, $0 - ld b, a -.loop1 - dec a - jr z, .done - inc de - inc hl - jr .loop1 - -.done - and a -.loop2 - ld a, [de] - sbc [hl] - jr z, .okay - inc c - -.okay - dec de - dec hl - dec b - jr nz, .loop2 - jr c, .set_carry - ld a, c - and a - jr .skip_carry - -.set_carry - ld a, $1 - and a - scf - -.skip_carry - pop bc - pop de - pop hl - ret -; 16035 - -SubtractMoney: ; 16035 - ld a, 3 -SubtractFunds: ; 16037 - push hl - push de - push bc - ld h, b - ld l, c - ld b, a - ld c, 0 -.loop - dec a - jr z, .done - inc de - inc hl - jr .loop - -.done - and a -.loop2 - ld a, [de] - sbc [hl] - ld [de], a - dec de - dec hl - dec b - jr nz, .loop2 - pop bc - pop de - pop hl - ret -; 16053 - -AddMoney: ; 16053 - ld a, $3 -AddFunds: ; 16055 - push hl - push de - push bc - ld h, b - ld l, c - ld b, a -.loop1 - dec a - jr z, .done - inc de - inc hl - jr .loop1 - -.done - and a -.loop2 - ld a, [de] - adc [hl] - ld [de], a - dec de - dec hl - dec b - jr nz, .loop2 - pop bc - pop de - pop hl - ret -; 1606f - -GiveCoins:: ; 1606f - ld a, 2 - ld de, Coins - call AddFunds - ld a, 2 - ld bc, .maxcoins - call CompareFunds - jr c, .not_maxed - ld hl, .maxcoins - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - scf - ret - -.not_maxed - and a - ret -; 1608d - -.maxcoins: ; 1608d - bigdw 9999 -; 1608f - - -TakeCoins:: ; 1608f - ld a, 2 - ld de, Coins - call SubtractFunds - jr nc, .asm_1609f - xor a - ld [de], a - inc de - ld [de], a - scf - ret - -.asm_1609f - and a - ret -; 160a1 - -CheckCoins:: ; 160a1 - ld a, $2 - ld de, Coins - jp CompareFunds -; 160a9 - +INCLUDE "engine/money.asm" INCLUDE "items/marts.asm" INCLUDE "event/mom.asm" -Special_DayCareMan: ; 166d6 - ld hl, wDaycareMan - bit 0, [hl] - jr nz, .asm_166fe - ld hl, wDaycareMan - ld a, $0 - call Function1678f - jr c, .asm_16724 - call Function16798 - jr c, .asm_16721 - callba Functionde2a - ld hl, wDaycareMan - set 0, [hl] - call Function167f6 - call Function16a3b - ret - -.asm_166fe - callba Functione698 - ld hl, wBreedMon1Nick - call Function1686d - call Function16807 - jr c, .asm_16721 - callba Functiondd21 - call Function16850 - ld hl, wDaycareMan - res 0, [hl] - res 5, [hl] - jr .asm_16724 - -.asm_16721 - call Function1689b - -.asm_16724 - ld a, $13 - call Function1689b - ret -; 1672a - -Special_DayCareLady: ; 1672a - ld hl, wDaycareLady - bit 0, [hl] - jr nz, .asm_16752 - ld hl, wDaycareLady - ld a, $2 - call Function16781 - jr c, .asm_1677b - call Function16798 - jr c, .asm_16778 - callba Functionde37 - ld hl, wDaycareLady - set 0, [hl] - call Function167f6 - call Function16a3b - ret - -.asm_16752 - callba Functione6b3 - ld hl, wBreedMon2Nick - call Function1686d - call Function16807 - jr c, .asm_16778 - callba Functiondd42 - call Function16850 - ld hl, wDaycareLady - res 0, [hl] - ld hl, wDaycareMan - res 5, [hl] - jr .asm_1677b - -.asm_16778 - call Function1689b - -.asm_1677b - ld a, $13 - call Function1689b - ret -; 16781 - -Function16781: ; 16781 - bit 7, [hl] - jr nz, .asm_16788 - set 7, [hl] - inc a - -.asm_16788 - call Function1689b - call YesNoBox - ret -; 1678f - -Function1678f: ; 1678f - set 7, [hl] - call Function1689b - call YesNoBox - ret -; 16798 - -Function16798: ; 16798 - ld a, [PartyCount] - cp 2 - jr c, .asm_167e5 - ld a, 4 - call Function1689b - ld b, 6 - callba Function5001d - jr c, .asm_167dd - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_167e1 - callba CheckCurPartyMonFainted - jr c, .asm_167e9 - ld hl, PartyMon1Item - ld bc, PARTYMON_STRUCT_LENGTH - ld a, [CurPartyMon] - call AddNTimes - ld d, [hl] - callba ItemIsMail - jr c, .asm_167ed - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - and a - ret - -.asm_167dd - ld a, $12 - scf - ret - -.asm_167e1 - ld a, $6 - scf - ret - -.asm_167e5 - ld a, $7 - scf - ret - -.asm_167e9 - ld a, $8 - scf - ret - -.asm_167ed - ld a, $a - scf - ret -; 167f1 - -UnknownText_0x167f1: ; 0x167f1 - ; - text_jump UnknownText_0x1bdaa7 - db "@" -; 0x167f6 - -Function167f6: ; 167f6 - ld a, $5 - call Function1689b - ld a, [CurPartySpecies] - call PlayCry - ld a, $9 - call Function1689b - ret -; 16807 - -Function16807: ; 16807 - ld a, [StringBuffer2 + 1] - and a - jr nz, .asm_16819 - ld a, $f - call Function1689b - call YesNoBox - jr c, .asm_16844 - jr .asm_1682d - -.asm_16819 - ld a, $b - call Function1689b - call YesNoBox - jr c, .asm_16844 - ld a, $c - call Function1689b - call YesNoBox - jr c, .asm_16844 - -.asm_1682d - ld de, Money - ld bc, StringBuffer2 + 2 - callba CompareMoney - jr c, .asm_16848 - ld a, [PartyCount] - cp $6 - jr nc, .asm_1684c - and a - ret - -.asm_16844 - ld a, $12 - scf - ret - -.asm_16848 - ld a, $11 - scf - ret - -.asm_1684c - ld a, $10 - scf - ret -; 16850 - -Function16850: ; 16850 - ld bc, StringBuffer2 + 2 - ld de, Money - callba TakeMoney - ld a, $d - call Function1689b - ld a, [CurPartySpecies] - call PlayCry - ld a, $e - call Function1689b - ret -; 1686d - -Function1686d: ; 1686d - ld a, b - ld [StringBuffer2], a - ld a, d - ld [StringBuffer2 + 1], a - ld de, StringBuffer1 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, 0 - ld bc, $64 - ld a, [StringBuffer2 + 1] - call AddNTimes - ld de, $64 - add hl, de - xor a - ld [StringBuffer2 + 2], a - ld a, h - ld [StringBuffer2 + 3], a - ld a, l - ld [StringBuffer2 + 4], a - ret -; 1689b - -Function1689b: ; 1689b - ld e, a - ld d, 0 - ld hl, TextTable_168aa -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ret -; 168aa - -TextTable_168aa: ; 168aa - dw UnknownText_0x168d2 - dw UnknownText_0x168d7 - dw UnknownText_0x168dc - dw UnknownText_0x168e1 - dw UnknownText_0x168e6 - dw UnknownText_0x168ff - dw UnknownText_0x168f0 - dw UnknownText_0x168eb - dw UnknownText_0x168fa - dw UnknownText_0x16904 - dw UnknownText_0x168f5 - dw UnknownText_0x16909 - dw UnknownText_0x1690e - dw UnknownText_0x16913 - dw UnknownText_0x16918 - dw UnknownText_0x1691d - dw UnknownText_0x16922 - dw UnknownText_0x16927 - dw UnknownText_0x1692c - dw UnknownText_0x16931 -; 168d2 - -UnknownText_0x168d2: ; 0x168d2 - ; I'm the DAY-CARE MAN. Want me to raise a #MON? - text_jump UnknownText_0x1bdaa9 - db "@" -; 0x168d7 - -UnknownText_0x168d7: ; 0x168d7 - ; I'm the DAY-CARE MAN. Do you know about EGGS? I was raising #MON with my wife, you see. We were shocked to find an EGG! How incredible is that? So, want me to raise a #MON? - text_jump UnknownText_0x1bdad8 - db "@" -; 0x168dc - -UnknownText_0x168dc: ; 0x168dc - ; I'm the DAY-CARE LADY. Should I raise a #MON for you? - text_jump UnknownText_0x1bdb85 - db "@" -; 0x168e1 - -UnknownText_0x168e1: ; 0x168e1 - ; I'm the DAY-CARE LADY. Do you know about EGGS? My husband and I were raising some #MON, you see. We were shocked to find an EGG! How incredible could that be? Should I raise a #MON for you? - text_jump UnknownText_0x1bdbbb - db "@" -; 0x168e6 - -UnknownText_0x168e6: ; 0x168e6 - ; What should I raise for you? - text_jump UnknownText_0x1bdc79 - db "@" -; 0x168eb - -UnknownText_0x168eb: ; 0x168eb - ; Oh? But you have just one #MON. - text_jump UnknownText_0x1bdc97 - db "@" -; 0x168f0 - -UnknownText_0x168f0: ; 0x168f0 - ; Sorry, but I can't accept an EGG. - text_jump UnknownText_0x1bdcb8 - db "@" -; 0x168f5 - -UnknownText_0x168f5: ; 0x168f5 - ; Remove MAIL before you come see me. - text_jump UnknownText_0x1bdcda - db "@" -; 0x168fa - -UnknownText_0x168fa: ; 0x168fa - ; If you give me that, what will you battle with? - text_jump UnknownText_0x1bdcff - db "@" -; 0x168ff - -UnknownText_0x168ff: ; 0x168ff - ; OK. I'll raise your @ . - text_jump UnknownText_0x1bdd30 - db "@" -; 0x16904 - -UnknownText_0x16904: ; 0x16904 - ; Come back for it later. - text_jump UnknownText_0x1bdd4b - db "@" -; 0x16909 - -UnknownText_0x16909: ; 0x16909 - ; Are we geniuses or what? Want to see your @ ? - text_jump UnknownText_0x1bdd64 - db "@" -; 0x1690e - -UnknownText_0x1690e: ; 0x1690e - ; Your @ has grown a lot. By level, it's grown by @ . If you want your #MON back, it will cost ¥@ . - text_jump UnknownText_0x1bdd96 - db "@" -; 0x16913 - -UnknownText_0x16913: ; 0x16913 - ; Perfect! Here's your #MON. - text_jump UnknownText_0x1bde04 - db "@" -; 0x16918 - -UnknownText_0x16918: ; 0x16918 - ; got back @ . - text_jump UnknownText_0x1bde1f - db "@" -; 0x1691d - -UnknownText_0x1691d: ; 0x1691d - ; Huh? Back already? Your @ needs a little more time with us. If you want your #MON back, it will cost ¥100. - text_jump UnknownText_0x1bde32 - db "@" -; 0x16922 - -UnknownText_0x16922: ; 0x16922 - ; You have no room for it. - text_jump UnknownText_0x1bdea2 - db "@" -; 0x16927 - -UnknownText_0x16927: ; 0x16927 - ; You don't have enough money. - text_jump UnknownText_0x1bdebc - db "@" -; 0x1692c - -UnknownText_0x1692c: ; 0x1692c - ; Oh, fine then. - text_jump UnknownText_0x1bded9 - db "@" -; 0x16931 - -UnknownText_0x16931: ; 0x16931 - ; Come again. - text_jump UnknownText_0x1bdee9 - db "@" -; 0x16936 - -Special_DayCareManOutside: ; 16936 - ld hl, wDaycareMan - bit 6, [hl] - jr nz, Function16949 - ld hl, UnknownText_0x16944 - call PrintText - ret - -UnknownText_0x16944: ; 0x16944 - ; Not yet… - text_jump UnknownText_0x1bdef6 - db "@" -; 0x16949 - -Function16949: ; 16949 - ld hl, UnknownText_0x16993 - call PrintText - call YesNoBox - jr c, .asm_1697c - ld a, [PartyCount] - cp PARTY_LENGTH - jr nc, .asm_16987 - call Function169ac - ld hl, wDaycareMan - res 6, [hl] - call Function16a3b - ld hl, UnknownText_0x16998 - call PrintText - ld de, SFX_GET_EGG_FROM_DAYCARE_LADY - call PlaySFX - ld c, 120 - call DelayFrames - ld hl, UnknownText_0x1699d - jr .asm_1697f - -.asm_1697c - ld hl, UnknownText_0x169a2 - -.asm_1697f - call PrintText - xor a - ld [ScriptVar], a - ret - -.asm_16987 - ld hl, UnknownText_0x169a7 - call PrintText - ld a, $1 - ld [ScriptVar], a - ret -; 16993 - -UnknownText_0x16993: ; 0x16993 - ; Ah, it's you! We were raising your #MON, and my goodness, were we surprised! Your #MON had an EGG! We don't know how it got there, but your #MON had it. You want it? - text_jump UnknownText_0x1bdf00 - db "@" -; 0x16998 - -UnknownText_0x16998: ; 0x16998 - ; received the EGG! - text_jump UnknownText_0x1bdfa5 - db "@" -; 0x1699d - -UnknownText_0x1699d: ; 0x1699d - ; Take good care of it. - text_jump UnknownText_0x1bdfba - db "@" -; 0x169a2 - -UnknownText_0x169a2: ; 0x169a2 - ; Well then, I'll keep it. Thanks! - text_jump UnknownText_0x1bdfd1 - db "@" -; 0x169a7 - -UnknownText_0x169a7: ; 0x169a7 - ; You have no room in your party. Come back later. - text_jump UnknownText_0x1bdff2 - db "@" -; 0x169ac - -Function169ac: ; 169ac - ld a, [wEggMonLevel] - ld [CurPartyLevel], a - ld hl, PartyCount - ld a, [hl] - cp PARTY_LENGTH - jr nc, .asm_16a2f - inc a - ld [hl], a - ld c, a - ld b, 0 - add hl, bc - ld a, EGG - ld [hli], a - ld a, [wEggMonSpecies] - ld [CurSpecies], a - ld [CurPartySpecies], a - ld a, $ff - ld [hl], a - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call Function16a31 - ld hl, wEggNick - call CopyBytes - ld hl, PartyMonOT - ld bc, NAME_LENGTH - call Function16a31 - ld hl, wEggOT - call CopyBytes - ld hl, PartyMon1 - ld bc, PARTYMON_STRUCT_LENGTH - call Function16a31 - ld hl, wEggMon - ld bc, wEggMonEnd - wEggMon - call CopyBytes - call GetBaseData - ld a, [PartyCount] - dec a - ld hl, PartyMon1 - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld b, h - ld c, l - ld hl, MON_ID + 1 - add hl, bc - push hl - ld hl, MON_MAXHP - add hl, bc - ld d, h - ld e, l - pop hl - push bc - ld b, $0 - predef CalcPkmnStats - pop bc - ld hl, MON_HP - add hl, bc - xor a - ld [hli], a - ld [hl], a - and a - ret - -.asm_16a2f - scf - ret -; 16a31 - -Function16a31: ; 16a31 - ld a, [PartyCount] - dec a - call AddNTimes - ld d, h - ld e, l - ret -; 16a3b - -Function16a3b: ; 16a3b - ld a, [wDaycareLady] - bit 0, a - ret z - ld a, [wDaycareMan] - bit 0, a - ret z - callab Function16e1d - ld a, [wd265] - and a - ret z - inc a - ret z - ld hl, wDaycareMan - set 5, [hl] -.asm_16a59 - call Random - cp 150 - jr c, .asm_16a59 - ld [wStepsToEgg], a - jp Function16a66 -; 16a66 - -Function16a66: ; 16a66 - xor a - ld hl, wEggMon - ld bc, wEggMonEnd - wEggMon - call ByteFill - ld hl, wEggNick - ld bc, PKMN_NAME_LENGTH - call ByteFill - ld hl, wEggOT - ld bc, NAME_LENGTH - call ByteFill - ld a, [wBreedMon1DVs] - ld [TempMonDVs], a - ld a, [wBreedMon1DVs + 1] - ld [TempMonDVs + 1], a - ld a, [wBreedMon1Species] - ld [CurPartySpecies], a - ld a, $3 - ld [MonType], a - ld a, [wBreedMon1Species] - cp DITTO - ld a, $1 - jr z, .asm_16ab6 - ld a, [wBreedMon2Species] - cp DITTO - ld a, $0 - jr z, .asm_16ab6 - callba GetGender - ld a, $0 - jr z, .asm_16ab6 - inc a - -.asm_16ab6 - ld [wDittoInDaycare], a - and a - ld a, [wBreedMon1Species] - jr z, .asm_16ac2 - ld a, [wBreedMon2Species] - -.asm_16ac2 - ld [CurPartySpecies], a - callab GetPreEvolution - callab GetPreEvolution - ld a, EGG_LEVEL - ld [CurPartyLevel], a - - ld a, [CurPartySpecies] - cp NIDORAN_F - jr nz, .asm_16ae8 - call Random - cp $80 - ld a, NIDORAN_F - jr c, .asm_16ae8 - ld a, NIDORAN_M -.asm_16ae8 - ld [CurPartySpecies], a - ld [CurSpecies], a - ld [wEggMonSpecies], a - - call GetBaseData - ld hl, wEggNick - ld de, String_16be0 - call CopyName2 - ld hl, PlayerName - ld de, wEggOT - ld bc, NAME_LENGTH - call CopyBytes - xor a - ld [wEggMonItem], a - ld de, wEggMonMoves - xor a - ld [Buffer1], a - predef FillMoves - callba Function170bf - ld hl, wEggMonID - ld a, [PlayerID] - ld [hli], a - ld a, [PlayerID + 1] - ld [hl], a - ld a, [CurPartyLevel] - ld d, a - callab CalcExpAtLevel - ld hl, wEggMonExp - ld a, [hMultiplicand] - ld [hli], a - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hl], a - xor a - ld b, $a - ld hl, wEggMonStatExp -.asm_16b46 - ld [hli], a - dec b - jr nz, .asm_16b46 - ld hl, wEggMonDVs - call Random - ld [hli], a - ld [TempMonDVs], a - call Random - ld [hld], a - ld [TempMonDVs + 1], a - ld de, wBreedMon1DVs - ld a, [wBreedMon1Species] - cp DITTO - jr z, .asm_16b98 - ld de, wBreedMon2DVs - ld a, [wBreedMon2Species] - cp DITTO - jr z, .asm_16b98 - ld a, $3 - ld [MonType], a - push hl - callba GetGender - pop hl - ld de, wBreedMon1DVs - ld bc, wBreedMon2DVs - jr c, .asm_16bab - jr z, .asm_16b90 - ld a, [wDittoInDaycare] - and a - jr z, .asm_16b98 - ld d, b - ld e, c - jr .asm_16b98 - -.asm_16b90 - ld a, [wDittoInDaycare] - and a - jr nz, .asm_16b98 - ld d, b - ld e, c - -.asm_16b98 - ld a, [de] - inc de - and $f - ld b, a - ld a, [hl] - and $f0 - add b - ld [hli], a - ld a, [de] - and $7 - ld b, a - ld a, [hl] - and $f8 - add b - ld [hl], a - -.asm_16bab - ld hl, StringBuffer1 - ld de, wd050 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, wEggMonMoves - ld de, wEggMonPP - predef FillPP - ld hl, wd050 - ld de, StringBuffer1 - ld bc, NAME_LENGTH - call CopyBytes - ld a, [BaseEggSteps] - ld hl, wEggMonHappiness - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - ld a, [CurPartyLevel] - ld [wEggMonLevel], a - ret -; 16be0 - -String_16be0: ; 16be0 - db "EGG@" -; 16be4 +INCLUDE "event/daycare.asm" Function16be4: ; 16be4 ld a, [UnownDex] @@ -16627,13 +14946,13 @@ _KrisDecorationMenu: ; 0x2675c ld a, [wd1ef] ld [wMenuCursorBuffer], a call Function26806 - call Function1e5d + call DoNthMenu ld a, [MenuSelection2] ld [wd1ef], a jr c, .asm_2678e ld a, [MenuSelection] ld hl, Unknown_267aa - call Function1fa7 + call MenuJumptable jr nc, .asm_2676f .asm_2678e @@ -16657,7 +14976,7 @@ MenuData2_0x267a2: ; 0x267a2 db $a0 ; flags db 0 ; items dw wd002 - dw Function1f8d + dw PlaceNthMenuStrings dw Unknown_267aa ; 0x267aa @@ -16942,7 +15261,7 @@ Function2695b: ; 2695b ld [wcf76], a ld hl, MenuDataHeader_0x269b5 call LoadMenuDataHeader - call Function1e5d + call DoNthMenu jr c, .no_action_1 call DoDecorationAction2 @@ -37118,7 +35437,7 @@ HallOfFame:: ; 0x8640e callba Function14da0 - ld hl, wd95e + ld hl, wHallOfFameCount ld a, [hl] cp 200 jr nc, .ok @@ -37249,7 +35568,7 @@ GetHallOfFameParty: ; 8653f ld bc, HOF_LENGTH xor a call ByteFill - ld a, [wd95e] + ld a, [wHallOfFameCount] ld de, OverworldMap ld [de], a inc de @@ -37387,18 +35706,18 @@ endr ; 86635 Function86635: ; 86635 -.asm_86635 +.loop ld a, [hSCX] cp $70 ret z add $4 ld [hSCX], a call DelayFrame - jr .asm_86635 + jr .loop ; 86643 Function86643: ; 86643 -.asm_86643 +.loop ld a, [hSCX] and a ret z @@ -37407,54 +35726,54 @@ rept 2 endr ld [hSCX], a call DelayFrame - jr .asm_86643 + jr .loop ; 86650 -Function86650: ; 86650 +_HallOfFamePC: ; 86650 call LoadFontsBattleExtra xor a ld [wJumptableIndex], a -.asm_86657 +.loop call Function8671c ret c call Function86665 ret c ld hl, wJumptableIndex inc [hl] - jr .asm_86657 + jr .loop ; 86665 Function86665: ; 86665 xor a ld [wcf64], a -.asm_86669 +.next call Function86692 - jr c, .asm_86690 -.asm_8666e + jr c, .start_button +.loop call JoyTextDelay ld hl, hJoyLast ld a, [hl] and B_BUTTON - jr nz, .asm_8668e + jr nz, .b_button ld a, [hl] and A_BUTTON - jr nz, .asm_86688 + jr nz, .a_button ld a, [hl] and START - jr nz, .asm_86690 + jr nz, .start_button call DelayFrame - jr .asm_8666e + jr .loop -.asm_86688 +.a_button ld hl, wcf64 inc [hl] - jr .asm_86669 + jr .next -.asm_8668e +.b_button scf ret -.asm_86690 +.start_button and a ret ; 86692 @@ -37464,33 +35783,33 @@ Function86692: ; 86692 ; If that number is above 200, print "HOF Master!" instead. ld a, [wcf64] cp $6 - jr nc, .asm_866a7 + jr nc, .fail ld hl, wc608 + 1 ld bc, $10 call AddNTimes ld a, [hl] cp $ff - jr nz, .asm_866a9 + jr nz, .okay -.asm_866a7 +.fail scf ret -.asm_866a9 +.okay push hl call ClearBGPalettes pop hl call Function86748 ld a, [wc608] cp 200 + 1 - jr c, .asm_866c6 + jr c, .print_num_hof ld de, String_866fc hlcoord 1, 2 call PlaceString hlcoord 13, 2 - jr .asm_866de + jr .finish -.asm_866c6 +.print_num_hof ld de, String_8670c hlcoord 1, 2 call PlaceString @@ -37500,7 +35819,7 @@ Function86692: ; 86692 call PrintNum hlcoord 11, 2 -.asm_866de +.finish ld de, String_866fb call PlaceString call WaitBGMap @@ -37530,7 +35849,7 @@ String_8670c: Function8671c: ; 8671c ld a, [wJumptableIndex] cp NUM_HOF_TEAMS - jr nc, .asm_86746 + jr nc, .full ld hl, sHallOfFame ld bc, HOF_LENGTH call AddNTimes @@ -37538,7 +35857,7 @@ Function8671c: ; 8671c call GetSRAMBank ld a, [hl] and a - jr z, .asm_86743 + jr z, .fail ld de, wc608 ld bc, HOF_LENGTH call CopyBytes @@ -37546,10 +35865,10 @@ Function8671c: ; 8671c and a ret -.asm_86743 +.fail call CloseSRAM -.asm_86746 +.full scf ret ; 86748 @@ -37595,7 +35914,7 @@ Function86748: ; 86748 call _PrepMonFrontpic ld a, [CurPartySpecies] cp EGG - jr z, .asm_867f8 + jr z, .print_id_no hlcoord 1, 13 ld a, $74 ld [hli], a @@ -37610,30 +35929,30 @@ Function86748: ; 86748 ld a, $3 ld [MonType], a callba GetGender - ld a, $7f - jr c, .asm_867e2 - ld a, $ef - jr nz, .asm_867e2 - ld a, $f5 + ld a, " " + jr c, .got_gender + ld a, "♂" + jr nz, .got_gender + ld a, "♀" -.asm_867e2 +.got_gender hlcoord 18, 13 ld [hli], a hlcoord 8, 14 - ld a, $f3 + ld a, "/" ld [hli], a ld de, StringBuffer2 call PlaceString hlcoord 1, 16 call PrintLevel -.asm_867f8 +.print_id_no hlcoord 7, 16 - ld a, $73 + ld a, "<ID>" ld [hli], a - ld a, $74 + ld a, "№" ld [hli], a - ld [hl], $f3 + ld [hl], "/" hlcoord 10, 16 ld de, TempMonID lb bc, PRINTNUM_LEADINGZEROS | 2, 5 @@ -38056,318 +36375,7 @@ Function8c7c9: ; unreferenced ret ; 8c7d4 -PlayWhirlpoolSound: ; 8c7d4 - call WaitSFX - ld de, SFX_SURF - call PlaySFX - call WaitSFX - ret -; 8c7e1 - -BlindingFlash: ; 8c7e1 - callba FadeOutPalettes - ld hl, StatusFlags - set 2, [hl] - callba Function8c0e5 - callba Function8c001 - ld b, SCGB_09 - call GetSGBLayout - callba Function49409 - callba FadeInPalettes - ret -; 8c80a - -ShakeHeadbuttTree: ; 8c80a - callba Function8cf53 - ld de, CutGrassGFX - ld hl, VTiles1 - lb bc, BANK(CutGrassGFX), 4 - call Request2bpp - ld de, HeadbuttTreeGFX - ld hl, VTiles1 tile $04 - lb bc, BANK(HeadbuttTreeGFX), 8 - call Request2bpp - call Function8cad3 - ld a, SPRITE_ANIM_INDEX_1B - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $84 - ld a, $90 - ld [wc3b5], a - callba Function8cf7a - call GetHeadbuttTreeRelativeLocation - ld a, $20 - ld [wcf64], a - call WaitSFX - ld de, SFX_SANDSTORM - call PlaySFX -.loop - ld hl, wcf64 - ld a, [hl] - and a - jr z, .done - dec [hl] - ld a, $90 - ld [wc3b5], a - callba Function8cf7a - call DelayFrame - jr .loop - -.done - call OverworldTextModeSwitch - call WaitBGMap - xor a - ld [hBGMapMode], a - callba Function8cf53 - ld hl, Sprites + $90 - ld bc, $10 - xor a - call ByteFill - ld de, Font - ld hl, VTiles1 - lb bc, BANK(Font), $c - call Get1bpp - call ReplaceKrisSprite - ret -; 8c893 - -HeadbuttTreeGFX: ; 8c893 -INCBIN "gfx/unknown/08c893.2bpp" -; 8c913 - -GetHeadbuttTreeRelativeLocation: ; 8c913 - xor a - ld [hBGMapMode], a - ld a, [PlayerDirection] - and %00001100 - srl a - ld e, a - ld d, 0 - ld hl, TreeRelativeLocationTable - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - - ld a, $5 - ld [hli], a - ld [hld], a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a - ld [hld], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 8c938 - -TreeRelativeLocationTable: ; 8c938 - dwcoord 8, 8 + 2 ; RIGHT - dwcoord 8, 8 - 2 ; LEFT - dwcoord 8 - 2, 8 ; DOWN - dwcoord 8 + 2, 8 ; UP -; 8c940 - -OWCutAnimation: ; 8c940 - ld a, e - and $1 - ld [wJumptableIndex], a - call .LoadCutGFX - call WaitSFX - ld de, SFX_PLACE_PUZZLE_PIECE_DOWN - call PlaySFX -.loop - ld a, [wJumptableIndex] - bit 7, a - jr nz, .finish - ld a, $90 - ld [wc3b5], a - callab Function8cf7a - call OWCutJumptable - call DelayFrame - jr .loop - -.finish - ret -; 8c96d - -.LoadCutGFX: ; 8c96d - callab Function8cf53 ; pointless to farcall - ld de, CutGrassGFX - ld hl, VTiles1 - lb bc, BANK(CutGrassGFX), 4 - call Request2bpp - ld de, CutTreeGFX - ld hl, VTiles1 tile $4 - lb bc, BANK(CutTreeGFX), 4 - call Request2bpp - ret -; 8c98c - -CutTreeGFX: ; c898c -INCBIN "gfx/misc/cut_tree.2bpp" -; c89cc - -CutGrassGFX: ; 8c9cc -INCBIN "gfx/misc/cut_grass.2bpp" -; 8ca0c - -OWCutJumptable: ; 8ca0c - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8ca1b - - -.jumptable: ; 8ca1b (23:4a1b) - dw Function8ca23 - dw Function8ca3c - dw Function8ca5c - dw Function8ca64 - - -Function8ca23: ; 8ca23 (23:4a23) - call Function8cad3 - ld a, SPRITE_ANIM_INDEX_17 ; leaf - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $84 - ld a, $20 - ld [wcf64], a - ld hl, wJumptableIndex -rept 2 - inc [hl] -endr - ret - -Function8ca3c: ; 8ca3c (23:4a3c) - call Function8ca8e - xor a - call Function8ca73 - ld a, $10 - call Function8ca73 - ld a, $20 - call Function8ca73 - ld a, $30 - call Function8ca73 - ld a, $20 - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - ret - -Function8ca5c: ; 8ca5c (23:4a5c) - ld a, $1 - ld [hBGMapMode], a - ld hl, wJumptableIndex - inc [hl] - -Function8ca64: ; 8ca64 (23:4a64) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_8ca6d - dec [hl] - ret -.asm_8ca6d - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function8ca73: ; 8ca73 (23:4a73) - push de - push af - ld a, SPRITE_ANIM_INDEX_16 ; fly takeoff - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $80 - ld hl, $e - add hl, bc - ld [hl], $4 - pop af - ld hl, $c - add hl, bc - ld [hl], a - pop de - ret - -Function8ca8e: ; 8ca8e (23:4a8e) - ld de, 0 - ld a, [wd197] - bit 0, a - jr z, .asm_8ca9a - set 0, e -.asm_8ca9a - ld a, [wd196] - bit 0, a - jr z, .asm_8caa3 - set 1, e -.asm_8caa3 - ld a, [PlayerDirection] - and $c - add e - ld e, a - ld hl, Unknown_8cab3 -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ret -; 8cab3 (23:4ab3) - -Unknown_8cab3: ; 8cab3 - db $58, $60 - db $48, $60 - db $58, $70 - db $48, $70 - db $58, $40 - db $48, $40 - db $58, $50 - db $48, $50 - db $38, $60 - db $48, $60 - db $38, $50 - db $48, $50 - db $58, $60 - db $68, $60 - db $58, $50 - db $68, $50 -; 8cad3 - -Function8cad3: ; 8cad3 (23:4ad3) - ld a, [PlayerDirection] - and $c - srl a - ld e, a - ld d, 0 - ld hl, Unknown_8cae5 - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ret -; 8cae5 (23:4ae5) - -Unknown_8cae5: ; 8cae5 - db $50, $68 - db $50, $48 - db $40, $58 - db $60, $58 -; 8caed +INCLUDE "event/field_moves.asm" Function8caed: ; 8caed call DelayFrame @@ -38515,491 +36523,7 @@ Function8cbe6: ; 8cbe6 (23:4be6) ld [hl], $80 ret -Special_MagnetTrain: ; 8cc04 - ld a, [ScriptVar] - and a - jr nz, .ToGoldenrod - ld a, 1 ; forwards - lb bc, $40, $60 - ld de, $fca0 - jr .continue - -.ToGoldenrod - ld a, -1 ; backwards - lb bc, $c0, $a0 - ld de, $b460 - -.continue - ld h, a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, h - ld [w5_d191], a - ld a, c - ld [w5_d192], a - ld a, b - ld [w5_d193], a - ld a, e - ld [w5_d194], a - ld a, d - ld [w5_d195], a - ld a, [hSCX] - push af - ld a, [hSCY] - push af - call Function8ccc9 - ld hl, hVBlank - ld a, [hl] - push af - ld [hl], $1 -.loop - ld a, [wJumptableIndex] - and a - jr z, .initialize - bit 7, a - jr nz, .done - callab Function8cf69 - call Function8cdf7 - call Function8cc99 - call Function3b0c - call DelayFrame - jr .loop - -.initialize - call Function8ceae - jr .loop - -.done - pop af - ld [hVBlank], a - call ClearBGPalettes - xor a - ld [hLCDStatCustom], a - ld [hLCDStatCustom + 1], a - ld [hLCDStatCustom + 2], a - ld [hSCX], a - ld [Requested2bppSource], a - ld [Requested2bppSource + 1], a - ld [Requested2bppDest], a - ld [Requested2bppDest + 1], a - ld [Requested2bpp], a - call ClearTileMap - pop af - ld [hSCY], a - pop af - ld [hSCX], a - xor a - ld [hBGMapMode], a - pop af - ld [rSVBK], a - ret -; 8cc99 - -Function8cc99: ; 8cc99 - ld hl, LYOverridesBackup - ld c, $2f - ld a, [wcf64] - add a - ld [hSCX], a - call Function8ccc4 - ld c, $30 - ld a, [wcf65] - call Function8ccc4 - ld c, $31 - ld a, [wcf64] - add a - call Function8ccc4 - ld a, [wd191] - ld d, a - ld hl, wcf64 - ld a, [hl] -rept 2 - add d -endr - ld [hl], a - ret -; 8ccc4 - -Function8ccc4: ; 8ccc4 -.asm_8ccc4 - ld [hli], a - dec c - jr nz, .asm_8ccc4 - ret -; 8ccc9 - -Function8ccc9: ; 8ccc9 - call ClearBGPalettes - call ClearSprites - call DisableLCD - callab Function8cf53 - call SetMagnetTrainPals - call DrawMagnetTrain - ld a, $90 - ld [hWY], a - call EnableLCD - xor a - ld [hBGMapMode], a - ld [hSCX], a - ld [hSCY], a - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba GetPlayerIcon - pop af - ld [rSVBK], a - ld hl, VTiles0 - ld c, $4 - call Request2bpp - ld hl, $c0 - add hl, de - ld d, h - ld e, l - ld hl, VTiles0 tile $04 - ld c, $4 - call Request2bpp - call Function8cda6 - ld hl, wJumptableIndex - xor a - ld [hli], a - ld a, [wd192] -rept 3 - ld [hli], a -endr - ld de, MUSIC_MAGNET_TRAIN - call PlayMusic2 - ret -; 8cd27 - -DrawMagnetTrain: ; 8cd27 - ld hl, VBGMap0 - xor a -.asm_8cd2b - call GetMagnetTrainBGTiles - ld b, 32 / 2 - call .FillAlt - inc a - cp $12 - jr c, .asm_8cd2b - ld hl, VBGMap0 tile $0c - ld de, MagnetTrainTilemap1 - ld c, 20 - call .FillLine - ld hl, VBGMap0 tile $0e - ld de, MagnetTrainTilemap2 - ld c, 20 - call .FillLine - ld hl, VBGMap0 tile $10 - ld de, MagnetTrainTilemap3 - ld c, 20 - call .FillLine - ld hl, VBGMap0 tile $12 - ld de, MagnetTrainTilemap4 - ld c, 20 - call .FillLine - ret -; 8cd65 - -.FillLine ; 8cd65 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .FillLine - ret -; 8cd6c - -.FillAlt ; 8cd6c - ld [hl], e - inc hl - ld [hl], d - inc hl - dec b - jr nz, .FillAlt - ret -; 8cd74 - -GetMagnetTrainBGTiles: ; 8cd74 - push hl - ld e, a - ld d, 0 - ld hl, MagnetTrainBGTiles -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - pop hl - ret -; 8cd82 - -MagnetTrainBGTiles: ; 8cd82 -; Alternating tiles for each line -; of the Magnet Train tilemap. - db $4c, $4d ; bush - db $5c, $5d ; bush - db $4c, $4d ; bush - db $5c, $5d ; bush - db $08, $08 ; fence - db $18, $18 ; fence - db $1f, $1f ; track - db $31, $31 ; track - db $11, $11 ; track - db $11, $11 ; track - db $0d, $0d ; track - db $31, $31 ; track - db $04, $04 ; fence - db $18, $18 ; fence - db $4c, $4d ; bush - db $5c, $5d ; bush - db $4c, $4d ; bush - db $5c, $5d ; bush -; 8cda6 - -Function8cda6: ; 8cda6 - ld hl, LYOverrides - ld bc, $90 - ld a, [wd192] - call ByteFill - ld hl, LYOverridesBackup - ld bc, $90 - ld a, [wd192] - call ByteFill - ld a, $43 - ld [hLCDStatCustom], a - ret -; 8cdc3 - -SetMagnetTrainPals: ; 8cdc3 - ld a, $1 - ld [rVBK], a - - ; bushes - ld hl, VBGMap0 - ld bc, 8 tiles - ld a, $2 - call ByteFill - - ; train - ld hl, VBGMap0 tile $08 - ld bc, 20 tiles - xor a - call ByteFill - - ; more bushes - ld hl, VBGMap0 tile $1c - ld bc, 8 tiles - ld a, $2 - call ByteFill - - ; train window - ld hl, VBGMap0 tile $10 + 7 - ld bc, 6 - ld a, $4 - call ByteFill - - ld a, $0 - ld [rVBK], a - ret -; 8cdf7 - -Function8cdf7: ; 8cdf7 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_8ce06 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 8ce06 - -Jumptable_8ce06: ; 8ce06 - dw Function8ce19 - dw Function8ce6d - dw Function8ce47 - dw Function8ce6d - dw Function8ce7a - dw Function8ce6d - dw Function8cea2 -; 8ce14 - -Function8ce14: ; 8ce14 - ld hl, wJumptableIndex - inc [hl] - ret -; 8ce19 - -Function8ce19: ; 8ce19 - ld d, $55 - ld a, [wd194 + 1] - ld e, a - ld b, SPRITE_ANIM_INDEX_15 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [PlayerGender] - bit 0, a - jr z, .asm_8ce31 - ld b, SPRITE_ANIM_INDEX_1F - -.asm_8ce31 - pop af - ld [rSVBK], a - ld a, b - call _InitSpriteAnimStruct - ld hl, $3 - add hl, bc - ld [hl], $0 - call Function8ce14 - ld a, $80 - ld [wcf66], a - ret -; 8ce47 - -Function8ce47: ; 8ce47 - ld hl, wd193 - ld a, [wcf65] - cp [hl] - jr z, .asm_8ce64 - ld e, a - ld a, [wd191] - xor $ff - inc a - add e - ld [wcf65], a - ld hl, wc3c0 - ld a, [wd191] - add [hl] - ld [hl], a - ret - -.asm_8ce64 - call Function8ce14 - ld a, $80 - ld [wcf66], a - ret -; 8ce6d - -Function8ce6d: ; 8ce6d - ld hl, wcf66 - ld a, [hl] - and a - jr z, .asm_8ce76 - dec [hl] - ret - -.asm_8ce76 - call Function8ce14 - ret -; 8ce7a - -Function8ce7a: ; 8ce7a - ld hl, wd194 - ld a, [wcf65] - cp [hl] - jr z, .asm_8ce9e - ld e, a - ld a, [wd191] - xor $ff - inc a - ld d, a - ld a, e -rept 2 - add d -endr - ld [wcf65], a - ld hl, wc3c0 - ld a, [wd191] - ld d, a - ld a, [hl] -rept 2 - add d -endr - ld [hl], a - ret - - ret - -.asm_8ce9e - call Function8ce14 - ret -; 8cea2 - -Function8cea2: ; 8cea2 - ld a, $80 - ld [wJumptableIndex], a - ld de, SFX_TRAIN_ARRIVED - call PlaySFX - ret -; 8ceae - -Function8ceae: ; 8ceae - callba Function8cf69 - call Function8cdf7 - call Function8cc99 - call Function3b0c - call DelayFrame - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [TimeOfDayPal] - push af - ld a, [wPermission] - push af - ld a, [TimeOfDay] - and $3 - ld [TimeOfDayPal], a - ld a, $1 - ld [wPermission], a - ld b, SCGB_09 - call GetSGBLayout - call UpdateTimePals - ld a, [rBGP] - ld [wcfc7], a - ld a, [rOBP0] - ld [wcfc8], a - ld a, [rOBP1] - ld [wcfc9], a - pop af - ld [wPermission], a - pop af - ld [TimeOfDayPal], a - pop af - ld [rSVBK], a - ret -; 8ceff - -MagnetTrainTilemap1: - db $1f, $05, $06, $0a, $0a - db $0a, $09, $0a, $0a, $0a - db $0a, $0a, $0a, $09, $0a - db $0a, $0a, $0b, $0c, $1f -MagnetTrainTilemap2: - db $14, $15, $16, $1a, $1a - db $1a, $19, $1a, $1a, $1a - db $1a, $1a, $1a, $19, $1a - db $1a, $1a, $1b, $1c, $1d -MagnetTrainTilemap3: - db $24, $25, $26, $27, $07 - db $2f, $29, $28, $28, $28 - db $28, $28, $28, $29, $07 - db $2f, $2a, $2b, $2c, $2d -MagnetTrainTilemap4: - db $20, $1f, $2e, $1f, $17 - db $00, $2e, $1f, $1f, $1f - db $1f, $1f, $1f, $2e, $17 - db $00, $1f, $2e, $1f, $0f -; 8cf4f +INCLUDE "event/magnet_train.asm" Function8cf4f: ; 8cf4f call Function3238 @@ -39550,779 +37074,7 @@ INCLUDE "menu/mon_icons.asm" SECTION "bank24", ROMX, BANK[$24] INCLUDE "engine/phone.asm" - -InitClock: ; 90672 (24:4672) -; Ask the player to set the time. - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - - ld a, $0 - ld [wc2ce], a - ld a, $10 - ld [MusicFade], a - ld a, MUSIC_NONE % $100 - ld [MusicFadeIDLo], a - ld a, MUSIC_NONE / $100 - ld [MusicFadeIDHi], a - ld c, 8 - call DelayFrames - call Function4dd - call ClearTileMap - call ClearSprites - ld b, SCGB_08 - call GetSGBLayout - xor a - ld [hBGMapMode], a - call LoadStandardFont - ld de, GFX_908fb - ld hl, VTiles2 tile $00 - lb bc, BANK(GFX_908fb), 1 - call Request1bpp - ld de, GFX_90903 - ld hl, VTiles2 tile $01 - lb bc, BANK(GFX_90903), 1 - call Request1bpp - ld de, GFX_9090b - ld hl, VTiles2 tile $02 - lb bc, BANK(GFX_9090b), 1 - call Request1bpp - call .ClearScreen - call WaitBGMap - call Function4a3 - ld hl, UnknownText_0x90874 - call PrintText - ld hl, wc608 - ld bc, 50 - xor a - call ByteFill - ld a, $a - ld [wInitHourBuffer], a - -.loop - ld hl, UnknownText_0x90879 - call PrintText - hlcoord 3, 7 - ld b, 2 - ld c, 15 - call TextBox - hlcoord 11, 7 - ld [hl], $1 - hlcoord 11, 10 - ld [hl], $2 - hlcoord 4, 9 - call DisplayHourOClock - ld c, 10 - call DelayFrames - -.SetHourLoop - call JoyTextDelay - call SetHour - jr nc, .SetHourLoop - - ld a, [wInitHourBuffer] - ld [StringBuffer2 + 1], a - call .ClearScreen - ld hl, UnknownText_0x90886 - call PrintText - call YesNoBox - jr nc, .HourIsSet - call .ClearScreen - jr .loop - -.HourIsSet - ld hl, UnknownText_0x9089a - call PrintText - hlcoord 11, 7 - lb bc, 2, 7 - call TextBox - hlcoord 15, 7 - ld [hl], $1 - hlcoord 15, 10 - ld [hl], $2 - hlcoord 12, 9 - call DisplayMinutesWithMinString - ld c, 10 - call DelayFrames - -.SetMinutesLoop - call JoyTextDelay - call SetMinutes - jr nc, .SetMinutesLoop - - ld a, [BattleMonNick + 5] - ld [StringBuffer2 + 2], a - call .ClearScreen - ld hl, UnknownText_0x908a4 - call PrintText - call YesNoBox - jr nc, .MinutesAreSet - call .ClearScreen - jr .HourIsSet - -.MinutesAreSet - call Function658 - ld hl, OakText_ResponseToSetTime - call PrintText - call WaitPressAorB_BlinkCursor - pop af - ld [hInMenu], a - ret - -.ClearScreen: ; 90783 (24:4783) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - ld a, $1 - ld [hBGMapMode], a - ret - -SetHour: ; 90795 (24:4795) - ld a, [hJoyPressed] - and A_BUTTON - jr nz, .Confirm - - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .up - ld a, [hl] - and D_DOWN - jr nz, .down - call DelayFrame - and a - ret - -.down - ld hl, wInitHourBuffer - ld a, [hl] - and a - jr nz, .DecreaseThroughMidnight - ld a, 23 + 1 -.DecreaseThroughMidnight - dec a - ld [hl], a - jr .okay - -.up - ld hl, wInitHourBuffer - ld a, [hl] - cp 23 - jr c, .AdvanceThroughMidnight - ld a, -1 -.AdvanceThroughMidnight - inc a - ld [hl], a - -.okay - hlcoord 4, 9 - ld a, " " - ld bc, 15 - call ByteFill - hlcoord 4, 9 - call DisplayHourOClock - call WaitBGMap - and a - ret - -.Confirm - scf - ret - -DisplayHourOClock: ; 907de (24:47de) - push hl - ld a, [wInitHourBuffer] - ld c, a - ld e, l - ld d, h - call PrintHour - inc hl - ld de, String_oclock - call PlaceString - pop hl - ret -; 907f1 (24:47f1) - -Function907f1: ; 907f1 - ld h, d - ld l, e - push hl - call DisplayHourOClock - pop de -rept 2 - inc de -endr - ld a, $9c - ld [de], a - inc de - push de - ld hl, $3 - add hl, de - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - pop hl - call DisplayMinutesWithMinString -rept 3 - inc hl -endr - ret -; 90810 - -SetMinutes: ; 90810 (24:4810) - ld a, [hJoyPressed] - and A_BUTTON - jr nz, .asm_90857 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_90835 - ld a, [hl] - and D_DOWN - jr nz, .asm_90828 - call DelayFrame - and a - ret -.asm_90828 - ld hl, BattleMonNick + 5 - ld a, [hl] - and a - jr nz, .asm_90831 - ld a, 59 + 1 -.asm_90831 - dec a - ld [hl], a - jr .asm_90841 -.asm_90835 - ld hl, BattleMonNick + 5 - ld a, [hl] - cp 59 - jr c, .asm_9083f - ld a, -1 -.asm_9083f - inc a - ld [hl], a -.asm_90841 - hlcoord 12, 9 - ld a, " " - ld bc, 7 - call ByteFill - hlcoord 12, 9 - call DisplayMinutesWithMinString - call WaitBGMap - and a - ret -.asm_90857 - scf - ret - -DisplayMinutesWithMinString: ; 90859 (24:4859) - ld de, BattleMonNick + 5 - call PrintTwoDigitNumberRightAlign - inc hl - ld de, String_min - call PlaceString - ret - -PrintTwoDigitNumberRightAlign: ; 90867 (24:4867) - push hl - ld a, " " - ld [hli], a - ld [hl], a - pop hl - lb bc, PRINTNUM_RIGHTALIGN | 1, 2 - call PrintNum - ret -; 90874 (24:4874) - -UnknownText_0x90874: ; 0x90874 - ; Zzz… Hm? Wha…? You woke me up! Will you check the clock for me? - text_jump UnknownText_0x1bc29c - db "@" -; 0x90879 - -UnknownText_0x90879: ; 0x90879 - ; What time is it? - text_jump UnknownText_0x1bc2eb - db "@" -; 0x9087e - -String_oclock: - db "o'clock@" -; 90886 - -UnknownText_0x90886: ; 0x90886 - ; What?@ @ - text_jump UnknownText_0x1bc2fd - start_asm - hlcoord 1, 16 - call DisplayHourOClock - ld hl, UnknownText_0x90895 - ret -; 90895 (24:4895) - -UnknownText_0x90895: ; 0x90895 - ; ? - text_jump UnknownText_0x1bc305 - db "@" -; 0x9089a - -UnknownText_0x9089a: ; 0x9089a - ; How many minutes? - text_jump UnknownText_0x1bc308 - db "@" -; 0x9089f - -String_min: - db "min.@" -; 908a4 - -UnknownText_0x908a4: ; 0x908a4 - ; Whoa!@ @ - text_jump UnknownText_0x1bc31b - start_asm -; 0x908a9 - hlcoord 7, 14 - call DisplayMinutesWithMinString - ld hl, UnknownText_0x908b3 - ret -; 908b3 (24:48b3) - -UnknownText_0x908b3: ; 0x908b3 - ; ? - text_jump UnknownText_0x1bc323 - db "@" -; 0x908b8 - -OakText_ResponseToSetTime: ; 0x908b8 - start_asm - decoord 1, 14 - ld a, [wInitHourBuffer] - ld c, a - call PrintHour - ld [hl], ":" - inc hl - ld de, BattleMonNick + 5 - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ld b, h - ld c, l - ld a, [wInitHourBuffer] - cp 4 - jr c, .NITE - cp 11 - jr c, .MORN - cp 18 - jr c, .DAY -.NITE - ld hl, .sodark - ret -.MORN - ld hl, .overslept - ret -.DAY - ld hl, .yikes - ret -; 908ec (24:48ec) - -.overslept: ; 0x908ec - ; ! I overslept! - text_jump UnknownText_0x1bc326 - db "@" -; 0x908f1 - -.yikes: ; 0x908f1 - ; ! Yikes! I over- slept! - text_jump UnknownText_0x1bc336 - db "@" -; 0x908f6 - -.sodark: ; 0x908f6 - ; ! No wonder it's so dark! - text_jump UnknownText_0x1bc34f - db "@" -; 0x908fb - -GFX_908fb: ; 908fb -INCBIN "gfx/unknown/0908fb.2bpp" -GFX_90903: ; 90903 -INCBIN "gfx/unknown/090903.2bpp" -GFX_9090b: ; 9090b -INCBIN "gfx/unknown/09090b.2bpp" -; 90913 - -Special_SetDayOfWeek: ; 90913 - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - ld de, GFX_90903 - ld hl, VTiles1 tile $6f - lb bc, BANK(GFX_90903), 1 - call Request1bpp - ld de, GFX_9090b - ld hl, VTiles1 tile $75 - lb bc, BANK(GFX_9090b), 1 - call Request1bpp - xor a - ld [wd002], a -.asm_90936 - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - call LoadStandardMenuDataHeader - ld hl, UnknownText_0x90a3f - call PrintText - hlcoord 9, 3 - ld b, 2 - ld c, 9 - call TextBox - hlcoord 14, 3 - ld [hl], $ef - hlcoord 14, 6 - ld [hl], $f5 - hlcoord 10, 5 - call Function909de - call Function321c - ld c, 10 - call DelayFrames -.asm_9096a - call JoyTextDelay - call Function90993 - jr nc, .asm_9096a - call ExitMenu - call UpdateSprites - ld hl, UnknownText_0x90a44 - call PrintText - call YesNoBox - jr c, .asm_90936 - ld a, [wd002] - ld [StringBuffer2], a - call Function663 - call LoadStandardFont - pop af - ld [hInMenu], a - ret -; 90993 - -Function90993: ; 90993 - ld a, [hJoyPressed] - and A_BUTTON - jr z, .asm_9099b - scf - ret - -.asm_9099b - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_909ba - ld a, [hl] - and D_DOWN - jr nz, .asm_909ad - call DelayFrame - and a - ret - -.asm_909ad - ld hl, wd002 - ld a, [hl] - and a - jr nz, .asm_909b6 - ld a, 6 + 1 - -.asm_909b6 - dec a - ld [hl], a - jr .asm_909c6 - -.asm_909ba - ld hl, wd002 - ld a, [hl] - cp 6 - jr c, .asm_909c4 - ld a, -1 - -.asm_909c4 - inc a - ld [hl], a - -.asm_909c6 - xor a - ld [hBGMapMode], a - hlcoord 10, 4 - ld b, $2 - ld c, $9 - call ClearBox - hlcoord 10, 5 - call Function909de - call WaitBGMap - and a - ret -; 909de - -Function909de: ; 909de - push hl - ld a, [wd002] - ld e, a - ld d, 0 - ld hl, WeekdaysStrings -rept 2 - add hl, de -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - call PlaceString - ret -; 909f2 - -WeekdaysStrings: ; 909f2 - dw Sunday - dw Monday - dw Tuesday - dw Wednesday - dw Thursday - dw Friday - dw Saturday - dw Sunday - -Sunday: db " SUNDAY@" -Monday: db " MONDAY@" -Tuesday: db " TUESDAY@" -Wednesday: db "WEDNESDAY@" -Thursday: db "THURSDAY@" -Friday: db " FRIDAY@" -Saturday: db "SATURDAY@" - - -UnknownText_0x90a3f: ; 0x90a3f - ; What day is it? - text_jump UnknownText_0x1bc369 - db "@" -; 0x90a44 - -UnknownText_0x90a44: ; 0x90a44 - start_asm - hlcoord 1, 14 - call Function909de - ld hl, UnknownText_0x90a4f - ret -; 90a4f (24:4a4f) - -UnknownText_0x90a4f: ; 0x90a4f - ; , is it? - text_jump UnknownText_0x1bc37a - db "@" -; 0x90a54 - -Special_InitialSetDSTFlag: ; 90a54 - ld a, [wDST] - set 7, a - ld [wDST], a - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x90a6c - call PlaceWholeStringInBoxAtOnce - ret -; 90a6c - -UnknownText_0x90a6c: ; 90a6c - start_asm - call UpdateTime - ld a, [hHours] - ld b, a - ld a, [hMinutes] - ld c, a - decoord 1, 14 - callba PrintHoursMins - ld hl, TextJump_DSTIsThatOK - ret -; 90a83 (24:4a83) - -TextJump_DSTIsThatOK: ; 0x90a83 - ; DST, is that OK? - text_jump Text_DSTIsThatOK - db "@" -; 0x90a88 - -Special_InitialClearDSTFlag: ; 90a88 - ld a, [wDST] - res 7, a - ld [wDST], a - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x90aa0 - call PlaceWholeStringInBoxAtOnce - ret -; 90aa0 - -UnknownText_0x90aa0: ; 90aa0 - start_asm - call UpdateTime - ld a, [hHours] - ld b, a - ld a, [hMinutes] - ld c, a - decoord 1, 14 - callba PrintHoursMins - ld hl, UnknownText_0x90ab7 - ret -; 90ab7 - -UnknownText_0x90ab7: ; 0x90ab7 - ; , is that OK? - text_jump UnknownText_0x1c5ff1 - db "@" -; 0x90abc - -Function90abc: ; 90abc - hlcoord 1, 14 - lb bc, 3, SCREEN_WIDTH - 2 - call ClearBox - ld hl, UnknownText_0x90acc - call PlaceWholeStringInBoxAtOnce - ret -; 90acc - -UnknownText_0x90acc: ; 0x90acc - start_asm - - call UpdateTime - - hlcoord 1, 14 - ld [hl], "R" - inc hl - ld [hl], "T" - inc hl - ld [hl], " " - inc hl - - ld de, hRTCDayLo - call Function90b23 - - hlcoord 1, 16 - ld [hl], "D" - inc hl - ld [hl], "F" - inc hl - ld [hl], " " - inc hl - - ld de, StartDay - call Function90b23 - - ld [hl], " " - inc hl - - ld a, [wDST] - bit 7, a - jr z, .off - - ld [hl], "O" - inc hl - ld [hl], "N" - inc hl - jr .done - -.off - ld [hl], "O" - inc hl - ld [hl], "F" - inc hl - ld [hl], "F" - inc hl - -.done - ld hl, UnknownText_0x90b13 - ret -; 90b13 - -UnknownText_0x90b13: ; 0x90b13 - text "<PARA>Now on DEBUG…" - prompt -; 0x90b23 - -Function90b23: ; 90b23 - lb bc, 1, 3 - call PrintNum - ld [hl], "." - inc hl - inc de - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ld [hl], ":" - inc hl - inc de - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ret -; 90b3e - -PrintHour: ; 90b3e (24:4b3e) - ld l, e - ld h, d - push bc - call GetTimeOfDayString - call PlaceString - ld l, c - ld h, b - inc hl - pop bc - call AdjustHourForAMorPM - ld [wd265], a - ld de, wd265 - call PrintTwoDigitNumberRightAlign - ret - -GetTimeOfDayString: ; 90b58 (24:4b58) - ld a, c - cp 4 - jr c, .nite - cp 10 - jr c, .morn - cp 18 - jr c, .day -.nite - ld de, .NITE - ret -.morn - ld de, .MORN - ret -.day - ld de, .DAY - ret -; 90b71 (24:4b71) - -.NITE: db "NITE@" -.MORN: db "MORN@" -.DAY: db "DAY@" -; 90b7f - -AdjustHourForAMorPM: -; Convert the hour stored in c (0-23) to a 1-12 value - ld a, c - or a - jr z, .midnight - cp 12 - ret c - ret z - sub 12 - ret - -.midnight - ld a, 12 - ret - +INCLUDE "engine/timeset.asm" INCLUDE "engine/pokegear.asm" INCLUDE "data/wild/fish.asm" |