blob: 2a15e651cc26b10405dcc87e0885dbc9db4c2e6a [file] [log] [blame] [edit]
#include <cstring>
#include "saves.hpp"
using namespace blit;
// The data you want to save. Should not contain any pointers or other data that can't be written to a file as-is.
struct MyGameSave {
char name[10];
int32_t score;
};
MyGameSave save_data;
void init() {
// Attempt to load the first save slot.
if(read_save(save_data)) {
// Loaded successfully!
} else {
// No save file or it failed to load, set up some defaults.
strncpy(save_data.name, "My Name", 10);
save_data.score = 0;
}
}
void render(uint32_t time_ms) {
screen.pen = Pen(20, 30, 40);
screen.clear();
screen.alpha = 255;
screen.pen = Pen(255, 255, 255);
screen.rectangle(Rect(0, 0, 320, 14));
screen.pen = Pen(0, 0, 0);
screen.text("Saves", minimal_font, Point(5, 4));
screen.pen = Pen(255, 255, 255);
char buf[100];
snprintf(buf, 100, "Hello %s\n\nHold A to win!\n\nCurrent score: %i", save_data.name, save_data.score);
screen.text(buf, minimal_font, Point(screen.bounds.w / 2, screen.bounds.h / 2), false, TextAlign::center_center);
}
void update(uint32_t time) {
// Give away some points
if(buttons & Button::A) {
save_data.score++;
}
// Save all those points we gave away
if(buttons.released & Button::A) {
write_save(save_data);
}
}