RetroAchievements / RAIntegration

The DLL responsible to integrate emulators with RetroAchievements.org
https://retroachievements.org
MIT License
98 stars 22 forks source link

hide challenge indicator when achievement is paused #740

Closed Jamiras closed 3 years ago

Jamiras commented 3 years ago

As a Paused achievement cannot trigger, it is reasonable to hide the challenge indicator while an achievement was paused.

Previously, it was intentionally left displayed as existing achievements use Pause to prevent Resets during a challenge (i.e. when a boss regains health or the player pauses the game or opens an inventory screen). In these cases, the challenge is still active, so it makes sense to keep the indicator on screen.

There's also a bunch of achievements that use Pause to disable the achievement (either temporarily, or permanently) if the player does something wrong. In these cases, the indicator would remain on screen, which is misleading as the achievement cannot possibly trigger.

Since Trigger is a new flag, we have to assume that whoever is adding the Trigger flag will make whatever changes are necessary to support it as cleanly as possible. In that regard, as it's impossible to trigger a paused achievement, I've agreed to hide the indicator when an achievement is paused. Achievements using a Pause to prevent a Reset can simply change the Pause to an AndNext and invert the logic. i.e. ("PauseIf A == 1; ResetIf B == 2" becomes "AndNext A != 1; ResetIf B == 2").