From 9bad4183a7584306ec876fb512e8327a27b6ffdf Mon Sep 17 00:00:00 2001 From: IntelOrca Date: Sat, 7 Nov 2015 23:56:16 +0000 Subject: [PATCH] add default master server url and refactor --- src/config.c | 6 +++--- src/config.h | 2 +- src/network/network.cpp | 12 +++++++++--- src/rct2.h | 2 +- src/windows/server_list.c | 23 +++++++++++++---------- 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/config.c b/src/config.c index f3040804a9..40e83036fa 100644 --- a/src/config.c +++ b/src/config.c @@ -157,7 +157,7 @@ config_enum_definition _dateFormatEnum[] = { config_property_definition _generalDefinitions[] = { { offsetof(general_configuration, always_show_gridlines), "always_show_gridlines", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, - { offsetof(general_configuration, autosave_frequency), "autosave", CONFIG_VALUE_TYPE_UINT8, AUTOSAVE_EVERY_5MINUTES, NULL }, + { offsetof(general_configuration, autosave_frequency), "autosave", CONFIG_VALUE_TYPE_UINT8, AUTOSAVE_EVERY_5MINUTES, NULL }, { offsetof(general_configuration, confirmation_prompt), "confirmation_prompt", CONFIG_VALUE_TYPE_UINT8, 0, NULL }, { offsetof(general_configuration, construction_marker_colour), "construction_marker_colour", CONFIG_VALUE_TYPE_UINT8, false, NULL }, { offsetof(general_configuration, currency_format), "currency_format", CONFIG_VALUE_TYPE_UINT8, CURRENCY_POUNDS, _currencyEnum }, @@ -243,8 +243,8 @@ config_property_definition _networkDefinitions[] = { { offsetof(network_configuration, advertise), "advertise", CONFIG_VALUE_TYPE_BOOLEAN, false, NULL }, { offsetof(network_configuration, maxplayers), "maxplayers", CONFIG_VALUE_TYPE_UINT8, 16, NULL }, { offsetof(network_configuration, server_name), "server_name", CONFIG_VALUE_TYPE_STRING, {.value_string = "Server" }, NULL }, - { offsetof(network_configuration, server_description), "server_description", CONFIG_VALUE_TYPE_STRING, {.value_string = "" }, NULL }, - { offsetof(network_configuration, master_url), "master_url", CONFIG_VALUE_TYPE_STRING, {.value_string = OPENRCT2_MASTER_URL }, NULL } + { offsetof(network_configuration, server_description), "server_description", CONFIG_VALUE_TYPE_STRING, {.value_string = NULL }, NULL }, + { offsetof(network_configuration, master_server_url), "master_server_url", CONFIG_VALUE_TYPE_STRING, {.value_string = NULL }, NULL } }; config_section_definition _sectionDefinitions[] = { diff --git a/src/config.h b/src/config.h index 0e3d7d560d..fc070133f4 100644 --- a/src/config.h +++ b/src/config.h @@ -218,7 +218,7 @@ typedef struct { uint8 maxplayers; utf8string server_name; utf8string server_description; - utf8string master_url; + utf8string master_server_url; } network_configuration; typedef struct theme_window { diff --git a/src/network/network.cpp b/src/network/network.cpp index e97892e946..71d52ef82c 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -791,11 +791,17 @@ void Network::ShutdownClient() void Network::Advertise() { - if (gConfigNetwork.advertise && strlen(gConfigNetwork.master_url) > 0) { + if (gConfigNetwork.advertise) { last_advertise_time = SDL_GetTicks(); + #ifndef DISABLE_HTTP - std::string url = gConfigNetwork.master_url + std::string("?port=") + std::to_string(listening_port); - http_request_json_async(url.c_str(), [](http_json_response *response)->void{}); + const char *masterServerUrl = OPENRCT2_MASTER_SERVER_URL; + if (!str_is_null_or_empty(gConfigNetwork.master_server_url)) { + masterServerUrl = gConfigNetwork.master_server_url; + } + + std::string url = masterServerUrl + std::string("?port=") + std::to_string(listening_port); + http_request_json_async(url.c_str(), [](http_json_response *response)->void { }); #endif } } diff --git a/src/rct2.h b/src/rct2.h index 77937a0b2b..841aa697d8 100644 --- a/src/rct2.h +++ b/src/rct2.h @@ -105,7 +105,7 @@ typedef utf16* utf16string; #define OPENRCT2_BRANCH "develop" #define OPENRCT2_COMMIT_SHA1 "" #define OPENRCT2_COMMIT_SHA1_SHORT "" -#define OPENRCT2_MASTER_URL "" +#define OPENRCT2_MASTER_SERVER_URL "https://servers.openrct2.website" // Represent fixed point numbers. dp = decimal point typedef uint8 fixed8_1dp; diff --git a/src/windows/server_list.c b/src/windows/server_list.c index a941c24f6b..cd9cd9c46b 100644 --- a/src/windows/server_list.c +++ b/src/windows/server_list.c @@ -638,17 +638,20 @@ static void join_server(char *address) static void fetch_servers() { #ifndef DISABLE_HTTP - if(strlen(gConfigNetwork.master_url) > 0){ - SDL_LockMutex(_mutex); - for (int i = 0; i < _numSavedServers; i++) { - if (!_savedServers[i].favorite) { - remove_saved_server(i); - i = 0; - } - } - SDL_UnlockMutex(_mutex); - http_request_json_async(gConfigNetwork.master_url, fetch_servers_callback); + const char *masterServerUrl = OPENRCT2_MASTER_SERVER_URL; + if (!str_is_null_or_empty(gConfigNetwork.master_server_url)) { + masterServerUrl = gConfigNetwork.master_server_url; } + + SDL_LockMutex(_mutex); + for (int i = 0; i < _numSavedServers; i++) { + if (!_savedServers[i].favorite) { + remove_saved_server(i); + i = 0; + } + } + SDL_UnlockMutex(_mutex); + http_request_json_async(masterServerUrl, fetch_servers_callback); #endif }