From 5d3965772bd585b205f67dc31807ed13c1354e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miloslav=20=C4=8C=C3=AD=C5=BE?= Date: Thu, 24 Sep 2020 15:57:09 +0200 Subject: [PATCH] Improve menu --- game.h | 11 ++++++++++- main_gbmeta.ino | 1 + settings.h | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/game.h b/game.h index cf1b290..0adb6d9 100755 --- a/game.h +++ b/game.h @@ -4133,7 +4133,8 @@ void SFG_drawMenu() #define SCROLL_PIXELS_PER_FRAME 1 #endif - #define SELECTION_START_X (SFG_GAME_RESOLUTION_X / 5) + #define SELECTION_START_X ((SFG_GAME_RESOLUTION_X - 12 * SFG_FONT_SIZE_MEDIUM\ + * (SFG_FONT_CHARACTER_SIZE + 1)) / 2) uint16_t scroll = (SFG_game.frame * SCROLL_PIXELS_PER_FRAME) / 64; @@ -4161,6 +4162,14 @@ void SFG_drawMenu() if (item == SFG_MENU_ITEM_NONE) break; +#if SFG_SIMPLE_MENU + if (i != SFG_game.selectedMenuItem) + { + i++; + continue; + } +#endif + const char *text = SFG_menuItemTexts[item]; uint8_t textLen = SFG_textLen(text); diff --git a/main_gbmeta.ino b/main_gbmeta.ino index 8155bda..88adece 100644 --- a/main_gbmeta.ino +++ b/main_gbmeta.ino @@ -26,6 +26,7 @@ #define SFG_RAYCASTING_MAX_STEPS 20 #define SFG_RAYCASTING_MAX_HITS 5 #define SFG_RAYCASTING_SUBSAMPLE 2 +#define SFG_SIMPLE_MENU 1 #define SFG_DITHERED_SHADOW 0 diff --git a/settings.h b/settings.h index 6c09bec..eb142c9 100644 --- a/settings.h +++ b/settings.h @@ -340,6 +340,14 @@ #define SFG_ARDUINO 0 #endif +/** + If set, the menu will only display the selected item. This is good for very + small resolution screens that can't display all items at once. +*/ +#ifndef SFG_SIMPLE_MENU + #define SFG_SIMPLE_MENU 0 +#endif + //------ developer/debug settings ------ /**