From 5ca0e6e6f250acb1e61864c413e0795be8b65492 Mon Sep 17 00:00:00 2001 From: Sofia Date: Fri, 24 Jul 2026 04:14:55 +0300 Subject: [PATCH] Make sure chat messages always remain --- rust/src/chat.rs | 14 ++++++-------- rust/src/game_manager.rs | 11 +++++++++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/rust/src/chat.rs b/rust/src/chat.rs index c0db896..b677b7a 100644 --- a/rust/src/chat.rs +++ b/rust/src/chat.rs @@ -37,7 +37,7 @@ impl Chat { pub enum ChatMessage { Death(DamageSource, u16), Announcement(u16, Announcement), - ChatMessage(u16, String), + ChatMessage(String, Color, String), } impl ChatMessage { @@ -79,13 +79,11 @@ impl ChatMessage { label.append_text(&format!("[color=red]{}[/color]", what)); } } - ChatMessage::ChatMessage(player_id, message) => { - if let Some(game) = Game::singleton() - && let Some(player) = game.bind().find_player(*player_id) - { - add_player(&mut label, &player); - label.add_text(message); - } + ChatMessage::ChatMessage(name, color, message) => { + label.push_color(*color); + label.add_text(&format!("{}: ", name)); + label.pop(); + label.add_text(message); } } label diff --git a/rust/src/game_manager.rs b/rust/src/game_manager.rs index afb5152..282c4f3 100644 --- a/rust/src/game_manager.rs +++ b/rust/src/game_manager.rs @@ -909,8 +909,15 @@ impl Game { pub fn on_chat_message(&mut self, player_id: u16, message: String) { if let Some(chat) = &mut Chat::singleton() { - chat.bind_mut() - .new_message(ChatMessage::ChatMessage(player_id, message.clone())); + if let Some(player) = self.find_player(player_id) + && let Some(team) = self.get_team(player.data.team) + { + chat.bind_mut().new_message(ChatMessage::ChatMessage( + player.data.name.clone(), + team.bind().color, + message.clone(), + )); + } } self.run_deferred(move |_| { if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer