Core reset option (moronimo)

This commit is contained in:
Mauro Vietri 2023-05-29 08:30:05 -03:00
parent 722d249916
commit e8b3b712a5

View file

@ -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();