From e8b3b712a5ad8cddf137058f252f8524c02cb143 Mon Sep 17 00:00:00 2001 From: Mauro Vietri Date: Mon, 29 May 2023 08:30:05 -0300 Subject: [PATCH] Core reset option (moronimo) --- src/minarch/minarch.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/minarch/minarch.c b/src/minarch/minarch.c index a0b643b..41f9f41 100644 --- a/src/minarch/minarch.c +++ b/src/minarch/minarch.c @@ -25,6 +25,7 @@ static SDL_Surface* screen; static int quit; +static int reset_flag; static int show_menu; enum { @@ -2946,7 +2947,7 @@ void Core_close(void) { /////////////////////////////////////// -#define MENU_ITEM_COUNT 5 +#define MENU_ITEM_COUNT 6 #define MENU_SLOT_COUNT 8 enum { @@ -2954,6 +2955,7 @@ enum { ITEM_SAVE, ITEM_LOAD, ITEM_OPTS, + ITEM_RSET, ITEM_QUIT, }; @@ -2963,6 +2965,7 @@ enum { STATUS_LOAD = 11, STATUS_OPTS = 23, STATUS_DISC = 24, + STATUS_RSET = 25, STATUS_QUIT = 30 }; @@ -2977,6 +2980,7 @@ static struct { [ITEM_SAVE] = "Save", [ITEM_LOAD] = "Load", [ITEM_OPTS] = "Options", + [ITEM_RSET] = "Reset", [ITEM_QUIT] = "Quit", } }; @@ -4045,6 +4049,10 @@ static void Menu_loop(void) { Menu_options(&options_menu); dirty = 1; break; + case ITEM_RSET: + reset_flag = 1; + show_menu = 0; + break; case ITEM_QUIT: status = STATUS_QUIT; show_menu = 0; @@ -4125,7 +4133,7 @@ static void Menu_loop(void) { // pill GFX_blitPill(ASSET_WHITE_PILL, screen, &(SDL_Rect){ SCALE1(PADDING), - SCALE1(oy + PADDING + (i * PILL_SIZE)), + SCALE1(oy + PADDING + (i * (PILL_SIZE - 5))), ow, SCALE1(PILL_SIZE) }); @@ -4136,7 +4144,7 @@ static void Menu_loop(void) { text = TTF_RenderUTF8_Blended(font.large, item, COLOR_BLACK); SDL_BlitSurface(text, NULL, screen, &(SDL_Rect){ SCALE1(2 + PADDING + BUTTON_PADDING), - SCALE1(1 + PADDING + oy + (i * PILL_SIZE) + 4) + SCALE1(1 + PADDING + oy + (i * (PILL_SIZE - 5)) + 4) }); SDL_FreeSurface(text); } @@ -4145,7 +4153,7 @@ static void Menu_loop(void) { text = TTF_RenderUTF8_Blended(font.large, item, text_color); SDL_BlitSurface(text, NULL, screen, &(SDL_Rect){ SCALE1(PADDING + BUTTON_PADDING), - SCALE1(oy + PADDING + (i * PILL_SIZE) + 4) + SCALE1(oy + PADDING + (i * (PILL_SIZE - 5)) + 4) }); SDL_FreeSurface(text); } @@ -4351,6 +4359,10 @@ int main(int argc , char* argv[]) { POW_disableAutosleep(); sec_start = SDL_GetTicks(); while (!quit) { + if (reset_flag) { + core.reset(); + reset_flag = 0; + } GFX_startFrame(); core.run();