From e6b29d179fbeebb540b798309cba4397c6d53aa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20=C4=8C=C3=AD=C5=BE?= Date: Fri, 13 Nov 2020 15:37:34 +0100 Subject: [PATCH] Add save deleting --- game.h | 4 ++-- main_gbmeta.ino | 35 +++++++++++++++++++++++++++++++++++ main_pokitto.cpp | 2 +- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/game.h b/game.h index 5ee6434..5f1cdf0 100755 --- a/game.h +++ b/game.h @@ -1644,9 +1644,9 @@ void SFG_setAndInitLevel(uint8_t levelNumber) void SFG_createDefaultSaveData(uint8_t *memory) { for (uint16_t i = 0; i < SFG_SAVE_SIZE; ++i) - SFG_game.save[i] = 0; + memory[i] = 0; - SFG_game.save[1] = SFG_DEFAULT_SETTINGS; + memory[1] = SFG_DEFAULT_SETTINGS; } void SFG_init() diff --git a/main_gbmeta.ino b/main_gbmeta.ino index d4fd2d3..cee7dab 100644 --- a/main_gbmeta.ino +++ b/main_gbmeta.ino @@ -138,6 +138,25 @@ void setup() gb.setFrameRate(SFG_FPS); gb.save.config(saveDefault); + uint8_t data[SFG_SAVE_SIZE]; + + gb.save.get(0,data,SFG_SAVE_SIZE); + + uint8_t allZeros = 1; + + for (uint8_t i = 0; i < SFG_SAVE_SIZE; ++i) + if (data[i] != 0) + { + allZeros = 0; + break; + } + + if (allZeros) // 1st time save? + { + SFG_createDefaultSaveData(data); + gb.save.set(0,data,SFG_SAVE_SIZE); + } + for (int i = 0; i < 256; ++i) { uint16_t rgb565 = paletteRGB565[i]; @@ -148,8 +167,13 @@ void setup() blinkLED(RED); } +uint8_t stop = 0; + void loop() { + if (stop) + return; + while(!gb.update()) { } @@ -163,6 +187,17 @@ void loop() } SFG_mainLoopBody(); + + if ( + gb.buttons.timeHeld(BUTTON_LEFT) >= 255 && + gb.buttons.timeHeld(BUTTON_RIGHT) >= 255 && + gb.buttons.timeHeld(BUTTON_B) >= 255) + { + // holding L+R+B in menu will erase all saved data + + gb.save.del(0); + stop = 1; + } #if 0 // debuggin performance diff --git a/main_pokitto.cpp b/main_pokitto.cpp index 240ebcf..88365f5 100644 --- a/main_pokitto.cpp +++ b/main_pokitto.cpp @@ -224,7 +224,7 @@ int main() break; } - if (allZeros) // 1st time save + if (allZeros) // 1st time save? { SFG_createDefaultSaveData(save.data); save.saveCookie();