Pre-parse objective messages

Fixes objective message button prompts in tutorials having EXTREMELY weird delays compared to dialogue boxes
This commit is contained in:
toaster 2024-04-14 22:22:11 +01:00
parent f29ed06e92
commit 222f4fd4c8

View file

@ -5910,10 +5910,12 @@ void K_AddMessage(const char *msg, boolean interrupt, boolean persist)
if (interrupt) if (interrupt)
state.clear(); state.clear();
std::string parsedmsg = srb2::Draw::TextElement().parse(msg).string();
if (persist) if (persist)
state.objective = msg; state.objective = parsedmsg;
else else
state.add(msg); state.add(parsedmsg);
} }
} }
@ -5940,10 +5942,12 @@ void K_AddMessageForPlayer(player_t *player, const char *msg, boolean interrupt,
if (interrupt) if (interrupt)
state->clear(); state->clear();
std::string parsedmsg = srb2::Draw::TextElement().parse(msg).string();
if (persist) if (persist)
state->objective = msg; state->objective = parsedmsg;
else else
state->add(msg); state->add(parsedmsg);
} }
void K_ClearPersistentMessageForPlayer(player_t *player) void K_ClearPersistentMessageForPlayer(player_t *player)
@ -5997,7 +6001,6 @@ static void K_DrawMessageFeed(void)
Draw::TextElement text(submsg); Draw::TextElement text(submsg);
text.font(Draw::Font::kMenu); text.font(Draw::Font::kMenu);
submsg = text.parse(submsg).string();
UINT8 x = 160; UINT8 x = 160;
UINT8 y = 10; UINT8 y = 10;