Implement the engine to backup map objects when chaning maps (#32)

This commit is contained in:
xCrystal
2023-12-15 19:10:47 +01:00
parent 2bca51eb09
commit d097191ab1
11 changed files with 249 additions and 14 deletions

View File

@@ -289,6 +289,7 @@ SaveGameData:
call SaveOptions
call SavePlayerData
call SavePokemonData
call SaveMapObjectsBackupsData
call SaveBox
call SaveChecksum
call ValidateBackupSave
@@ -446,6 +447,22 @@ SavePokemonData:
call CloseSRAM
ret
SaveMapObjectsBackupsData:
ldh a, [rSVBK]
push af
ld a, BANK(wMapObjectsBackups)
ldh [rSVBK], a
ld a, BANK(sMapObjectsBackups)
call OpenSRAM
ld hl, wMapObjectsBackups
ld de, sMapObjectsBackups
ld bc, wMapObjectsBackupsEnd - wMapObjectsBackups
call CopyBytes
call CloseSRAM
pop af
ldh [rSVBK], a
ret
SaveBox:
call GetBoxAddress
call SaveBoxAddress
@@ -526,6 +543,7 @@ TryLoadSaveFile:
jr nz, .backup
call LoadPlayerData
call LoadPokemonData
call LoadMapObjectsBackupsData
call LoadBox
farcall RestorePartyMonMail
call ValidateBackupSave
@@ -541,6 +559,7 @@ TryLoadSaveFile:
jr nz, .corrupt
call LoadBackupPlayerData
call LoadBackupPokemonData
call LoadMapObjectsBackupsData
call LoadBox
farcall RestorePartyMonMail
call ValidateSave
@@ -677,6 +696,22 @@ LoadPokemonData:
call CloseSRAM
ret
LoadMapObjectsBackupsData:
ldh a, [rSVBK]
push af
ld a, BANK(wMapObjectsBackups)
ldh [rSVBK], a
ld a, BANK(sMapObjectsBackups)
call OpenSRAM
ld hl, sMapObjectsBackups
ld de, wMapObjectsBackups
ld bc, wMapObjectsBackupsEnd - wMapObjectsBackups
call CopyBytes
call CloseSRAM
pop af
ldh [rSVBK], a
ret
LoadBox:
call GetBoxAddress
call LoadBoxAddress