litchie / exult-ios

Exult ( http://exult.sourceforge.net/ )
GNU General Public License v2.0
42 stars 8 forks source link

Shortcut bar crashes "Setup" in main Exult menu #33

Closed DominusExult closed 9 years ago

DominusExult commented 9 years ago

Commit 388eba5 breaks the Setup menu. I had removed these in bce2c6c because they are crashing the "Setup" in the Exult main menu (where you can chose the game you want to play). So this gets a bit more complicated :(

litchie commented 9 years ago

Good catch! I wasn't aware of that:D

Will look into it.

DominusExult commented 9 years ago

With the following patch, there is no crash in the Exult Setup and in game the shortcut bar seems to work as before. Saving/loading a game works as well. Good to go or is there an obvious catch?

diff --git a/gumps/Gump_manager.cc b/gumps/Gump_manager.cc
index 5f7f4d2..ddaf852 100644
--- a/gumps/Gump_manager.cc
+++ b/gumps/Gump_manager.cc
@@ -431,7 +431,8 @@ void Gump_manager::paint(bool modal) {
    gkeyboard->paint();
 #endif
 #ifdef __IPHONEOS__
-   g_shortcutBar->paint();
+   if (!gwin->is_in_exult_menu())
+       g_shortcutBar->paint();
 #endif
 }

@@ -481,10 +482,6 @@ int Gump_manager::handle_modal_gump_event(
        if (gkeyboard->handle_event(&event))
            break;
 #endif
-#ifdef __IPHONEOS__
-       if (g_shortcutBar->handle_event(&event))
-           break;
-#endif
        if (event.button.button == 1) {
            gump->mouse_down(gx, gy, event.button.button);
        } else if (event.button.button == 2) {
@@ -509,10 +506,6 @@ int Gump_manager::handle_modal_gump_event(
        if (gkeyboard->handle_event(&event))
            break;
 #endif
-#ifdef __IPHONEOS__
-       if (g_shortcutBar->handle_event(&event))
-           break;
-#endif
        if (event.button.button != 3)
            gump->mouse_up(gx, gy, event.button.button);
        else if (rightclick) {