mirror of
https://github.com/libretro/RetroArch
synced 2025-02-06 00:39:53 +00:00
Create content_get_status
This commit is contained in:
parent
41a647945b
commit
361bd471de
62
command.c
62
command.c
@ -1325,6 +1325,10 @@ static void command_event_set_savestate_auto_index(void)
|
|||||||
|
|
||||||
static bool event_init_content(void)
|
static bool event_init_content(void)
|
||||||
{
|
{
|
||||||
|
bool contentless = false;
|
||||||
|
|
||||||
|
content_get_status(&contentless);
|
||||||
|
|
||||||
rarch_ctl(RARCH_CTL_SET_SRAM_ENABLE, NULL);
|
rarch_ctl(RARCH_CTL_SET_SRAM_ENABLE, NULL);
|
||||||
|
|
||||||
/* No content to be loaded for dummy core,
|
/* No content to be loaded for dummy core,
|
||||||
@ -1332,13 +1336,15 @@ static bool event_init_content(void)
|
|||||||
if (rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
if (rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (!content_does_not_need_content())
|
if (!contentless)
|
||||||
path_fill_names();
|
path_fill_names();
|
||||||
|
|
||||||
if (!content_init())
|
if (!content_init())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (content_does_not_need_content())
|
content_get_status(&contentless);
|
||||||
|
|
||||||
|
if (contentless)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_NETWORKING
|
#ifdef HAVE_NETWORKING
|
||||||
if (netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL))
|
if (netplay_driver_ctl(RARCH_NETPLAY_CTL_IS_ENABLED, NULL))
|
||||||
@ -1442,18 +1448,23 @@ static void command_event_restore_default_shader_preset(void)
|
|||||||
|
|
||||||
static bool command_event_save_auto_state(void)
|
static bool command_event_save_auto_state(void)
|
||||||
{
|
{
|
||||||
bool ret;
|
|
||||||
char savestate_name_auto[PATH_MAX_LENGTH] = {0};
|
char savestate_name_auto[PATH_MAX_LENGTH] = {0};
|
||||||
|
bool ret = false;;
|
||||||
|
bool contentless = false;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
|
|
||||||
|
|
||||||
if (!settings || !settings->savestate_auto_save)
|
if (!settings || !settings->savestate_auto_save)
|
||||||
return false;
|
return false;
|
||||||
if (!global)
|
if (!global)
|
||||||
return false;
|
return false;
|
||||||
if (rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
if (rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
||||||
return false;
|
return false;
|
||||||
if (content_does_not_need_content())
|
|
||||||
|
content_get_status(&contentless);
|
||||||
|
|
||||||
|
if (contentless)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#ifdef HAVE_CHEEVOS
|
#ifdef HAVE_CHEEVOS
|
||||||
@ -1504,15 +1515,18 @@ static bool command_event_save_config(const char *config_path,
|
|||||||
**/
|
**/
|
||||||
static bool command_event_save_core_config(void)
|
static bool command_event_save_core_config(void)
|
||||||
{
|
{
|
||||||
char config_dir[PATH_MAX_LENGTH] = {0};
|
char config_dir[PATH_MAX_LENGTH];
|
||||||
char config_name[PATH_MAX_LENGTH] = {0};
|
char config_name[PATH_MAX_LENGTH];
|
||||||
char config_path[PATH_MAX_LENGTH] = {0};
|
char config_path[PATH_MAX_LENGTH];
|
||||||
char msg[128] = {0};
|
char msg[128];
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
bool found_path = false;
|
bool found_path = false;
|
||||||
bool overrides_active = false;
|
bool overrides_active = false;
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
|
config_dir[0] = config_name[0] =
|
||||||
|
config_path[0] = msg[0] = '\0';
|
||||||
|
|
||||||
if (!string_is_empty(settings->directory.menu_config))
|
if (!string_is_empty(settings->directory.menu_config))
|
||||||
strlcpy(config_dir, settings->directory.menu_config,
|
strlcpy(config_dir, settings->directory.menu_config,
|
||||||
sizeof(config_dir));
|
sizeof(config_dir));
|
||||||
@ -1603,7 +1617,9 @@ static bool command_event_save_core_config(void)
|
|||||||
**/
|
**/
|
||||||
static void command_event_save_current_config(enum override_type type)
|
static void command_event_save_current_config(enum override_type type)
|
||||||
{
|
{
|
||||||
char msg[128] = {0};
|
char msg[128];
|
||||||
|
|
||||||
|
msg[0] = '\0';
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
@ -1678,20 +1694,26 @@ static void command_event_undo_load_state(char *s, size_t len)
|
|||||||
static void command_event_main_state(unsigned cmd)
|
static void command_event_main_state(unsigned cmd)
|
||||||
{
|
{
|
||||||
retro_ctx_size_info_t info;
|
retro_ctx_size_info_t info;
|
||||||
char path[PATH_MAX_LENGTH] = {0};
|
char path[PATH_MAX_LENGTH];
|
||||||
char msg[128] = {0};
|
char msg[128];
|
||||||
global_t *global = global_get_ptr();
|
global_t *global = global_get_ptr();
|
||||||
settings_t *settings = config_get_ptr();
|
|
||||||
bool push_msg = true;
|
bool push_msg = true;
|
||||||
|
|
||||||
if (settings->state_slot > 0)
|
path[0] = msg[0] = '\0';
|
||||||
snprintf(path, sizeof(path), "%s%d",
|
|
||||||
global->name.savestate, settings->state_slot);
|
if (global)
|
||||||
else if (settings->state_slot < 0)
|
{
|
||||||
fill_pathname_join_delim(path,
|
settings_t *settings = config_get_ptr();
|
||||||
global->name.savestate, "auto", '.', sizeof(path));
|
|
||||||
else
|
if (settings->state_slot > 0)
|
||||||
strlcpy(path, global->name.savestate, sizeof(path));
|
snprintf(path, sizeof(path), "%s%d",
|
||||||
|
global->name.savestate, settings->state_slot);
|
||||||
|
else if (settings->state_slot < 0)
|
||||||
|
fill_pathname_join_delim(path,
|
||||||
|
global->name.savestate, "auto", '.', sizeof(path));
|
||||||
|
else
|
||||||
|
strlcpy(path, global->name.savestate, sizeof(path));
|
||||||
|
}
|
||||||
|
|
||||||
core_serialize_size(&info);
|
core_serialize_size(&info);
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ bool content_undo_load_state(void);
|
|||||||
/* Restores the last savestate file which was overwritten */
|
/* Restores the last savestate file which was overwritten */
|
||||||
bool content_undo_save_state(void);
|
bool content_undo_save_state(void);
|
||||||
|
|
||||||
bool content_does_not_need_content(void);
|
void content_get_status(bool *contentless);
|
||||||
|
|
||||||
void content_set_does_not_need_content(void);
|
void content_set_does_not_need_content(void);
|
||||||
|
|
||||||
|
@ -281,12 +281,16 @@ bool core_get_memory(retro_ctx_memory_info_t *info)
|
|||||||
|
|
||||||
bool core_load_game(retro_ctx_load_content_info_t *load_info)
|
bool core_load_game(retro_ctx_load_content_info_t *load_info)
|
||||||
{
|
{
|
||||||
|
bool contentless = false;
|
||||||
|
|
||||||
|
content_get_status(&contentless);
|
||||||
|
|
||||||
if (load_info && load_info->special)
|
if (load_info && load_info->special)
|
||||||
core_game_loaded = core.retro_load_game_special(
|
core_game_loaded = core.retro_load_game_special(
|
||||||
load_info->special->id, load_info->info, load_info->content->size);
|
load_info->special->id, load_info->info, load_info->content->size);
|
||||||
else if (load_info && !string_is_empty(load_info->content->elems[0].data))
|
else if (load_info && !string_is_empty(load_info->content->elems[0].data))
|
||||||
core_game_loaded = core.retro_load_game(load_info->info);
|
core_game_loaded = core.retro_load_game(load_info->info);
|
||||||
else if (content_does_not_need_content())
|
else if (contentless)
|
||||||
core_game_loaded = core.retro_load_game(NULL);
|
core_game_loaded = core.retro_load_game(NULL);
|
||||||
else
|
else
|
||||||
core_game_loaded = false;
|
core_game_loaded = false;
|
||||||
|
19
retroarch.c
19
retroarch.c
@ -1261,9 +1261,14 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data)
|
|||||||
runloop_ctl(RUNLOOP_CTL_MSG_QUEUE_INIT, NULL);
|
runloop_ctl(RUNLOOP_CTL_MSG_QUEUE_INIT, NULL);
|
||||||
break;
|
break;
|
||||||
case RARCH_CTL_SET_PATHS_REDIRECT:
|
case RARCH_CTL_SET_PATHS_REDIRECT:
|
||||||
if (content_does_not_need_content())
|
{
|
||||||
return false;
|
bool contentless = false;
|
||||||
path_set_redirect();
|
content_get_status(&contentless);
|
||||||
|
|
||||||
|
if (contentless)
|
||||||
|
return false;
|
||||||
|
path_set_redirect();
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case RARCH_CTL_IS_SRAM_LOAD_DISABLED:
|
case RARCH_CTL_IS_SRAM_LOAD_DISABLED:
|
||||||
return rarch_is_sram_load_disabled;
|
return rarch_is_sram_load_disabled;
|
||||||
@ -1284,8 +1289,12 @@ bool rarch_ctl(enum rarch_ctl_state state, void *data)
|
|||||||
case RARCH_CTL_IS_SRAM_USED:
|
case RARCH_CTL_IS_SRAM_USED:
|
||||||
return rarch_use_sram;
|
return rarch_use_sram;
|
||||||
case RARCH_CTL_SET_SRAM_ENABLE:
|
case RARCH_CTL_SET_SRAM_ENABLE:
|
||||||
rarch_use_sram = rarch_ctl(RARCH_CTL_IS_PLAIN_CORE, NULL)
|
{
|
||||||
&& !content_does_not_need_content();
|
bool contentless = false;
|
||||||
|
content_get_status(&contentless);
|
||||||
|
rarch_use_sram = rarch_ctl(RARCH_CTL_IS_PLAIN_CORE, NULL)
|
||||||
|
&& !contentless;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case RARCH_CTL_SET_SRAM_ENABLE_FORCE:
|
case RARCH_CTL_SET_SRAM_ENABLE_FORCE:
|
||||||
rarch_use_sram = true;
|
rarch_use_sram = true;
|
||||||
|
@ -691,12 +691,16 @@ static bool content_file_init_set_attribs(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
bool contentless = false;
|
||||||
|
|
||||||
|
content_get_status(&contentless);
|
||||||
|
|
||||||
attr.i = content_ctx->block_extract;
|
attr.i = content_ctx->block_extract;
|
||||||
attr.i |= content_ctx->need_fullpath << 1;
|
attr.i |= content_ctx->need_fullpath << 1;
|
||||||
attr.i |= (!content_does_not_need_content()) << 2;
|
attr.i |= (!contentless) << 2;
|
||||||
|
|
||||||
if (path_is_empty(RARCH_PATH_CONTENT)
|
if (path_is_empty(RARCH_PATH_CONTENT)
|
||||||
&& content_does_not_need_content()
|
&& contentless
|
||||||
&& content_ctx->set_supports_no_game_enable)
|
&& content_ctx->set_supports_no_game_enable)
|
||||||
string_list_append(content, "", attr);
|
string_list_append(content, "", attr);
|
||||||
else
|
else
|
||||||
@ -817,14 +821,17 @@ static bool task_load_content(content_ctx_info_t *content_info,
|
|||||||
{
|
{
|
||||||
char name[255];
|
char name[255];
|
||||||
char msg[255];
|
char msg[255];
|
||||||
|
bool contentless = false;
|
||||||
|
|
||||||
name[0] = msg[0] = '\0';
|
name[0] = msg[0] = '\0';
|
||||||
|
|
||||||
|
content_get_status(&contentless);
|
||||||
|
|
||||||
if (!content_load(content_info))
|
if (!content_load(content_info))
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
/* Push entry to top of history playlist */
|
/* Push entry to top of history playlist */
|
||||||
if (_content_is_inited || content_does_not_need_content())
|
if (_content_is_inited || contentless)
|
||||||
{
|
{
|
||||||
char tmp[PATH_MAX_LENGTH];
|
char tmp[PATH_MAX_LENGTH];
|
||||||
struct retro_system_info *info = NULL;
|
struct retro_system_info *info = NULL;
|
||||||
@ -1321,9 +1328,9 @@ cleanup:
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool content_does_not_need_content(void)
|
void content_get_status(bool *contentless)
|
||||||
{
|
{
|
||||||
return core_does_not_need_content;
|
*contentless = core_does_not_need_content;
|
||||||
}
|
}
|
||||||
|
|
||||||
void content_set_does_not_need_content(void)
|
void content_set_does_not_need_content(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user