From 159ddb86d323aa98378db60bc334a96f57b746ed Mon Sep 17 00:00:00 2001 From: Themaister Date: Tue, 10 Jun 2014 00:01:03 +0200 Subject: [PATCH] Add has_set* state for netplay settings. --- general.h | 6 ++++++ retroarch.c | 14 ++++++++++++++ settings.c | 18 ++++++++++++------ 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/general.h b/general.h index 167da8fa13..3531971162 100644 --- a/general.h +++ b/general.h @@ -390,6 +390,12 @@ struct global bool has_set_libretro_directory; bool has_set_verbosity; + bool has_set_netplay_mode; + bool has_set_netplay_nickname; + bool has_set_netplay_ip_address; + bool has_set_netplay_delay_frames; + bool has_set_netplay_ip_port; + #ifdef HAVE_RMENU char menu_texture_path[PATH_MAX]; #endif diff --git a/retroarch.c b/retroarch.c index 300156d441..5f677071e2 100644 --- a/retroarch.c +++ b/retroarch.c @@ -903,6 +903,13 @@ static void parse_input(int argc, char *argv[]) g_extern.has_set_libretro = false; g_extern.has_set_libretro_directory = false; g_extern.has_set_verbosity = false; + + g_extern.has_set_netplay_mode = false; + g_extern.has_set_netplay_nickname = false; + g_extern.has_set_netplay_ip_address = false; + g_extern.has_set_netplay_delay_frames = false; + g_extern.has_set_netplay_ip_port = false; + *g_extern.subsystem = '\0'; if (argc < 2) @@ -1126,16 +1133,20 @@ static void parse_input(int argc, char *argv[]) #ifdef HAVE_NETPLAY case 'H': + g_extern.has_set_netplay_ip_address = true; g_extern.netplay_enable = true; + *g_extern.netplay_server = '\0'; break; case 'C': + g_extern.has_set_netplay_ip_address = true; g_extern.netplay_enable = true; strlcpy(g_extern.netplay_server, optarg, sizeof(g_extern.netplay_server)); break; case 'F': g_extern.netplay_sync_frames = strtol(optarg, NULL, 0); + g_extern.has_set_netplay_delay_frames = true; break; #endif @@ -1159,14 +1170,17 @@ static void parse_input(int argc, char *argv[]) #ifdef HAVE_NETPLAY case 'p': + g_extern.has_set_netplay_ip_port = true; g_extern.netplay_port = strtoul(optarg, NULL, 0); break; case 'S': + g_extern.has_set_netplay_mode = true; g_extern.netplay_is_spectate = true; break; case 'N': + g_extern.has_set_netplay_nickname = true; strlcpy(g_extern.netplay_nick, optarg, sizeof(g_extern.netplay_nick)); break; #endif diff --git a/settings.c b/settings.c index b88ac0da14..ea00e32235 100644 --- a/settings.c +++ b/settings.c @@ -1092,12 +1092,18 @@ bool config_load_file(const char *path, bool set_defaults) CONFIG_GET_PATH(input.autoconfig_dir, "joypad_autoconfig_dir"); #ifdef HAVE_NETPLAY - CONFIG_GET_BOOL_EXTERN(netplay_is_spectate, "netplay_spectator_mode_enable"); - CONFIG_GET_BOOL_EXTERN(netplay_is_client, "netplay_mode"); - CONFIG_GET_PATH_EXTERN(netplay_nick, "netplay_nickname"); - CONFIG_GET_PATH_EXTERN(netplay_server, "netplay_ip_address"); - CONFIG_GET_INT_EXTERN(netplay_sync_frames, "netplay_delay_frames"); - CONFIG_GET_INT_EXTERN(netplay_port, "netplay_ip_port"); + if (!g_extern.has_set_netplay_mode) + CONFIG_GET_BOOL_EXTERN(netplay_is_spectate, "netplay_spectator_mode_enable"); + if (!g_extern.has_set_netplay_mode) + CONFIG_GET_BOOL_EXTERN(netplay_is_client, "netplay_mode"); + if (!g_extern.has_set_netplay_nickname) + CONFIG_GET_PATH_EXTERN(netplay_nick, "netplay_nickname"); + if (!g_extern.has_set_netplay_ip_address) + CONFIG_GET_PATH_EXTERN(netplay_server, "netplay_ip_address"); + if (!g_extern.has_set_netplay_delay_frames) + CONFIG_GET_INT_EXTERN(netplay_sync_frames, "netplay_delay_frames"); + if (!g_extern.has_set_netplay_ip_port) + CONFIG_GET_INT_EXTERN(netplay_port, "netplay_ip_port"); #endif #ifdef ANDROID