Implement functional menu system

- Add button-driven menu with multiple options
- Wire up A button to add all Korok pins
- Connect B button to count existing pins
- Auto-initialize save system on startup
- Cleaner main loop without manual save testing
This commit is contained in:
badblocks 2023-05-19 15:33:48 -07:00
parent 1d5c741bd3
commit 4ece8c1922
No known key found for this signature in database
2 changed files with 38 additions and 9 deletions

View file

@ -15,12 +15,13 @@ int main(int argc, char **argv)
PadState pad; PadState pad;
padInitializeDefault(&pad); padInitializeDefault(&pad);
// Initialize save system
openSave();
processSave();
// Initialize UI // Initialize UI
initUI(); initUI();
printMessage("Press A to test save loading\n");
printMessage("Press + to exit\n");
bool exit = false; bool exit = false;
// Main loop // Main loop
@ -31,11 +32,6 @@ int main(int argc, char **argv)
exit = handleButtonPress(kDown); exit = handleButtonPress(kDown);
if (kDown & HidNpadButton_A) {
openSave();
processSave();
}
consoleUpdate(NULL); consoleUpdate(NULL);
} }

View file

@ -2,14 +2,34 @@
#include <stdarg.h> #include <stdarg.h>
#include <switch.h> #include <switch.h>
#include "ui_basic.h" #include "ui_basic.h"
#include "data_basic.h"
#include "map_basic.h"
static void addKorokPins() {
printMessage("Adding Korok seed pins...\n");
for (int i = 0; i < KOROK_COUNT; i++) {
addMapPin(MAP_PIN_LEAF, KOROKS[i]);
}
printMessage("Added %d Korok pins!\n", KOROK_COUNT);
}
static void testFunction() {
printMessage("Test function called!\n");
}
void initUI() { void initUI() {
printf("\x1b[2J"); // Clear screen printf("\x1b[2J"); // Clear screen
printf("\x1b[1;1H"); // Move cursor to top-left printf("\x1b[1;1H"); // Move cursor to top-left
printf("═══════════════════════════════════════\n"); printf("═══════════════════════════════════════\n");
printf(" BOTW Completer v0.3\n"); printf(" BOTW Completer v0.4\n");
printf("═══════════════════════════════════════\n"); printf("═══════════════════════════════════════\n");
printf("\n"); printf("\n");
printf("Menu:\n");
printf("A - Add Korok pins\n");
printf("B - Count map pins\n");
printf("Y - Test function\n");
printf("+ - Exit\n");
printf("\n");
} }
void printMessage(const char* message, ...) { void printMessage(const char* message, ...) {
@ -23,5 +43,18 @@ bool handleButtonPress(u64 button) {
if (button & HidNpadButton_Plus) { if (button & HidNpadButton_Plus) {
return true; // Exit requested return true; // Exit requested
} }
if (button & HidNpadButton_A) {
addKorokPins();
}
if (button & HidNpadButton_B) {
countMapPins();
}
if (button & HidNpadButton_Y) {
testFunction();
}
return false; // Continue running return false; // Continue running
} }