void GameChat::toggle_chat(GameState* gs) { if (is_typing) { if (!typed_message.message.empty()) { typed_message.sender = gs->game_settings().username; int colour_idx = gs->player_data().local_player_data().net_id % player_colours_n; typed_message.sender_colour = player_colours[colour_idx]; if (!handle_special_commands(gs, typed_message.message)) { add_message(typed_message); net_send_chatmessage(gs->net_connection(), typed_message); } } else { show_chat = false; fade_out_rate = 0.1f; } reset_typed_message(); is_typing = false; } else { if (!show_chat) show_chat = true; else if (show_chat) is_typing = true; } }
void GameChat::toggle_chat(GameState* gs) { if (is_typing) { if (!typing_field.empty()) { ChatMessage typed_message = get_field_as_chat_message(gs, true); if (!handle_special_commands(gs, typed_message.message)) { add_message(typed_message); net_send_chatmessage(gs->net_connection(), typed_message); } } else { show_chat = false; fade_out_rate = 0.1f; } reset_typed_message(); is_typing = false; } else { if (!show_chat) show_chat = true; else if (show_chat) is_typing = true; } }