From f68912e5c8a2472d2c6a373e962ee00b892c46a9 Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Sun, 5 Apr 2026 10:11:48 +0000 Subject: [PATCH 1/9] Added new version of language selector (more modern variant AND IT DONT WORK) --- src/menu.cc | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/menu.cc b/src/menu.cc index 4338f9c..bdab50d 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -214,7 +214,10 @@ eMenu Menu::SDLMain_Language() int NCol = 1; int NL; int Gap; + int N; + int NumSp; int i; + int e; int x, y; int const OldLanguage = Pref.Language; @@ -228,9 +231,10 @@ eMenu Menu::SDLMain_Language() SDL_RenderClear(sdlRenderer); // Set background image and build display Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); + DrawString(0, 0, "Select your language", Sprites[fmenu].Image[0]); // Draw available languages - NCol = 3; + NCol = 19; if (Pref.NLanguages % NCol == 0) { NL = Pref.NLanguages / NCol; } @@ -248,7 +252,6 @@ eMenu Menu::SDLMain_Language() } Menu_Py[Pref.NLanguages].StartX = -1; - // Erase background SDL_RenderPresent(sdlRenderer); @@ -256,14 +259,33 @@ eMenu Menu::SDLMain_Language() do { SDL_RenderClear(sdlRenderer); Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); + Sprites[background_hr].Draw(400, 120, 0, Sprites[fmenu].Image[0]); + + DrawString(225, 90, "Select your", Sprites[fmenu].Image[0]); + DrawString(225, 74*2, "language", Sprites[fmenu].Image[0]); for (i = 0; i < Pref.NLanguages; i++) { x = (i / NL) * (800 / 3) + (800 / 6); - y = (i % NL) * Gap + Gap; + y = 400; Sprites[T_Language + i].Draw(x, y, 0, Sprites[fmenu].Image[0]); AddButton(i, (e_Sprite)(T_Language + i), x, y); } + N = 19; + NumSp = (currentTime / 50) % 40 + 120; + for (e = 0; e < N; e++) { + if (e == N - 1) { + m_screen.PrintSprite(locomotive, NumSp, (690 - 300) / 12 * e + 117, 525); + } + else { + m_screen.PrintSprite(logs_wagon, NumSp, (690 - 300) / 12 * e + 117, 525); + } + } + + Sprites[arrows].Draw(50, 525, 1, Sprites[fmenu].Image[0]); + Sprites[arrows].Draw(800-50, 525, 4, Sprites[fmenu].Image[0]); + + SDL_Event event; while (SDL_PollEvent(&event)) { From 440fa8e51047b6cf6cea4139f0f8c5506f81c490 Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Sun, 5 Apr 2026 11:45:03 +0000 Subject: [PATCH 2/9] Now arrows work with selector (but carousel dont work) --- src/menu.cc | 96 +++++++++++++++++++++++------------------------------ 1 file changed, 42 insertions(+), 54 deletions(-) diff --git a/src/menu.cc b/src/menu.cc index bdab50d..045d821 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -212,14 +212,14 @@ eMenu Menu::SDLMain() eMenu Menu::SDLMain_Language() { int NCol = 1; - int NL; int Gap; - int N; int NumSp; + int ArrowsNumSp; + int const OldLanguage = Pref.Language; + unsigned int Selector=Pref.Language; int i; int e; int x, y; - int const OldLanguage = Pref.Language; // Miscellaneous inits m_mouse.Init(Menu_Py); @@ -233,24 +233,6 @@ eMenu Menu::SDLMain_Language() Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); DrawString(0, 0, "Select your language", Sprites[fmenu].Image[0]); - // Draw available languages - NCol = 19; - if (Pref.NLanguages % NCol == 0) { - NL = Pref.NLanguages / NCol; - } - else { - NL = Pref.NLanguages / NCol + 1; - } - Gap = 600 / (NL + 1); - - for (i = 0; i < Pref.NLanguages; i++) { - x = (i / NL) * (800 / 3) + (800 / 6); - y = (i % NL) * Gap + Gap; - - Sprites[T_Language + i].Draw(x, y, 0, Sprites[fmenu].Image[0]); - AddButton(i, (e_Sprite)(T_Language + i), x, y); - } - Menu_Py[Pref.NLanguages].StartX = -1; // Erase background SDL_RenderPresent(sdlRenderer); @@ -259,32 +241,40 @@ eMenu Menu::SDLMain_Language() do { SDL_RenderClear(sdlRenderer); Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); - Sprites[background_hr].Draw(400, 120, 0, Sprites[fmenu].Image[0]); + Sprites[background_hr].Draw(400, 170, 0, Sprites[fmenu].Image[0]); - DrawString(225, 90, "Select your", Sprites[fmenu].Image[0]); - DrawString(225, 74*2, "language", Sprites[fmenu].Image[0]); + DrawString(225, 140, "Select your", Sprites[fmenu].Image[0]); + DrawString(225, 190, "language", Sprites[fmenu].Image[0]); for (i = 0; i < Pref.NLanguages; i++) { - x = (i / NL) * (800 / 3) + (800 / 6); + x = i * (800 / 3) + (800 / 6); y = 400; Sprites[T_Language + i].Draw(x, y, 0, Sprites[fmenu].Image[0]); - AddButton(i, (e_Sprite)(T_Language + i), x, y); } - N = 19; NumSp = (currentTime / 50) % 40 + 120; - for (e = 0; e < N; e++) { - if (e == N - 1) { - m_screen.PrintSprite(locomotive, NumSp, (690 - 300) / 12 * e + 117, 525); + ArrowsNumSp = (currentTime / 50) % 20; + + for (e = 0; e < Selector; e++) { + if (e == Selector - 1) { + m_screen.PrintSprite(locomotive, NumSp, (690 - 300) / 12 * e + 117, 325); } else { - m_screen.PrintSprite(logs_wagon, NumSp, (690 - 300) / 12 * e + 117, 525); + m_screen.PrintSprite(logs_wagon, NumSp, (690 - 300) / 12 * e + 117, 325); } } - Sprites[arrows].Draw(50, 525, 1, Sprites[fmenu].Image[0]); - Sprites[arrows].Draw(800-50, 525, 4, Sprites[fmenu].Image[0]); + m_screen.PrintSprite(arrow_left, ArrowsNumSp, 300, 400); + m_screen.PrintSprite(arrow_right, ArrowsNumSp, 500, 400); + Sprites[arrows].Draw(50, 325, 1, Sprites[fmenu].Image[0]); + Sprites[arrows].Draw(800-50, 325, 4, Sprites[fmenu].Image[0]); + AddButton(1, arrows, 50, 325); + AddButton(2, arrows, 800-50, 325); + + Menu_Py[3].StartX = -1; + + DrawString(50, 550, "Press space to continue", Sprites[fmenu].Image[0]); SDL_Event event; while (SDL_PollEvent(&event)) { @@ -307,27 +297,15 @@ eMenu Menu::SDLMain_Language() Pref.Language = PyE; } return mMenu; - case SDLK_UP: - PyE--; - if (PyE < 0) { - PyE = Pref.NLanguages - 1; - } - break; - case SDLK_DOWN: - PyE++; - if (PyE >= Pref.NLanguages) { - PyE = 0; - } - break; case SDLK_LEFT: - if (PyE - NL >= 0) { - PyE -= NL; + if (Selector != 0){ + Selector--; } break; case SDLK_RIGHT: - if (PyE + NL < Pref.NLanguages) { - PyE += NL; - } + if (Selector != Pref.NLanguages){ + Selector++; + } break; case SDLK_F12: // Save screenshot if (event.key.repeat == 0) { @@ -335,13 +313,23 @@ eMenu Menu::SDLMain_Language() } break; case ' ': + Pref.Language = Selector; + LoadLanguage(); + return mMenu; case SDLK_RETURN: case SDLK_KP_ENTER: - Pref.Language = PyE; - if (Pref.Language != OldLanguage) { - LoadLanguage(); + switch (PyE) { + case 1: + if (Selector != 0){ + Selector--; + } + break; + case 2: + if (Selector != Pref.NLanguages){ + Selector++; + } + break; } - return mMenu; default: break; } From 6b490ff66ea4cf7c748bb92e590097fb49b58baa Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Sun, 5 Apr 2026 12:09:38 +0000 Subject: [PATCH 3/9] Fixed a bit of bugs and added working carousel --- src/menu.cc | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/menu.cc b/src/menu.cc index 045d821..3062378 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -223,10 +223,7 @@ eMenu Menu::SDLMain_Language() // Miscellaneous inits m_mouse.Init(Menu_Py); - PyE = Pref.Language; - if (PyE == -1) { - PyE = 1; - } + PyE = 1; SDL_RenderClear(sdlRenderer); // Set background image and build display @@ -239,6 +236,8 @@ eMenu Menu::SDLMain_Language() // Fetch events do { + Menu_Py[3].StartX = -1; + SDL_RenderClear(sdlRenderer); Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); Sprites[background_hr].Draw(400, 170, 0, Sprites[fmenu].Image[0]); @@ -246,7 +245,7 @@ eMenu Menu::SDLMain_Language() DrawString(225, 140, "Select your", Sprites[fmenu].Image[0]); DrawString(225, 190, "language", Sprites[fmenu].Image[0]); for (i = 0; i < Pref.NLanguages; i++) { - x = i * (800 / 3) + (800 / 6); + x = -(Selector-1)*266+(i * (800 / 3) + (800 / 6)); y = 400; Sprites[T_Language + i].Draw(x, y, 0, Sprites[fmenu].Image[0]); @@ -272,7 +271,6 @@ eMenu Menu::SDLMain_Language() AddButton(1, arrows, 50, 325); AddButton(2, arrows, 800-50, 325); - Menu_Py[3].StartX = -1; DrawString(50, 550, "Press space to continue", Sprites[fmenu].Image[0]); @@ -303,7 +301,7 @@ eMenu Menu::SDLMain_Language() } break; case SDLK_RIGHT: - if (Selector != Pref.NLanguages){ + if (Selector != Pref.NLanguages-1){ Selector++; } break; @@ -325,7 +323,7 @@ eMenu Menu::SDLMain_Language() } break; case 2: - if (Selector != Pref.NLanguages){ + if (Selector != Pref.NLanguages-1){ Selector++; } break; From 4982524329bc9baf7fd9bc6dbdf4ac5f9cde9ea8 Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Sun, 5 Apr 2026 12:35:25 +0000 Subject: [PATCH 4/9] Added mobile support (Added button 'Select') --- src/menu.cc | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/menu.cc b/src/menu.cc index 3062378..2b860fe 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -211,8 +211,6 @@ eMenu Menu::SDLMain() /*************************************/ eMenu Menu::SDLMain_Language() { - int NCol = 1; - int Gap; int NumSp; int ArrowsNumSp; int const OldLanguage = Pref.Language; @@ -223,12 +221,11 @@ eMenu Menu::SDLMain_Language() // Miscellaneous inits m_mouse.Init(Menu_Py); - PyE = 1; + PyE = 3; SDL_RenderClear(sdlRenderer); // Set background image and build display Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); - DrawString(0, 0, "Select your language", Sprites[fmenu].Image[0]); Menu_Py[Pref.NLanguages].StartX = -1; // Erase background @@ -236,24 +233,26 @@ eMenu Menu::SDLMain_Language() // Fetch events do { - Menu_Py[3].StartX = -1; + Menu_Py[4].StartX = -1; SDL_RenderClear(sdlRenderer); + // Drawing background, title Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); Sprites[background_hr].Draw(400, 170, 0, Sprites[fmenu].Image[0]); DrawString(225, 140, "Select your", Sprites[fmenu].Image[0]); DrawString(225, 190, "language", Sprites[fmenu].Image[0]); + // Draw languages icons with offset for (i = 0; i < Pref.NLanguages; i++) { x = -(Selector-1)*266+(i * (800 / 3) + (800 / 6)); y = 400; Sprites[T_Language + i].Draw(x, y, 0, Sprites[fmenu].Image[0]); } - + // Animating scroll and arrows NumSp = (currentTime / 50) % 40 + 120; ArrowsNumSp = (currentTime / 50) % 20; - + // Drawing scroll bar for (e = 0; e < Selector; e++) { if (e == Selector - 1) { m_screen.PrintSprite(locomotive, NumSp, (690 - 300) / 12 * e + 117, 325); @@ -262,17 +261,16 @@ eMenu Menu::SDLMain_Language() m_screen.PrintSprite(logs_wagon, NumSp, (690 - 300) / 12 * e + 117, 325); } } - + // Creating arrows, and select buttons m_screen.PrintSprite(arrow_left, ArrowsNumSp, 300, 400); m_screen.PrintSprite(arrow_right, ArrowsNumSp, 500, 400); - Sprites[arrows].Draw(50, 325, 1, Sprites[fmenu].Image[0]); Sprites[arrows].Draw(800-50, 325, 4, Sprites[fmenu].Image[0]); + Sprites[background_hrr].Draw(400, 550, 0, Sprites[fmenu].Image[0]); AddButton(1, arrows, 50, 325); AddButton(2, arrows, 800-50, 325); - - - DrawString(50, 550, "Press space to continue", Sprites[fmenu].Image[0]); + AddButton(3, background_hrr, 400, 550); + DrawString(400-25*3, 550, "Select", Sprites[fmenu].Image[0]); SDL_Event event; while (SDL_PollEvent(&event)) { @@ -314,6 +312,7 @@ eMenu Menu::SDLMain_Language() Pref.Language = Selector; LoadLanguage(); return mMenu; + case SDLK_RETURN: case SDLK_KP_ENTER: switch (PyE) { @@ -327,6 +326,10 @@ eMenu Menu::SDLMain_Language() Selector++; } break; + case 3: + Pref.Language = Selector; + LoadLanguage(); + return mMenu; } default: break; From bf6e09f3ed04690ce9ce42cbc9680b73f71bbf02 Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Sun, 5 Apr 2026 12:39:20 +0000 Subject: [PATCH 5/9] Fixed clang formating --- src/editor.h | 2 +- src/menu.cc | 44 ++++++++++++++++++++++---------------------- src/menu.h | 2 +- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/editor.h b/src/editor.h index f4fdf6c..5193a43 100644 --- a/src/editor.h +++ b/src/editor.h @@ -36,7 +36,7 @@ class Editor { public: Editor(Mouse &mouse, Game &game, Level &level, Gamepad &gamepad) : - m_mouse(mouse), m_game(game), m_level(level), m_gamepad(gamepad) { }; + m_mouse(mouse), m_game(game), m_level(level), m_gamepad(gamepad) {}; ~Editor() = default; eMenu SDLMain(int LevelNumber); // Main loop diff --git a/src/menu.cc b/src/menu.cc index 2b860fe..3ecf64c 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -214,7 +214,7 @@ eMenu Menu::SDLMain_Language() int NumSp; int ArrowsNumSp; int const OldLanguage = Pref.Language; - unsigned int Selector=Pref.Language; + unsigned int Selector = Pref.Language; int i; int e; int x, y; @@ -244,7 +244,7 @@ eMenu Menu::SDLMain_Language() DrawString(225, 190, "language", Sprites[fmenu].Image[0]); // Draw languages icons with offset for (i = 0; i < Pref.NLanguages; i++) { - x = -(Selector-1)*266+(i * (800 / 3) + (800 / 6)); + x = -(Selector - 1) * 266 + (i * (800 / 3) + (800 / 6)); y = 400; Sprites[T_Language + i].Draw(x, y, 0, Sprites[fmenu].Image[0]); @@ -265,12 +265,12 @@ eMenu Menu::SDLMain_Language() m_screen.PrintSprite(arrow_left, ArrowsNumSp, 300, 400); m_screen.PrintSprite(arrow_right, ArrowsNumSp, 500, 400); Sprites[arrows].Draw(50, 325, 1, Sprites[fmenu].Image[0]); - Sprites[arrows].Draw(800-50, 325, 4, Sprites[fmenu].Image[0]); + Sprites[arrows].Draw(800 - 50, 325, 4, Sprites[fmenu].Image[0]); Sprites[background_hrr].Draw(400, 550, 0, Sprites[fmenu].Image[0]); AddButton(1, arrows, 50, 325); - AddButton(2, arrows, 800-50, 325); + AddButton(2, arrows, 800 - 50, 325); AddButton(3, background_hrr, 400, 550); - DrawString(400-25*3, 550, "Select", Sprites[fmenu].Image[0]); + DrawString(400 - 25 * 3, 550, "Select", Sprites[fmenu].Image[0]); SDL_Event event; while (SDL_PollEvent(&event)) { @@ -294,14 +294,14 @@ eMenu Menu::SDLMain_Language() } return mMenu; case SDLK_LEFT: - if (Selector != 0){ + if (Selector != 0) { Selector--; } break; case SDLK_RIGHT: - if (Selector != Pref.NLanguages-1){ + if (Selector != Pref.NLanguages - 1) { Selector++; - } + } break; case SDLK_F12: // Save screenshot if (event.key.repeat == 0) { @@ -316,20 +316,20 @@ eMenu Menu::SDLMain_Language() case SDLK_RETURN: case SDLK_KP_ENTER: switch (PyE) { - case 1: - if (Selector != 0){ - Selector--; - } - break; - case 2: - if (Selector != Pref.NLanguages-1){ - Selector++; - } - break; - case 3: - Pref.Language = Selector; - LoadLanguage(); - return mMenu; + case 1: + if (Selector != 0) { + Selector--; + } + break; + case 2: + if (Selector != Pref.NLanguages - 1) { + Selector++; + } + break; + case 3: + Pref.Language = Selector; + LoadLanguage(); + return mMenu; } default: break; diff --git a/src/menu.h b/src/menu.h index 5db645e..42b795a 100644 --- a/src/menu.h +++ b/src/menu.h @@ -38,7 +38,7 @@ class Menu { public: Menu(Game &game, Audio &audio, Screen &screen, Mouse &mouse, Gamepad &gamepad) : - m_game(game), m_audio(audio), m_screen(screen), m_mouse(mouse), m_gamepad(gamepad) { }; + m_game(game), m_audio(audio), m_screen(screen), m_mouse(mouse), m_gamepad(gamepad) {}; ~Menu() = default; eMenu SDLMain(); // Main menu From 81529e2ac97b12071b215772f06b1e9c4e27ac4c Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Sun, 5 Apr 2026 12:40:27 +0000 Subject: [PATCH 6/9] Fixed one grammar error at code tips --- src/menu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/menu.cc b/src/menu.cc index 3ecf64c..701a31e 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -261,7 +261,7 @@ eMenu Menu::SDLMain_Language() m_screen.PrintSprite(logs_wagon, NumSp, (690 - 300) / 12 * e + 117, 325); } } - // Creating arrows, and select buttons + // Creating arrows and select buttons m_screen.PrintSprite(arrow_left, ArrowsNumSp, 300, 400); m_screen.PrintSprite(arrow_right, ArrowsNumSp, 500, 400); Sprites[arrows].Draw(50, 325, 1, Sprites[fmenu].Image[0]); From 7763eac027d08f419db1a53906c8636e8483720a Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Mon, 6 Apr 2026 13:23:31 +0000 Subject: [PATCH 7/9] Now language selector is horizontal, and more clear --- src/menu.cc | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/src/menu.cc b/src/menu.cc index 701a31e..9ec7f83 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -215,9 +215,11 @@ eMenu Menu::SDLMain_Language() int ArrowsNumSp; int const OldLanguage = Pref.Language; unsigned int Selector = Pref.Language; + int Offset; int i; int e; int x, y; + int spacing = 70; // Miscellaneous inits m_mouse.Init(Menu_Py); @@ -236,16 +238,14 @@ eMenu Menu::SDLMain_Language() Menu_Py[4].StartX = -1; SDL_RenderClear(sdlRenderer); - // Drawing background, title + // Drawing background Sprites[background_menu].Draw(400, 300, 0, Sprites[fmenu].Image[0]); - Sprites[background_hr].Draw(400, 170, 0, Sprites[fmenu].Image[0]); - - DrawString(225, 140, "Select your", Sprites[fmenu].Image[0]); - DrawString(225, 190, "language", Sprites[fmenu].Image[0]); + Sprites[menu].Draw(200, 300, 0, Sprites[fmenu].Image[0]); // Draw languages icons with offset for (i = 0; i < Pref.NLanguages; i++) { - x = -(Selector - 1) * 266 + (i * (800 / 3) + (800 / 6)); - y = 400; + Offset = -(Selector) * spacing; + x = 625; + y = 100 + i * spacing + Offset; Sprites[T_Language + i].Draw(x, y, 0, Sprites[fmenu].Image[0]); } @@ -255,22 +255,24 @@ eMenu Menu::SDLMain_Language() // Drawing scroll bar for (e = 0; e < Selector; e++) { if (e == Selector - 1) { - m_screen.PrintSprite(locomotive, NumSp, (690 - 300) / 12 * e + 117, 325); + m_screen.PrintSprite(locomotive, NumSp, (690 - 300) / 24 * e + 70, 350); } else { - m_screen.PrintSprite(logs_wagon, NumSp, (690 - 300) / 12 * e + 117, 325); + m_screen.PrintSprite(logs_wagon, NumSp, (690 - 300) / 24 * e + 70, 350); } } - // Creating arrows and select buttons - m_screen.PrintSprite(arrow_left, ArrowsNumSp, 300, 400); - m_screen.PrintSprite(arrow_right, ArrowsNumSp, 500, 400); - Sprites[arrows].Draw(50, 325, 1, Sprites[fmenu].Image[0]); - Sprites[arrows].Draw(800 - 50, 325, 4, Sprites[fmenu].Image[0]); - Sprites[background_hrr].Draw(400, 550, 0, Sprites[fmenu].Image[0]); - AddButton(1, arrows, 50, 325); - AddButton(2, arrows, 800 - 50, 325); - AddButton(3, background_hrr, 400, 550); - DrawString(400 - 25 * 3, 550, "Select", Sprites[fmenu].Image[0]); + // Creating arrows, frame, text and select buttons + DrawString(25, 225, "Select your", Sprites[fmenu].Image[0]); + DrawString(25, 265, "language", Sprites[fmenu].Image[0]); + m_screen.PrintSprite(arrow_left, ArrowsNumSp, 500, 95); + m_screen.PrintSprite(arrow_right, ArrowsNumSp, 750, 95); + Sprites[arrows].Draw(25, 350, 1, Sprites[fmenu].Image[0]); + Sprites[arrows].Draw(385, 350, 4, Sprites[fmenu].Image[0]); + Sprites[background_hrr].Draw(100, 400, 0, Sprites[fmenu].Image[0]); + AddButton(1, arrows, 25, 350); + AddButton(2, arrows, 385, 350); + AddButton(3, background_hrr, 100, 400); + DrawString(100 - 25 * 3, 400, "Select", Sprites[fmenu].Image[0]); SDL_Event event; while (SDL_PollEvent(&event)) { From f3de57a45a61974f921cb493e1a07762cb10b761 Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Mon, 6 Apr 2026 13:25:55 +0000 Subject: [PATCH 8/9] Fixed bug with buttons --- src/menu.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/menu.cc b/src/menu.cc index 9ec7f83..d7c3400 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -235,7 +235,7 @@ eMenu Menu::SDLMain_Language() // Fetch events do { - Menu_Py[4].StartX = -1; + Menu_Py[3].StartX = -1; SDL_RenderClear(sdlRenderer); // Drawing background @@ -269,9 +269,9 @@ eMenu Menu::SDLMain_Language() Sprites[arrows].Draw(25, 350, 1, Sprites[fmenu].Image[0]); Sprites[arrows].Draw(385, 350, 4, Sprites[fmenu].Image[0]); Sprites[background_hrr].Draw(100, 400, 0, Sprites[fmenu].Image[0]); - AddButton(1, arrows, 25, 350); - AddButton(2, arrows, 385, 350); - AddButton(3, background_hrr, 100, 400); + AddButton(0, arrows, 25, 350); + AddButton(1, arrows, 385, 350); + AddButton(2, background_hrr, 100, 400); DrawString(100 - 25 * 3, 400, "Select", Sprites[fmenu].Image[0]); SDL_Event event; @@ -318,17 +318,17 @@ eMenu Menu::SDLMain_Language() case SDLK_RETURN: case SDLK_KP_ENTER: switch (PyE) { - case 1: + case 0: if (Selector != 0) { Selector--; } break; - case 2: + case 1: if (Selector != Pref.NLanguages - 1) { Selector++; } break; - case 3: + case 2: Pref.Language = Selector; LoadLanguage(); return mMenu; From 668c028bc3ab226060fb1b9a8a8caa1a6d0b4ee3 Mon Sep 17 00:00:00 2001 From: zabidenhtf Date: Mon, 6 Apr 2026 13:28:10 +0000 Subject: [PATCH 9/9] Fixed clang format --- src/menu.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/menu.cc b/src/menu.cc index d7c3400..5b8382e 100644 --- a/src/menu.cc +++ b/src/menu.cc @@ -243,7 +243,7 @@ eMenu Menu::SDLMain_Language() Sprites[menu].Draw(200, 300, 0, Sprites[fmenu].Image[0]); // Draw languages icons with offset for (i = 0; i < Pref.NLanguages; i++) { - Offset = -(Selector) * spacing; + Offset = -(Selector)*spacing; x = 625; y = 100 + i * spacing + Offset;