From dbba73f598ac319ad2a64453eadebc5d391a3983 Mon Sep 17 00:00:00 2001 From: jsalmon3 <> Date: Sat, 23 Nov 2002 22:19:36 +0000 Subject: [PATCH] Added ErrorMenu and NetErrorMenu --- src/include/menus.h | 3 ++ src/ui/menus.cpp | 96 ++++++++++++++++++++++++--------------------- 2 files changed, 54 insertions(+), 45 deletions(-) diff --git a/src/include/menus.h b/src/include/menus.h index d4bb04a36..cf51dfe51 100644 --- a/src/include/menus.h +++ b/src/include/menus.h @@ -342,6 +342,9 @@ extern void EditorEditAiProperties(void); /// Save map from the editor extern int EditorSave(void); + /// Error menu +extern void ErrorMenu(char *); + //@} #endif // !__MENUS_H__ diff --git a/src/ui/menus.cpp b/src/ui/menus.cpp index 157998a17..b8922eb23 100644 --- a/src/ui/menus.cpp +++ b/src/ui/menus.cpp @@ -304,6 +304,7 @@ local void ReplayGameCancel(void); local void DiplomacyWait(Menuitem *mi); local void DiplomacyOk(void); +local void NetErrorMenu(char *error); /*---------------------------------------------------------------------------- -- Variables @@ -2655,10 +2656,7 @@ local void JoinNetGameMenu(void) // Now finally here is the address server_host_buffer[menu->items[1].d.input.nch] = 0; if (NetworkSetupServerAddress(server_host_buffer)) { - menu = FindMenu("menu-net-error"); - menu->items[1].d.text.text = "Unable to lookup host."; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; + NetErrorMenu("Unable to lookup host."); VideoLockScreen(); MenusSetBackground(); VideoUnlockScreen(); @@ -2716,59 +2714,38 @@ local void NetConnectingCancel(void) */ local void TerminateNetConnect(void) { - Menu *menu; - - menu = FindMenu("menu-net-error"); switch (NetLocalState) { case ccs_unreachable: - menu->items[1].d.text.text = "Cannot reach server."; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; - + NetErrorMenu("Cannot reach server."); NetConnectingCancel(); return; case ccs_nofreeslots: - menu->items[1].d.text.text = "Server is full."; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; - + NetErrorMenu("Server is full."); NetConnectingCancel(); return; case ccs_serverquits: - menu->items[1].d.text.text = "Server gone."; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; - + NetErrorMenu("Server gone."); NetConnectingCancel(); return; case ccs_incompatibleengine: - menu->items[1].d.text.text = "Incompatible engine version."; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; - + NetErrorMenu("Incompatible engine version."); NetConnectingCancel(); return; case ccs_badmap: - menu->items[1].d.text.text = "Map not available."; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; - + NetErrorMenu("Map not available."); NetConnectingCancel(); return; case ccs_incompatiblenetwork: - menu->items[1].d.text.text = "Incompatible network version."; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; - + NetErrorMenu("Incompatible network version."); + NetConnectingCancel(); + return; case ccs_usercanceled: NetConnectingCancel(); return; - case ccs_started: NetworkGamePrepareGameSettings(); CustomGameStart(); return; - default: break; } @@ -4785,10 +4762,7 @@ local void EditorNewOk(void) sprintf(menu->items[5].d.input.buffer, "32~!_"); menu->items[5].d.input.nch = strlen(menu->items[5].d.text.text) - 3; } - menu = FindMenu("menu-net-error"); - menu->items[1].d.text.text = "Size smaller than 32"; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; + ErrorMenu("Size smaller than 32"); } else if (value1 > 1024 || value2 > 1024) { if (value1 == 0) { sprintf(menu->items[4].d.input.buffer, "1024~!_"); @@ -4798,10 +4772,7 @@ local void EditorNewOk(void) sprintf(menu->items[5].d.input.buffer, "1024~!_"); menu->items[5].d.input.nch = strlen(menu->items[5].d.text.text) - 3; } - menu = FindMenu("menu-net-error"); - menu->items[1].d.text.text = "Size larger than 1024"; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; + ErrorMenu("Size larger than 1024"); } else if (value1/32*32 != value1 || value2/32*32 != value2) { if (value1/32*32 != value1) { sprintf(menu->items[4].d.input.buffer, "%d~!_", (value1+16)/32*32); @@ -4811,10 +4782,7 @@ local void EditorNewOk(void) sprintf(menu->items[5].d.input.buffer, "%d~!_", (value2+16)/32*32); menu->items[5].d.input.nch = strlen(menu->items[5].d.text.text) - 3; } - menu = FindMenu("menu-net-error"); - menu->items[1].d.text.text = "Size must be a multiple of 32"; - ProcessMenu("menu-net-error", 1); - menu->items[1].d.text.text = NULL; + ErrorMenu("Size must be a multiple of 32"); } else { EndMenu(); @@ -6621,6 +6589,44 @@ local void ReplayGameCancel(void) menu->items[5].d.button.text = NULL; } +/** +** Net error menu +** +** @param error Error message +*/ +local void NetErrorMenu(char *error) +{ + Menu *menu; + + menu = FindMenu("menu-net-error"); + menu->items[1].d.text.text = error; + ProcessMenu("menu-net-error", 1); + menu->items[1].d.text.text = NULL; +} + +/** +** Error menu +** +** @param error Error message +*/ +global void ErrorMenu(char *error) +{ + Menu *menu; + int oldx; + int oldy; + + menu = FindMenu("menu-net-error"); + oldx = menu->x; + oldy = menu->y; + menu->x = (VideoWidth - menu->xsize) / 2; + menu->y = (VideoHeight - menu->ysize) / 2; + menu->items[1].d.text.text = error; + ProcessMenu("menu-net-error", 1); + menu->items[1].d.text.text = NULL; + menu->x = oldx; + menu->y = oldy; +} + /*---------------------------------------------------------------------------- -- Init functions ----------------------------------------------------------------------------*/