summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/client.h2
-rw-r--r--src/client/console.c14
-rw-r--r--src/client/demo.c2
-rw-r--r--src/client/main.c12
4 files changed, 19 insertions, 11 deletions
diff --git a/src/client/client.h b/src/client/client.h
index 187a1f4..a0a1a16 100644
--- a/src/client/client.h
+++ b/src/client/client.h
@@ -873,7 +873,7 @@ void Con_ClearNotify_f(void);
void Con_ToggleConsole_f(void);
void Con_ClearTyping(void);
void Con_Close(qboolean force);
-void Con_Popup(void);
+void Con_Popup(qboolean force);
void Con_SkipNotify(qboolean skip);
void Con_RegisterMedia(void);
diff --git a/src/client/console.c b/src/client/console.c
index f91e527..ca3b22d 100644
--- a/src/client/console.c
+++ b/src/client/console.c
@@ -121,7 +121,7 @@ if user has typed something into it since the last call to Con_Popup.
*/
void Con_Close(qboolean force)
{
- if (con.mode && !force) {
+ if (con.mode > CON_POPUP && !force) {
return;
}
@@ -131,7 +131,7 @@ void Con_Close(qboolean force)
Key_SetDest(cls.key_dest & ~KEY_CONSOLE);
con.destHeight = con.currentHeight = 0;
- con.mode = CON_DEFAULT;
+ con.mode = CON_POPUP;
con.chat = CHAT_NONE;
}
@@ -139,12 +139,12 @@ void Con_Close(qboolean force)
================
Con_Popup
-Drop to connection screen.
+Drop to connection screen. Unless `force' is true, does not change console mode to popup.
================
*/
-void Con_Popup(void)
+void Con_Popup(qboolean force)
{
- if (con.mode == CON_DEFAULT) {
+ if (force) {
con.mode = CON_POPUP;
}
@@ -168,7 +168,7 @@ static void toggle_console(consoleMode_t mode, chatMode_t chat)
if (cls.key_dest & KEY_CONSOLE) {
Key_SetDest(cls.key_dest & ~KEY_CONSOLE);
- con.mode = CON_DEFAULT;
+ con.mode = CON_POPUP;
con.chat = CHAT_NONE;
return;
}
@@ -1018,7 +1018,7 @@ static void Con_Say(char *msg)
// don't close console after connecting
static void Con_InteractiveMode(void)
{
- if (!con.mode) {
+ if (con.mode == CON_POPUP) {
con.mode = CON_DEFAULT;
}
}
diff --git a/src/client/demo.c b/src/client/demo.c
index 154c5af..f57eaac 100644
--- a/src/client/demo.c
+++ b/src/client/demo.c
@@ -733,7 +733,7 @@ static void CL_PlayDemo_f(void)
Q_strlcpy(cls.servername, COM_SkipPath(name), sizeof(cls.servername));
cls.serverAddress.type = NA_LOOPBACK;
- Con_Popup();
+ Con_Popup(qtrue);
SCR_UpdateScreen();
// parse the first message just read
diff --git a/src/client/main.c b/src/client/main.c
index da290f6..e48fb13 100644
--- a/src/client/main.c
+++ b/src/client/main.c
@@ -407,7 +407,7 @@ void CL_CheckForResend(void)
cls.passive = qfalse;
- Con_Popup();
+ Con_Popup(qtrue);
UI_OpenMenu(UIMENU_NONE);
}
@@ -563,7 +563,7 @@ usage:
cls.connect_time -= CONNECT_FAST;
cls.connect_count = 0;
- Con_Popup();
+ Con_Popup(qtrue);
CL_CheckForResend();
@@ -2356,6 +2356,8 @@ void CL_RestartFilesystem(qboolean total)
cls.state = ca_loading;
}
+ Con_Popup(qfalse);
+
UI_Shutdown();
S_StopAllSounds();
@@ -2395,6 +2397,8 @@ void CL_RestartFilesystem(qboolean total)
// switch back to original state
cls.state = cls_state;
+ Con_Close(qfalse);
+
CL_UpdateFrameTimes();
cvar_modified &= ~CVAR_FILES;
@@ -2414,6 +2418,8 @@ void CL_RestartRefresh(qboolean total)
cls.state = ca_loading;
}
+ Con_Popup(qfalse);
+
S_StopAllSounds();
if (total) {
@@ -2443,6 +2449,8 @@ void CL_RestartRefresh(qboolean total)
// switch back to original state
cls.state = cls_state;
+ Con_Close(qfalse);
+
CL_UpdateFrameTimes();
cvar_modified &= ~CVAR_FILES;