mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 13:20:30 +00:00
(Netplay) Disallow netplay start when content is not loaded for static core platforms (#14220)
This commit is contained in:
parent
8ac1a36259
commit
8d4a64ab96
@ -11487,6 +11487,10 @@ MSG_HASH( /* FIXME Should be MSG_ */
|
||||
MENU_ENUM_LABEL_VALUE_NETPLAY_START_WHEN_LOADED,
|
||||
"Netplay will start when content is loaded."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_NETPLAY_NEED_CONTENT_LOADED,
|
||||
"Content must be loaded before starting netplay."
|
||||
)
|
||||
MSG_HASH( /* FIXME Should be MSG_ */
|
||||
MENU_ENUM_LABEL_VALUE_NETPLAY_LOAD_CONTENT_MANUALLY,
|
||||
"Couldn't find a suitable core or content file, load manually."
|
||||
|
@ -7367,6 +7367,7 @@ static void action_ok_netplay_enable_client_hostname_cb(void *userdata,
|
||||
{
|
||||
if (!task_push_netplay_content_reload(line))
|
||||
{
|
||||
#ifdef HAVE_DYNAMIC
|
||||
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
|
||||
netplay_driver_ctl(RARCH_NETPLAY_CTL_ENABLE_CLIENT, NULL);
|
||||
command_event(CMD_EVENT_NETPLAY_INIT_DIRECT_DEFERRED, (void*)line);
|
||||
@ -7375,10 +7376,20 @@ static void action_ok_netplay_enable_client_hostname_cb(void *userdata,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_START_WHEN_LOADED),
|
||||
1, 480, true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
}
|
||||
#else
|
||||
runloop_msg_queue_push(
|
||||
msg_hash_to_str(MSG_NETPLAY_NEED_CONTENT_LOADED),
|
||||
1, 480, true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
#endif
|
||||
|
||||
menu_input_dialog_end();
|
||||
retroarch_menu_running_finished(false);
|
||||
menu_input_dialog_end();
|
||||
}
|
||||
else
|
||||
{
|
||||
menu_input_dialog_end();
|
||||
retroarch_menu_running_finished(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
menu_input_dialog_end();
|
||||
|
@ -179,6 +179,7 @@ enum msg_hash_enums
|
||||
MSG_SETTING_DISK_IN_TRAY,
|
||||
MSG_FAILED_TO_SET_DISK,
|
||||
MSG_FAILED_TO_SET_INITIAL_DISK,
|
||||
MSG_NETPLAY_NEED_CONTENT_LOADED,
|
||||
MSG_FAILED_TO_CONNECT_TO_CLIENT,
|
||||
MSG_FAILED_TO_CONNECT_TO_HOST,
|
||||
MSG_NETPLAY_HOST_FULL,
|
||||
|
@ -2876,6 +2876,7 @@ bool command_event(enum event_command cmd, void *data)
|
||||
{
|
||||
if (!task_push_netplay_content_reload(NULL))
|
||||
{
|
||||
#ifdef HAVE_DYNAMIC
|
||||
command_event(CMD_EVENT_NETPLAY_DEINIT, NULL);
|
||||
netplay_driver_ctl(RARCH_NETPLAY_CTL_ENABLE_SERVER, NULL);
|
||||
|
||||
@ -2883,6 +2884,12 @@ bool command_event(enum event_command cmd, void *data)
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_START_WHEN_LOADED),
|
||||
1, 480, true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
#else
|
||||
runloop_msg_queue_push(
|
||||
msg_hash_to_str(MSG_NETPLAY_NEED_CONTENT_LOADED),
|
||||
1, 480, true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
#endif
|
||||
|
||||
return false;
|
||||
}
|
||||
|
@ -471,15 +471,16 @@ static bool static_load(const char *core, const char *subsystem,
|
||||
|
||||
if (!string_is_empty(subsystem))
|
||||
{
|
||||
const struct string_list *subsystem_content =
|
||||
(const struct string_list*)content;
|
||||
|
||||
if (!netplay_driver_ctl(RARCH_NETPLAY_CTL_ADD_FORK_ARG, ARG("--subsystem")) ||
|
||||
!netplay_driver_ctl(RARCH_NETPLAY_CTL_ADD_FORK_ARG, ARG(subsystem)))
|
||||
goto failure;
|
||||
|
||||
if (content)
|
||||
if (subsystem_content && subsystem_content->size > 0)
|
||||
{
|
||||
size_t i;
|
||||
const struct string_list *subsystem_content =
|
||||
(const struct string_list*)content;
|
||||
|
||||
for (i = 0; i < subsystem_content->size; i++)
|
||||
{
|
||||
@ -488,11 +489,28 @@ static bool static_load(const char *core, const char *subsystem,
|
||||
goto failure;
|
||||
}
|
||||
}
|
||||
#ifdef HAVE_MENU
|
||||
else
|
||||
{
|
||||
if (!netplay_driver_ctl(RARCH_NETPLAY_CTL_ADD_FORK_ARG, ARG("--menu")))
|
||||
goto failure;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (content)
|
||||
else
|
||||
{
|
||||
if (!netplay_driver_ctl(RARCH_NETPLAY_CTL_ADD_FORK_ARG, ARG(content)))
|
||||
goto failure;
|
||||
if (content)
|
||||
{
|
||||
if (!netplay_driver_ctl(RARCH_NETPLAY_CTL_ADD_FORK_ARG, ARG(content)))
|
||||
goto failure;
|
||||
}
|
||||
#ifdef HAVE_MENU
|
||||
else
|
||||
{
|
||||
if (!netplay_driver_ctl(RARCH_NETPLAY_CTL_ADD_FORK_ARG, ARG("--menu")))
|
||||
goto failure;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!frontend_driver_set_fork(FRONTEND_FORK_CORE_WITH_ARGS))
|
||||
@ -688,14 +706,17 @@ static void task_netplay_crc_scan_callback(retro_task_t *task,
|
||||
content_clear_subsystem();
|
||||
content_set_subsystem_by_name(data->current.subsystem);
|
||||
}
|
||||
#else
|
||||
if (static_load(data->core, data->current.subsystem, NULL,
|
||||
data->hostname))
|
||||
#endif
|
||||
|
||||
runloop_msg_queue_push(
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_START_WHEN_LOADED),
|
||||
1, 480, true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
#else
|
||||
runloop_msg_queue_push(
|
||||
msg_hash_to_str(MSG_NETPLAY_NEED_CONTENT_LOADED),
|
||||
1, 480, true, NULL,
|
||||
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_INFO);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
RARCH_WARN("[Lobby] Nothing to load.\n");
|
||||
|
Loading…
x
Reference in New Issue
Block a user