Пример #1
0
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;
	}
}
Пример #2
0
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;
	}
}