(Cheevos) Cleanups

This commit is contained in:
twinaphex 2017-05-04 16:13:11 +02:00
parent c34b4dd787
commit 10b636f80d

View File

@ -398,8 +398,7 @@ static void cheevos_log_url(const char* format, const char* url)
do do
{ {
*aux++ = *next++; *aux++ = *next++;
} }while(next[-1] != 0);
while (next[-1] != 0);
} }
else else
*aux = 0; *aux = 0;
@ -768,6 +767,7 @@ static int cheevos_getvalue__json_key(void *userdata,
cheevos_getvalueud_t* ud = (cheevos_getvalueud_t*)userdata; cheevos_getvalueud_t* ud = (cheevos_getvalueud_t*)userdata;
ud->is_key = cheevos_djb2(name, length) == ud->key_hash; ud->is_key = cheevos_djb2(name, length) == ud->key_hash;
return 0; return 0;
} }
@ -3011,6 +3011,7 @@ bool cheevos_load(const void *data)
cheevos_locals.meminfo[3].id = RETRO_MEMORY_RTC; cheevos_locals.meminfo[3].id = RETRO_MEMORY_RTC;
core_get_memory(&cheevos_locals.meminfo[3]); core_get_memory(&cheevos_locals.meminfo[3]);
#ifndef NDEBUG
RARCH_LOG("CHEEVOS system RAM: %p %u\n", RARCH_LOG("CHEEVOS system RAM: %p %u\n",
cheevos_locals.meminfo[0].data, cheevos_locals.meminfo[0].size); cheevos_locals.meminfo[0].data, cheevos_locals.meminfo[0].size);
RARCH_LOG("CHEEVOS save RAM: %p %u\n", RARCH_LOG("CHEEVOS save RAM: %p %u\n",
@ -3019,6 +3020,7 @@ bool cheevos_load(const void *data)
cheevos_locals.meminfo[2].data, cheevos_locals.meminfo[2].size); cheevos_locals.meminfo[2].data, cheevos_locals.meminfo[2].size);
RARCH_LOG("CHEEVOS RTC: %p %u\n", RARCH_LOG("CHEEVOS RTC: %p %u\n",
cheevos_locals.meminfo[3].data, cheevos_locals.meminfo[3].size); cheevos_locals.meminfo[3].data, cheevos_locals.meminfo[3].size);
#endif
/* Bail out if cheevos are disabled. /* Bail out if cheevos are disabled.
* But set the above anyways, command_read_ram needs it. */ * But set the above anyways, command_read_ram needs it. */
@ -3040,32 +3042,30 @@ bool cheevos_load(const void *data)
int j; int j;
unsigned hash; unsigned hash;
const char *end = strchr(ext, '|'); const char *end = strchr(ext, '|');
size_t djb_size = end - ext;
if (end) if (end)
{ ext = end + 1;
hash = cheevos_djb2(ext, end - ext);
ext = end + 1;
}
else else
{ {
hash = cheevos_djb2(ext, strlen(ext)); djb_size = strlen(ext);
ext = NULL; ext = NULL;
} }
hash = cheevos_djb2(ext, djb_size);
for (j = 0; finders[i].ext_hashes[j]; j++) for (j = 0; finders[i].ext_hashes[j]; j++)
{ {
if (finders[i].ext_hashes[j] == hash) if (finders[i].ext_hashes[j] != hash)
{ continue;
RARCH_LOG("CHEEVOS testing %s.\n", finders[i].name);
game_id = finders[i].finder(info, 5000000); game_id = finders[i].finder(info, 5000000);
if (game_id) if (game_id)
goto found; goto found;
ext = NULL; /* force next finder */ ext = NULL; /* force next finder */
break; break;
}
} }
} }
} }
@ -3076,8 +3076,6 @@ bool cheevos_load(const void *data)
if (finders[i].ext_hashes) if (finders[i].ext_hashes)
continue; continue;
RARCH_LOG("CHEEVOS testing %s.\n", finders[i].name);
game_id = finders[i].finder(info, 5000000); game_id = finders[i].finder(info, 5000000);
if (game_id) if (game_id)
@ -3114,7 +3112,7 @@ found:
fclose(file); fclose(file);
} }
#endif #endif
if (!settings->bools.cheevos_enable || !cheevos_parse(json)) if (!cheevos_parse(json))
{ {
cheevos_deactivate_unlocks(game_id, &timeout); cheevos_deactivate_unlocks(game_id, &timeout);
free((void*)json); free((void*)json);
@ -3164,38 +3162,27 @@ void cheevos_populate_menu(void *data, bool hardcore)
{ {
if (!hardcore) if (!hardcore)
{ {
if (!(cheevo->active & CHEEVOS_ACTIVE_SOFTCORE)) if (cheevo->active & CHEEVOS_ACTIVE_SOFTCORE)
{
menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++;
}
else
{
menu_entries_append_enum(info->list, cheevo->title, menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY, cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0); MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++; else
} menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
} }
else else
{ {
if (!(cheevo->active & CHEEVOS_ACTIVE_HARDCORE)) if (cheevo->active & CHEEVOS_ACTIVE_HARDCORE)
{
menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++;
}
else
{
menu_entries_append_enum(info->list, cheevo->title, menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY, cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0); MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++; else
} menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
} }
items_found++;
} }
if (settings->bools.cheevos_test_unofficial) if (settings->bools.cheevos_test_unofficial)
@ -3208,38 +3195,27 @@ void cheevos_populate_menu(void *data, bool hardcore)
{ {
if (!hardcore) if (!hardcore)
{ {
if (!(cheevo->active & CHEEVOS_ACTIVE_SOFTCORE)) if (cheevo->active & CHEEVOS_ACTIVE_SOFTCORE)
{
menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++;
}
else
{
menu_entries_append_enum(info->list, cheevo->title, menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY, cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0); MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++; else
} menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
} }
else else
{ {
if (!(cheevo->active & CHEEVOS_ACTIVE_HARDCORE)) if (cheevo->active & CHEEVOS_ACTIVE_HARDCORE)
{
menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++;
}
else
{
menu_entries_append_enum(info->list, cheevo->title, menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY, cheevo->description, MENU_ENUM_LABEL_CHEEVOS_LOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0); MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
items_found++; else
} menu_entries_append_enum(info->list, cheevo->title,
cheevo->description, MENU_ENUM_LABEL_CHEEVOS_UNLOCKED_ENTRY,
MENU_SETTINGS_CHEEVOS_START + i, 0, 0);
} }
items_found++;
} }
} }
@ -3289,11 +3265,11 @@ bool cheevos_unload(void)
cheevos_free_cheevo_set(&cheevos_locals.core); cheevos_free_cheevo_set(&cheevos_locals.core);
cheevos_locals.core.cheevos = NULL; cheevos_locals.core.cheevos = NULL;
cheevos_locals.core.count = 0; cheevos_locals.core.count = 0;
cheevos_free_cheevo_set(&cheevos_locals.unofficial); cheevos_free_cheevo_set(&cheevos_locals.unofficial);
cheevos_locals.unofficial.cheevos = NULL; cheevos_locals.unofficial.cheevos = NULL;
cheevos_locals.unofficial.count = 0; cheevos_locals.unofficial.count = 0;
cheevos_loaded = 0; cheevos_loaded = 0;