mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
32ed487a47
# Conflicts: # audio/engine.asm # constants/gfx_constants.asm # constants/map_data_constants.asm # constants/pokemon_data_constants.asm # constants/sprite_constants.asm # constants/wram_constants.asm # data/maps/data.asm # engine/battle/ai/scoring.asm # engine/battle/core.asm # engine/battle/effect_commands.asm # engine/battle/misc.asm # engine/battle_anims/getpokeballwobble.asm # engine/breeding.asm # engine/buy_sell_toss.asm # engine/decorations.asm # engine/events/battle_tower/battle_tower.asm # engine/events/battle_tower/rules.asm # engine/events/buena.asm # engine/events/bug_contest/contest_2.asm # engine/events/daycare.asm # engine/events/dratini.asm # engine/events/halloffame.asm # engine/events/happiness_egg.asm # engine/events/kurt.asm # engine/events/lucky_number.asm # engine/events/magnet_train.asm # engine/events/overworld.asm # engine/events/pokerus/pokerus.asm # engine/events/print_unown.asm # engine/events/print_unown_2.asm # engine/events/unown_walls.asm # engine/item_effects.asm # engine/link.asm # engine/mon_menu.asm # engine/player_object.asm # engine/routines/playslowcry.asm # engine/scripting.asm # engine/search.asm # engine/search2.asm # engine/specials.asm # engine/start_menu.asm # engine/timeset.asm # home/battle_vars.asm # home/map.asm # maps/GoldenrodUndergroundSwitchRoomEntrances.asm # maps/IlexForest.asm # maps/KrissHouse2F.asm # maps/Route39Barn.asm # mobile/mobile_12_2.asm # mobile/mobile_40.asm # mobile/mobile_5f.asm # wram.asm
297 lines
4.3 KiB
NASM
Executable File
297 lines
4.3 KiB
NASM
Executable File
_ResetClock: ; 4d3b1
|
|
farcall BlankScreen
|
|
ld b, SCGB_DIPLOMA
|
|
call GetSGBLayout
|
|
call LoadStandardFont
|
|
call LoadFontsExtra
|
|
ld de, MUSIC_MAIN_MENU
|
|
call PlayMusic
|
|
ld hl, .text_askreset
|
|
call PrintText
|
|
ld hl, .NoYes_MenuHeader
|
|
call CopyMenuHeader
|
|
call VerticalMenu
|
|
ret c
|
|
ld a, [wMenuCursorY]
|
|
cp $1
|
|
ret z
|
|
call ClockResetPassword
|
|
jr c, .wrongpassword
|
|
ld a, BANK(sRTCStatusFlags)
|
|
call GetSRAMBank
|
|
ld a, $80
|
|
ld [sRTCStatusFlags], a
|
|
call CloseSRAM
|
|
ld hl, .text_okay
|
|
call PrintText
|
|
ret
|
|
|
|
.wrongpassword
|
|
ld hl, .text_wrong
|
|
call PrintText
|
|
ret
|
|
|
|
.text_okay ; 0x4d3fe
|
|
; Password OK. Select CONTINUE & reset settings.
|
|
text_jump UnknownText_0x1c55db
|
|
db "@"
|
|
|
|
.text_wrong ; 0x4d403
|
|
; Wrong password!
|
|
text_jump UnknownText_0x1c560b
|
|
db "@"
|
|
|
|
.text_askreset ; 0x4d408
|
|
; Reset the clock?
|
|
text_jump UnknownText_0x1c561c
|
|
db "@"
|
|
|
|
.NoYes_MenuHeader: ; 0x4d40d
|
|
db 0 ; flags
|
|
menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1
|
|
dw .NoYes_MenuData
|
|
db 1 ; default option
|
|
|
|
.NoYes_MenuData: ; 0x4d415
|
|
db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
|
|
db 2 ; items
|
|
db "NO@"
|
|
db "YES@"
|
|
|
|
ClockResetPassword: ; 4d41e
|
|
call .CalculatePassword
|
|
push de
|
|
ld hl, wStringBuffer2
|
|
ld bc, 5
|
|
xor a
|
|
call ByteFill
|
|
ld a, $4
|
|
ld [wStringBuffer2 + 5], a
|
|
ld hl, .pleaseenterpasswordtext
|
|
call PrintText
|
|
.loop
|
|
call .updateIDdisplay
|
|
.loop2
|
|
call JoyTextDelay
|
|
ld a, [hJoyLast]
|
|
ld b, a
|
|
and A_BUTTON
|
|
jr nz, .confirm
|
|
ld a, b
|
|
and D_PAD
|
|
jr z, .loop2
|
|
call .dpadinput
|
|
ld c, 3
|
|
call DelayFrames
|
|
jr .loop
|
|
|
|
.confirm
|
|
call .ConvertDecIDToBytes
|
|
pop de
|
|
ld a, e
|
|
cp l
|
|
jr nz, .nope
|
|
ld a, d
|
|
cp h
|
|
jr nz, .nope
|
|
and a
|
|
ret
|
|
|
|
.nope
|
|
scf
|
|
ret
|
|
|
|
.pleaseenterpasswordtext ; 0x4d463
|
|
; Please enter the password.
|
|
text_jump UnknownText_0x1c562e
|
|
db "@"
|
|
|
|
.updateIDdisplay ; 4d468
|
|
hlcoord 14, 15
|
|
ld de, wStringBuffer2
|
|
ld c, 5
|
|
.loop3
|
|
ld a, [de]
|
|
add "0"
|
|
ld [hli], a
|
|
inc de
|
|
dec c
|
|
jr nz, .loop3
|
|
hlcoord 14, 16
|
|
ld bc, 5
|
|
ld a, " "
|
|
call ByteFill
|
|
hlcoord 14, 16
|
|
ld a, [wStringBuffer2 + 5]
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld [hl], "▲"
|
|
ret
|
|
|
|
.dpadinput ; 4d490
|
|
ld a, b
|
|
and D_LEFT
|
|
jr nz, .left
|
|
ld a, b
|
|
and D_RIGHT
|
|
jr nz, .right
|
|
ld a, b
|
|
and D_UP
|
|
jr nz, .up
|
|
ld a, b
|
|
and D_DOWN
|
|
jr nz, .down
|
|
ret
|
|
|
|
.left
|
|
ld a, [wStringBuffer2 + 5]
|
|
and a
|
|
ret z
|
|
dec a
|
|
ld [wStringBuffer2 + 5], a
|
|
ret
|
|
|
|
.right
|
|
ld a, [wStringBuffer2 + 5]
|
|
cp $4
|
|
ret z
|
|
inc a
|
|
ld [wStringBuffer2 + 5], a
|
|
ret
|
|
|
|
.up
|
|
call .getcurrentdigit
|
|
ld a, [hl]
|
|
cp 9
|
|
jr z, .wraparound_up
|
|
inc a
|
|
ld [hl], a
|
|
ret
|
|
|
|
.wraparound_up
|
|
ld [hl], $0
|
|
ret
|
|
|
|
.down
|
|
call .getcurrentdigit
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .wraparound_down
|
|
dec a
|
|
ld [hl], a
|
|
ret
|
|
|
|
.wraparound_down
|
|
ld [hl], 9
|
|
ret
|
|
|
|
.getcurrentdigit ; 4d4d5
|
|
ld a, [wStringBuffer2 + 5]
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, wStringBuffer2
|
|
add hl, de
|
|
ret
|
|
|
|
.ConvertDecIDToBytes: ; 4d4e0
|
|
ld hl, 0
|
|
ld de, wStringBuffer2 + 4
|
|
ld bc, 1
|
|
call .ConvertToBytes
|
|
ld bc, 10
|
|
call .ConvertToBytes
|
|
ld bc, 100
|
|
call .ConvertToBytes
|
|
ld bc, 1000
|
|
call .ConvertToBytes
|
|
ld bc, 10000
|
|
.ConvertToBytes: ; 4d501
|
|
ld a, [de]
|
|
dec de
|
|
push hl
|
|
ld hl, 0
|
|
call AddNTimes
|
|
ld c, l
|
|
ld b, h
|
|
pop hl
|
|
add hl, bc
|
|
ret
|
|
|
|
.CalculatePassword: ; 4d50f
|
|
ld a, BANK(sPlayerData)
|
|
call GetSRAMBank
|
|
ld de, 0
|
|
ld hl, sPlayerData + (wPlayerID - wPlayerData)
|
|
ld c, $2
|
|
call .ComponentFromNumber
|
|
ld hl, sPlayerData + (wPlayerName - wPlayerData)
|
|
ld c, NAME_LENGTH_JAPANESE - 1
|
|
call .ComponentFromString
|
|
ld hl, sPlayerData + (wMoney - wPlayerData)
|
|
ld c, $3
|
|
call .ComponentFromNumber
|
|
call CloseSRAM
|
|
ret
|
|
|
|
.ComponentFromNumber: ; 4d533
|
|
ld a, [hli]
|
|
add e
|
|
ld e, a
|
|
ld a, $0
|
|
adc d
|
|
ld d, a
|
|
dec c
|
|
jr nz, .ComponentFromNumber
|
|
ret
|
|
|
|
.ComponentFromString: ; 4d53e
|
|
ld a, [hli]
|
|
cp "@"
|
|
ret z
|
|
add e
|
|
ld e, a
|
|
ld a, $0
|
|
adc d
|
|
ld d, a
|
|
dec c
|
|
jr nz, .ComponentFromString
|
|
ret
|
|
|
|
_DeleteSaveData: ; 4d54c
|
|
farcall BlankScreen
|
|
ld b, SCGB_DIPLOMA
|
|
call GetSGBLayout
|
|
call LoadStandardFont
|
|
call LoadFontsExtra
|
|
ld de, MUSIC_MAIN_MENU
|
|
call PlayMusic
|
|
ld hl, .Text_ClearAllSaveData
|
|
call PrintText
|
|
ld hl, .NoYesMenuHeader
|
|
call CopyMenuHeader
|
|
call VerticalMenu
|
|
ret c
|
|
ld a, [wMenuCursorY]
|
|
cp $1
|
|
ret z
|
|
farcall EmptyAllSRAMBanks
|
|
ret
|
|
|
|
.Text_ClearAllSaveData: ; 0x4d580
|
|
; Clear all save data?
|
|
text_jump UnknownText_0x1c564a
|
|
db "@"
|
|
|
|
.NoYesMenuHeader: ; 0x4d585
|
|
db 0 ; flags
|
|
menu_coords 14, 7, SCREEN_WIDTH - 1, TEXTBOX_Y - 1
|
|
dw .MenuData
|
|
db 1 ; default option
|
|
|
|
.MenuData: ; 0x4d58d
|
|
db STATICMENU_CURSOR | STATICMENU_NO_TOP_SPACING ; flags
|
|
db 2 ; items
|
|
db "NO@"
|
|
db "YES@"
|