1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 19:13:07 +01:00

add option to log chat history

This commit is contained in:
Ted John
2016-05-30 18:01:17 +01:00
parent 618d13a9a3
commit feb65ea93c
6 changed files with 24 additions and 8 deletions

View File

@@ -4173,6 +4173,8 @@ STR_5861 :Key verification failure.
STR_5862 :Block unknown players.
STR_5863 :{SMALLFONT}{BLACK}Only allow players with known keys to join.
STR_5864 :This server only allows whitelisted players to connect.
STR_5865 :Log chat history
STR_5866 :{SMALLFONT}{BLACK}Logs all chat history to files in your user directory.
#############
# Scenarios #

View File

@@ -254,6 +254,7 @@ config_property_definition _networkDefinitions[] = {
{ offsetof(network_configuration, provider_email), "provider_email", CONFIG_VALUE_TYPE_STRING, {.value_string = NULL }, NULL },
{ offsetof(network_configuration, provider_website), "provider_website", CONFIG_VALUE_TYPE_STRING, {.value_string = NULL }, NULL },
{ offsetof(network_configuration, known_keys_only), "known_keys_only", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
{ offsetof(network_configuration, log_chat), "log_chat", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL },
};
config_property_definition _notificationsDefinitions[] = {

View File

@@ -230,6 +230,7 @@ typedef struct network_configuration {
utf8string provider_email;
utf8string provider_website;
uint8 known_keys_only;
uint8 log_chat;
} network_configuration;
typedef struct notification_configuration {

View File

@@ -2637,6 +2637,8 @@ enum {
STR_ALLOW_KNOWN_KEYS_ONLY = 5862,
STR_ALLOW_KNOWN_KEYS_ONLY_TIP = 5863,
STR_MULTIPLAYER_UNKNOWN_KEY_DISALLOWED = 5864,
STR_LOG_CHAT = 5865,
STR_LOG_CHAT_TIP = 5866,
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
STR_COUNT = 32768

View File

@@ -944,6 +944,10 @@ void Network::BeginChatLog()
void Network::AppendChatLog(const utf8 *text)
{
if (!gConfigNetwork.log_chat) {
return;
}
const utf8 *chatLogPath = _chatLogPath.c_str();
utf8 directory[MAX_PATH];

View File

@@ -50,7 +50,8 @@ enum WINDOW_MULTIPLAYER_WIDGET_IDX {
WIDX_SELECTED_GROUP_DROPDOWN,
WIDX_PERMISSIONS_LIST,
WIDX_KNOWN_KEYS_ONLY_CHECKBOX = 7,
WIDX_LOG_CHAT_CHECKBOX = 7,
WIDX_KNOWN_KEYS_ONLY_CHECKBOX,
};
#define MAIN_MULTIPLAYER_WIDGETS \
@@ -83,7 +84,8 @@ static rct_widget window_multiplayer_groups_widgets[] = {
static rct_widget window_multiplayer_options_widgets[] = {
MAIN_MULTIPLAYER_WIDGETS,
{ WWT_CHECKBOX, 1, 3, 297, 50, 61, STR_ALLOW_KNOWN_KEYS_ONLY, STR_ALLOW_KNOWN_KEYS_ONLY_TIP },
{ WWT_CHECKBOX, 1, 3, 297, 50, 61, STR_LOG_CHAT, STR_LOG_CHAT_TIP },
{ WWT_CHECKBOX, 1, 3, 297, 64, 75, STR_ALLOW_KNOWN_KEYS_ONLY, STR_ALLOW_KNOWN_KEYS_ONLY_TIP },
{ WIDGETS_END }
};
@@ -96,7 +98,7 @@ static rct_widget *window_multiplayer_page_widgets[] = {
const uint64 window_multiplayer_page_enabled_widgets[] = {
(1 << WIDX_CLOSE) | (1 << WIDX_TAB1) | (1 << WIDX_TAB2) | (1 << WIDX_TAB3),
(1 << WIDX_CLOSE) | (1 << WIDX_TAB1) | (1 << WIDX_TAB2) | (1 << WIDX_TAB3) | (1 << WIDX_DEFAULT_GROUP) | (1 << WIDX_DEFAULT_GROUP_DROPDOWN) | (1 << WIDX_ADD_GROUP) | (1 << WIDX_REMOVE_GROUP) | (1 << WIDX_RENAME_GROUP) | (1 << WIDX_SELECTED_GROUP) | (1 << WIDX_SELECTED_GROUP_DROPDOWN),
(1 << WIDX_CLOSE) | (1 << WIDX_TAB1) | (1 << WIDX_TAB2) | (1 << WIDX_TAB3) | (1 << WIDX_KNOWN_KEYS_ONLY_CHECKBOX),
(1 << WIDX_CLOSE) | (1 << WIDX_TAB1) | (1 << WIDX_TAB2) | (1 << WIDX_TAB3) | (1 << WIDX_LOG_CHAT_CHECKBOX) | (1 << WIDX_KNOWN_KEYS_ONLY_CHECKBOX),
};
static uint8 _selectedGroup = 0;
@@ -264,11 +266,6 @@ static void window_multiplayer_set_page(rct_window* w, int page){
w->pressed_widgets = 0;
w->widgets = window_multiplayer_page_widgets[page];
if (network_get_mode() == NETWORK_MODE_CLIENT) {
w->widgets[WIDX_TAB3].type = WWT_EMPTY;
w->disabled_widgets |= (1 << WIDX_TAB3);
}
window_event_resize_call(w);
window_event_invalidate_call(w);
window_init_scroll_widgets(w);
@@ -761,6 +758,10 @@ static void window_multiplayer_options_mouseup(rct_window *w, int widgetIndex)
window_multiplayer_set_page(w, widgetIndex - WIDX_TAB1);
}
break;
case WIDX_LOG_CHAT_CHECKBOX:
gConfigNetwork.log_chat = !gConfigNetwork.log_chat;
config_save_default();
break;
case WIDX_KNOWN_KEYS_ONLY_CHECKBOX:
gConfigNetwork.known_keys_only = !gConfigNetwork.known_keys_only;
config_save_default();
@@ -785,6 +786,11 @@ static void window_multiplayer_options_invalidate(rct_window *w)
window_multiplayer_anchor_border_widgets(w);
window_align_tabs(w, WIDX_TAB1, WIDX_TAB3);
if (network_get_mode() == NETWORK_MODE_CLIENT) {
w->widgets[WIDX_KNOWN_KEYS_ONLY_CHECKBOX].type = WWT_EMPTY;
}
widget_set_checkbox_value(w, WIDX_LOG_CHAT_CHECKBOX, gConfigNetwork.log_chat);
widget_set_checkbox_value(w, WIDX_KNOWN_KEYS_ONLY_CHECKBOX, gConfigNetwork.known_keys_only);
}