From 511255216c1283c9d19db1024f10a39a88d43a74 Mon Sep 17 00:00:00 2001 From: Antonio Martinez Date: Fri, 13 Sep 2024 20:01:31 -0700 Subject: [PATCH] WIP --- src/g_input.c | 2 +- src/k_hud.cpp | 7 ++++++- src/k_hud.h | 2 +- src/v_draw.cpp | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/g_input.c b/src/g_input.c index e99f35499..8a209c12f 100644 --- a/src/g_input.c +++ b/src/g_input.c @@ -879,7 +879,7 @@ const char *G_KeynumToString(INT32 keynum) // return a string with the ascii char if displayable if (keynum > ' ' && keynum <= 'z' && keynum != KEY_CONSOLE) { - keynamestr[0] = (char)keynum; + keynamestr[0] = (char)(keynum - 32); // Uppercase looks better! keynamestr[1] = '\0'; return keynamestr; } diff --git a/src/k_hud.cpp b/src/k_hud.cpp index b6d47a30e..dcb5f0772 100644 --- a/src/k_hud.cpp +++ b/src/k_hud.cpp @@ -6303,7 +6303,7 @@ void K_ClearPersistentMessages() } // Return value can be used for "paired" splitscreen messages, true = was displayed -void K_AddMessageForPlayer(const player_t *player, const char *msg, boolean interrupt, boolean persist) +void K_AddMessageForPlayer(player_t *player, const char *msg, boolean interrupt, boolean persist) { if (!player) return; @@ -6319,7 +6319,12 @@ void K_AddMessageForPlayer(const player_t *player, const char *msg, boolean inte if (interrupt) state->clear(); + // FIXME: SUPER BAD HACK. + // Need a way to parse messages as a given player instead. + player_t *oldstplyr = stplyr; + stplyr = player; std::string parsedmsg = srb2::Draw::TextElement().parse(msg).string(); + stplyr = oldstplyr; if (persist) state->objective = parsedmsg; diff --git a/src/k_hud.h b/src/k_hud.h index 9112f00da..727115a35 100644 --- a/src/k_hud.h +++ b/src/k_hud.h @@ -109,7 +109,7 @@ extern patch_t *kp_facenum[MAXPLAYERS+1]; extern patch_t *kp_unknownminimap; void K_AddMessage(const char *msg, boolean interrupt, boolean persist); -void K_AddMessageForPlayer(const player_t *player, const char *msg, boolean interrupt, boolean persist); +void K_AddMessageForPlayer(player_t *player, const char *msg, boolean interrupt, boolean persist); void K_ClearPersistentMessages(void); void K_ClearPersistentMessageForPlayer(player_t *player); void K_TickMessages(void); diff --git a/src/v_draw.cpp b/src/v_draw.cpp index d903bf5b2..4b55f0ccb 100644 --- a/src/v_draw.cpp +++ b/src/v_draw.cpp @@ -141,7 +141,7 @@ Draw::TextElement& Draw::TextElement::parse(std::string_view raw) ourProfile = PR_GetLocalPlayerProfile(0); string_.append("\x88"); - string_.append(G_KeynumToString(ourProfile->controls[id->second][0])); + string_.append((G_KeynumToString(ourProfile->controls[id->second][0]))); string_.append("\x80"); } else // This is a color code or some other generic glyph, treat it as is.