diff --git a/dynamic.c b/dynamic.c index 3f362e4e4d..f6501234cc 100644 --- a/dynamic.c +++ b/dynamic.c @@ -586,13 +586,8 @@ bool rarch_environment_cb(unsigned cmd, void *data) break; case RETRO_ENVIRONMENT_GET_USERNAME: - //TODO/FIXME - username should be decoupled from HAVE_NETPLAY -#ifdef HAVE_NETPLAY - *(const char**)data = *g_extern.netplay_nick ? g_extern.netplay_nick : NULL; - RARCH_LOG("Environ GET_USERNAME: \"%s\".\n", g_extern.netplay_nick); -#else - *(const char**)data = NULL; -#endif + *(const char**)data = *g_settings.username ? g_settings.username : NULL; + RARCH_LOG("Environ GET_USERNAME: \"%s\".\n", g_settings.username); break; case RETRO_ENVIRONMENT_SET_PIXEL_FORMAT: diff --git a/frontend/menu/backend/menu_common_backend.c b/frontend/menu/backend/menu_common_backend.c index bda944a8cc..38e0c6bae7 100644 --- a/frontend/menu/backend/menu_common_backend.c +++ b/frontend/menu/backend/menu_common_backend.c @@ -342,9 +342,7 @@ static void menu_common_entries_init(void *data, unsigned menu_type) #ifdef HAVE_OVERLAY file_list_push(menu->selection_buf, "Overlay Options", MENU_SETTINGS_OVERLAY_OPTIONS, 0); #endif -#ifdef HAVE_NETPLAY file_list_push(menu->selection_buf, "Netplay Options", MENU_SETTINGS_NETPLAY_OPTIONS, 0); -#endif file_list_push(menu->selection_buf, "Path Options", MENU_SETTINGS_PATH_OPTIONS, 0); if (g_extern.main_is_init && !g_extern.libretro_dummy) { @@ -378,9 +376,10 @@ static void menu_common_entries_init(void *data, unsigned menu_type) if ((current_setting = setting_data_find_setting(setting_data, "input_overlay_scale"))) file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_OVERLAY_SCALE, 0); break; -#ifdef HAVE_NETPLAY case MENU_SETTINGS_NETPLAY_OPTIONS: file_list_clear(menu->selection_buf); + file_list_push(menu->selection_buf, "Username", MENU_SETTINGS_NETPLAY_NICKNAME, 0); +#ifdef HAVE_NETPLAY if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_enable"))) file_list_push(menu->selection_buf, current_setting->short_description, MENU_SETTINGS_NETPLAY_ENABLE, 0); if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "netplay_mode"))) @@ -390,9 +389,8 @@ static void menu_common_entries_init(void *data, unsigned menu_type) file_list_push(menu->selection_buf, "Host IP Address", MENU_SETTINGS_NETPLAY_HOST_IP_ADDRESS, 0); file_list_push(menu->selection_buf, "TCP/UDP Port", MENU_SETTINGS_NETPLAY_TCP_UDP_PORT, 0); file_list_push(menu->selection_buf, "Delay Frames", MENU_SETTINGS_NETPLAY_DELAY_FRAMES, 0); - file_list_push(menu->selection_buf, "Nickname", MENU_SETTINGS_NETPLAY_NICKNAME, 0); - break; #endif + break; case MENU_SETTINGS_PATH_OPTIONS: file_list_clear(menu->selection_buf); if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "rgui_browser_directory"))) @@ -4518,13 +4516,13 @@ static int menu_common_setting_set(unsigned setting, unsigned action) else if (action == MENU_ACTION_START) g_extern.netplay_port = RARCH_DEFAULT_PORT; break; +#endif case MENU_SETTINGS_NETPLAY_NICKNAME: if (action == MENU_ACTION_OK) - menu_key_start_line(driver.menu, "Nickname: ", netplay_nickname_callback); + menu_key_start_line(driver.menu, "Username: ", netplay_nickname_callback); else if (action == MENU_ACTION_START) - *g_extern.netplay_nick = '\0'; + *g_settings.username = '\0'; break; -#endif case MENU_SETTINGS_ONSCREEN_KEYBOARD_ENABLE: if ((current_setting = (rarch_setting_t*)setting_data_find_setting(setting_data, "osk_enable"))) menu_common_setting_set_current_boolean(current_setting, action); @@ -5026,6 +5024,9 @@ static void menu_common_setting_set_label(char *type_str, size_t type_str_size, case MENU_SETTINGS_WINDOW_COMPOSITING_ENABLE: strlcpy(type_str, g_settings.video.disable_composition ? "OFF" : "ON", type_str_size); break; + case MENU_SETTINGS_NETPLAY_NICKNAME: + snprintf(type_str, type_str_size, "%s", g_settings.username); + break; #ifdef HAVE_NETPLAY case MENU_SETTINGS_NETPLAY_ENABLE: strlcpy(type_str, g_extern.netplay_enable ? "ON" : "OFF", type_str_size); @@ -5039,9 +5040,6 @@ static void menu_common_setting_set_label(char *type_str, size_t type_str_size, case MENU_SETTINGS_NETPLAY_TCP_UDP_PORT: snprintf(type_str, type_str_size, "%d", g_extern.netplay_port ? g_extern.netplay_port : RARCH_DEFAULT_PORT); break; - case MENU_SETTINGS_NETPLAY_NICKNAME: - snprintf(type_str, type_str_size, "%s", g_extern.netplay_nick); - break; case MENU_SETTINGS_NETPLAY_MODE: snprintf(type_str, type_str_size, g_extern.netplay_is_client ? "ON" : "OFF"); break; diff --git a/frontend/menu/menu_input_line_cb.c b/frontend/menu/menu_input_line_cb.c index 7aaf07b89e..821736d09b 100644 --- a/frontend/menu/menu_input_line_cb.c +++ b/frontend/menu/menu_input_line_cb.c @@ -85,7 +85,7 @@ void netplay_nickname_callback(void *userdata, const char *str) menu_handle_t *menu = (menu_handle_t*)userdata; if (str && *str) - strlcpy(g_extern.netplay_nick, str, sizeof(g_extern.netplay_nick)); + strlcpy(g_settings.username, str, sizeof(g_settings.username)); menu_key_end_line(menu); } #endif diff --git a/general.h b/general.h index d5f5fb442e..f20177d623 100644 --- a/general.h +++ b/general.h @@ -354,6 +354,8 @@ struct settings bool load_dummy_on_core_shutdown; bool core_specific_config; + + char username[32]; }; typedef struct rarch_resolution @@ -407,7 +409,7 @@ struct global bool has_set_verbosity; bool has_set_netplay_mode; - bool has_set_netplay_nickname; + bool has_set_username; bool has_set_netplay_ip_address; bool has_set_netplay_delay_frames; bool has_set_netplay_ip_port; @@ -617,7 +619,6 @@ struct global bool netplay_is_spectate; unsigned netplay_sync_frames; uint16_t netplay_port; - char netplay_nick[32]; #endif // FFmpeg record. diff --git a/retroarch.c b/retroarch.c index 137adcdd68..79e00f6f07 100644 --- a/retroarch.c +++ b/retroarch.c @@ -796,8 +796,8 @@ static void print_help(void) puts("\t--spectate: Netplay will become spectating mode."); puts("\t\tHost can live stream the game content to players that connect."); puts("\t\tHowever, the client will not be able to play. Multiple clients can connect to the host."); - puts("\t--nick: Picks a nickname for use with netplay. Not mandatory."); #endif + puts("\t--nick: Picks a username (for use with netplay). Not mandatory."); #ifdef HAVE_NETWORK_CMD puts("\t--command: Sends a command over UDP to an already running RetroArch process."); puts("\t\tAvailable commands are listed if command is invalid."); @@ -897,7 +897,7 @@ static void parse_input(int argc, char *argv[]) g_extern.has_set_verbosity = false; g_extern.has_set_netplay_mode = false; - g_extern.has_set_netplay_nickname = false; + g_extern.has_set_username = 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; @@ -953,8 +953,8 @@ static void parse_input(int argc, char *argv[]) { "frames", 1, NULL, 'F' }, { "port", 1, &val, 'p' }, { "spectate", 0, &val, 'S' }, - { "nick", 1, &val, 'N' }, #endif + { "nick", 1, &val, 'N' }, #ifdef HAVE_NETWORK_CMD { "command", 1, &val, 'c' }, #endif @@ -1179,11 +1179,11 @@ static void parse_input(int argc, char *argv[]) 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 + case 'N': + g_extern.has_set_username = true; + strlcpy(g_settings.username, optarg, sizeof(g_settings.username)); + break; #ifdef HAVE_NETWORK_CMD case 'c': @@ -1604,7 +1604,7 @@ static void init_netplay(void) g_extern.netplay = netplay_new(g_extern.netplay_is_client ? g_extern.netplay_server : NULL, g_extern.netplay_port ? g_extern.netplay_port : RARCH_DEFAULT_PORT, g_extern.netplay_sync_frames, &cbs, g_extern.netplay_is_spectate, - g_extern.netplay_nick); + g_settings.username); if (!g_extern.netplay) { diff --git a/retroarch.cfg b/retroarch.cfg index 402ae42918..c0b703a8f5 100644 --- a/retroarch.cfg +++ b/retroarch.cfg @@ -529,7 +529,7 @@ # When being client over netplay, use keybinds for player 1. # netplay_client_swap_input = false -# The nickname being used for playing online. +# The username of the person running RetroArch. This will be used for playing online, for instance. # netplay_nickname = # The amount of delay frames to use for netplay. Increasing this value will increase diff --git a/settings.c b/settings.c index 87a456d496..ceca216b13 100644 --- a/settings.c +++ b/settings.c @@ -1091,13 +1091,13 @@ bool config_load_file(const char *path, bool set_defaults) CONFIG_GET_BOOL(input.autodetect_enable, "input_autodetect_enable"); CONFIG_GET_PATH(input.autoconfig_dir, "joypad_autoconfig_dir"); + if (!g_extern.has_set_username) + CONFIG_GET_PATH(username, "netplay_nickname"); #ifdef HAVE_NETPLAY 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) @@ -1469,11 +1469,11 @@ bool config_save_file(const char *path) #ifdef HAVE_NETPLAY config_set_bool(conf, "netplay_spectator_mode_enable", g_extern.netplay_is_spectate); config_set_bool(conf, "netplay_mode", g_extern.netplay_is_client); - config_set_string(conf, "netplay_nickname", g_extern.netplay_nick); config_set_string(conf, "netplay_ip_address", g_extern.netplay_server); config_set_int(conf, "netplay_ip_port", g_extern.netplay_port); config_set_int(conf, "netplay_delay_frames", g_extern.netplay_sync_frames); #endif + config_set_string(conf, "netplay_nickname", g_settings.username); bool custom_bgm_enable_val = g_extern.lifecycle_state & (1ULL << MODE_AUDIO_CUSTOM_BGM_ENABLE); config_set_bool(conf, "custom_bgm_enable", custom_bgm_enable_val); diff --git a/settings_data.c b/settings_data.c index c4908a4c02..9d2653177f 100644 --- a/settings_data.c +++ b/settings_data.c @@ -1629,15 +1629,15 @@ rarch_setting_t* setting_data_get_list(void) /*******************/ /* NETPLAY OPTIONS */ /*******************/ -#ifdef HAVE_NETPLAY START_GROUP("Netplay Options") START_SUB_GROUP("State") +#ifdef HAVE_NETPLAY CONFIG_BOOL(g_extern.netplay_enable, "netplay_enable", "Netplay Enable", false, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_BOOL(g_extern.netplay_is_client, "netplay_mode", "Netplay Client Enable", false, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) CONFIG_BOOL(g_extern.netplay_is_spectate, "netplay_spectator_mode_enable", "Netplay Spectator Enable", false, GROUP_NAME, SUBGROUP_NAME, general_write_handler, general_read_handler) +#endif END_SUB_GROUP() END_GROUP() -#endif /*********/ /* PATHS */