fix #8725 again including:
- allow savestates on hardcore - fix weird conditions happening due to having two implementations - fix popup saying state was loaded when starting a game with achievements hardcore after a game with no achievements - fix rewind not working when loading games with no achievements after loading games with achievements hardcore
This commit is contained in:
parent
f17655f073
commit
eef4ada025
|
@ -952,6 +952,7 @@ bool rcheevos_unload(void)
|
||||||
rcheevos_locals.lboards = NULL;
|
rcheevos_locals.lboards = NULL;
|
||||||
|
|
||||||
rcheevos_loaded = false;
|
rcheevos_loaded = false;
|
||||||
|
rcheevos_hardcore_active = false;
|
||||||
rcheevos_hardcore_paused = false;
|
rcheevos_hardcore_paused = false;
|
||||||
rcheevos_state_loaded_flag = false;
|
rcheevos_state_loaded_flag = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2263,6 +2263,7 @@ bool cheevos_unload(void)
|
||||||
cheevos_locals.unofficial.count = 0;
|
cheevos_locals.unofficial.count = 0;
|
||||||
|
|
||||||
cheevos_loaded = false;
|
cheevos_loaded = false;
|
||||||
|
cheevos_hardcore_active = false;
|
||||||
cheevos_hardcore_paused = false;
|
cheevos_hardcore_paused = false;
|
||||||
cheevos_state_loaded_flag = false;
|
cheevos_state_loaded_flag = false;
|
||||||
|
|
||||||
|
@ -2282,6 +2283,9 @@ bool cheevos_toggle_hardcore_mode(void)
|
||||||
const char *msg = msg_hash_to_str(
|
const char *msg = msg_hash_to_str(
|
||||||
MSG_CHEEVOS_HARDCORE_MODE_ENABLE);
|
MSG_CHEEVOS_HARDCORE_MODE_ENABLE);
|
||||||
|
|
||||||
|
/* reset the state loaded flag in case it was set */
|
||||||
|
cheevos_state_loaded_flag = false;
|
||||||
|
|
||||||
/* send reset core cmd to avoid any user
|
/* send reset core cmd to avoid any user
|
||||||
* savestate previusly loaded. */
|
* savestate previusly loaded. */
|
||||||
command_event(CMD_EVENT_RESET, NULL);
|
command_event(CMD_EVENT_RESET, NULL);
|
||||||
|
|
|
@ -1730,7 +1730,10 @@ static bool command_event_main_state(unsigned cmd)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_CHEEVOS
|
#ifdef HAVE_CHEEVOS
|
||||||
/* RCHEEVOS TODO: remove duplication below */
|
/* RCHEEVOS TODO: remove duplication below */
|
||||||
rcheevos_state_loaded_flag = cheevos_state_loaded_flag = true;
|
if (cheevos_hardcore_active)
|
||||||
|
cheevos_state_loaded_flag = true;
|
||||||
|
if (rcheevos_hardcore_active)
|
||||||
|
rcheevos_state_loaded_flag = true;
|
||||||
#endif
|
#endif
|
||||||
ret = true;
|
ret = true;
|
||||||
#ifdef HAVE_NETWORKING
|
#ifdef HAVE_NETWORKING
|
||||||
|
|
|
@ -4167,12 +4167,11 @@ static enum runloop_state runloop_check_state(
|
||||||
/* RCHEEVOS TODO: remove the 'rcheevos_*' below */
|
/* RCHEEVOS TODO: remove the 'rcheevos_*' below */
|
||||||
rcheevos_hardcore_active = settings->bools.cheevos_enable
|
rcheevos_hardcore_active = settings->bools.cheevos_enable
|
||||||
&& settings->bools.cheevos_hardcore_mode_enable
|
&& settings->bools.cheevos_hardcore_mode_enable
|
||||||
&& rcheevos_loaded && rcheevos_hardcore_paused;
|
&& rcheevos_loaded && !rcheevos_hardcore_paused;
|
||||||
|
|
||||||
cheevos_hardcore_active = settings->bools.cheevos_enable
|
cheevos_hardcore_active = settings->bools.cheevos_enable
|
||||||
&& settings->bools.cheevos_hardcore_mode_enable
|
&& settings->bools.cheevos_hardcore_mode_enable
|
||||||
&& cheevos_loaded && cheevos_hardcore_paused;
|
&& cheevos_loaded && !cheevos_hardcore_paused;
|
||||||
|
|
||||||
if (!settings->bools.cheevos_old_enable)
|
if (!settings->bools.cheevos_old_enable)
|
||||||
{
|
{
|
||||||
if (rcheevos_hardcore_active && rcheevos_state_loaded_flag)
|
if (rcheevos_hardcore_active && rcheevos_state_loaded_flag)
|
||||||
|
|
Loading…
Reference in New Issue