Organize the engine/ directory, take 2
Renamed `game` to `games` and `menu` to `menus`. Moved some functions from `engine/routines/` to their fitting subdirectories. Made two new subdirectories: * engine/rtc: Contains all RTC-related things. Menus, hardware, misc functions. * engine/items: Contains all item-related things. Pack, item effects, other item handlers.
This commit is contained in:
296
engine/rtc/delete_save_change_clock.asm
Executable file
296
engine/rtc/delete_save_change_clock.asm
Executable file
@@ -0,0 +1,296 @@
|
||||
_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@"
|
Reference in New Issue
Block a user