Make sure chat messages always remain

This commit is contained in:
Sofia 2026-07-24 04:14:55 +03:00
parent 4666cf2521
commit 5ca0e6e6f2
2 changed files with 15 additions and 10 deletions

View File

@ -37,7 +37,7 @@ impl Chat {
pub enum ChatMessage { pub enum ChatMessage {
Death(DamageSource, u16), Death(DamageSource, u16),
Announcement(u16, Announcement), Announcement(u16, Announcement),
ChatMessage(u16, String), ChatMessage(String, Color, String),
} }
impl ChatMessage { impl ChatMessage {
@ -79,15 +79,13 @@ impl ChatMessage {
label.append_text(&format!("[color=red]{}[/color]", what)); label.append_text(&format!("[color=red]{}[/color]", what));
} }
} }
ChatMessage::ChatMessage(player_id, message) => { ChatMessage::ChatMessage(name, color, message) => {
if let Some(game) = Game::singleton() label.push_color(*color);
&& let Some(player) = game.bind().find_player(*player_id) label.add_text(&format!("{}: ", name));
{ label.pop();
add_player(&mut label, &player);
label.add_text(message); label.add_text(message);
} }
} }
}
label label
} }
} }

View File

@ -909,8 +909,15 @@ impl Game {
pub fn on_chat_message(&mut self, player_id: u16, message: String) { pub fn on_chat_message(&mut self, player_id: u16, message: String) {
if let Some(chat) = &mut Chat::singleton() { if let Some(chat) = &mut Chat::singleton() {
chat.bind_mut() if let Some(player) = self.find_player(player_id)
.new_message(ChatMessage::ChatMessage(player_id, message.clone())); && 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 |_| { self.run_deferred(move |_| {
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer