From 7a285a5eb8109b0df3f97064baa82f2b47978ddf Mon Sep 17 00:00:00 2001 From: bones_was_here Date: Sat, 14 Jan 2023 18:40:37 +1000 Subject: [PATCH] Remove code duplication in messagemodes and commandmode Signed-off-by: bones_was_here --- console.c | 43 ++++++++++++++++++------------------------- keys.c | 2 +- keys.h | 2 +- 3 files changed, 20 insertions(+), 27 deletions(-) diff --git a/console.c b/console.c index 83b969dd..58409bef 100644 --- a/console.c +++ b/console.c @@ -711,18 +711,12 @@ void Con_ClearNotify (void) CON_LINES(i).mask |= CON_MASK_HIDENOTIFY; } - -/* -================ -Con_MessageMode_f -================ -*/ -static void Con_MessageMode_f(cmd_state_t *cmd) +static void Con_MsgCmdMode(cmd_state_t *cmd, signed char mode) { - if (cls.demoplayback) + if (cls.demoplayback && mode >= 0) return; key_dest = key_message; - chat_mode = 0; // "say" + chat_mode = mode; if(Cmd_Argc(cmd) > 1) { dpsnprintf(chat_buffer, sizeof(chat_buffer), "%s ", Cmd_Args(cmd)); @@ -730,23 +724,28 @@ static void Con_MessageMode_f(cmd_state_t *cmd) } } +/* +================ +Con_MessageMode_f + +"say" +================ +*/ +static void Con_MessageMode_f(cmd_state_t *cmd) +{ + Con_MsgCmdMode(cmd, 0); +} /* ================ Con_MessageMode2_f + +"say_team" ================ */ static void Con_MessageMode2_f(cmd_state_t *cmd) { - if (cls.demoplayback) - return; - key_dest = key_message; - chat_mode = 1; // "say_team" - if(Cmd_Argc(cmd) > 1) - { - dpsnprintf(chat_buffer, sizeof(chat_buffer), "%s ", Cmd_Args(cmd)); - chat_bufferpos = (unsigned int)strlen(chat_buffer); - } + Con_MsgCmdMode(cmd, 1); } /* @@ -756,13 +755,7 @@ Con_CommandMode_f */ static void Con_CommandMode_f(cmd_state_t *cmd) { - key_dest = key_message; - if(Cmd_Argc(cmd) > 1) - { - dpsnprintf(chat_buffer, sizeof(chat_buffer), "%s ", Cmd_Args(cmd)); - chat_bufferpos = (unsigned int)strlen(chat_buffer); - } - chat_mode = -1; // command + Con_MsgCmdMode(cmd, -1); } /* diff --git a/keys.c b/keys.c index cef9dc91..bcf1c916 100644 --- a/keys.c +++ b/keys.c @@ -694,7 +694,7 @@ Interactive line editing and console scrollback ==================== */ -int chat_mode; // 0 for say, 1 for say_team, -1 for command +signed char chat_mode; // 0 for say, 1 for say_team, -1 for command char chat_buffer[MAX_INPUTLINE]; int chat_bufferpos = 0; diff --git a/keys.h b/keys.h index f6b78cd0..57ec1702 100644 --- a/keys.h +++ b/keys.h @@ -371,7 +371,7 @@ extern keydest_t key_dest; extern int key_consoleactive; extern char *keybindings[MAX_BINDMAPS][MAX_KEYS]; -extern int chat_mode; // 0 for say, 1 for say_team, -1 for command +extern signed char chat_mode; // 0 for say, 1 for say_team, -1 for command extern char chat_buffer[MAX_INPUTLINE]; extern int chat_bufferpos; -- 2.39.2