HasProblem usually indicates an expired trial (currently for Big Fish, Humble, and Oculus), but for MAME ROMs it could indicate that it didn't verify correctly or that the MachineStatus doesn't meet the minimum criteria (I was OK with it being equivocal since "DriverStatus" can be checked manually). Now, however, I decided to flip the bit to indicate a workaround for #23 a Legacy Games Launcher issue I ran into where the launcher lost track of an installed game.
I imagined the use-case for a consumer application would involve adding a yellow yield-sign pling next to the title to let the user know there was an issue that needed to be investigated. However, if this flag is going to indicate a lot of different conditions, it makes the application's job much harder to produce an appropriate message to the user.
I'll use an enum rather than a full error message, so it's still up to the application how to communicate/translate the issue.
EDIT: Here's my first pass at a list of problems for the enum; not all of them are currently used, but I think I've seen all of them so I can try to flag them where possible:
Install pending (queued, downloading, or install in progress)
Not found in data (i.e., the launcher's manifests or database; the game is installed, but the launcher may not agree) [opposite of NotFoundOnDisk]
Not found on disk (The launcher thinks the game is installed, but it's not) [opposite of NotFoundInData]
Expired trial or part of a lapsed membership
Does not meet requirements [the MAME handler uses this when the driver emulation status doesn't meet the minimum ("imperfect" by default)]
Failed to verify (The game is on the disk, but files may be corrupt or a mismatched version)
Fixed in commit 70a31fd. Not all of the flags listed in the enum are currently used. I need to go through the handlers and see where I can flag some of the issues that I've seen and worked around.
HasProblem usually indicates an expired trial (currently for Big Fish, Humble, and Oculus), but for MAME ROMs it could indicate that it didn't verify correctly or that the MachineStatus doesn't meet the minimum criteria (I was OK with it being equivocal since "DriverStatus" can be checked manually). Now, however, I decided to flip the bit to indicate a workaround for #23 a Legacy Games Launcher issue I ran into where the launcher lost track of an installed game.
I imagined the use-case for a consumer application would involve adding a yellow yield-sign pling next to the title to let the user know there was an issue that needed to be investigated. However, if this flag is going to indicate a lot of different conditions, it makes the application's job much harder to produce an appropriate message to the user.
I'll use an enum rather than a full error message, so it's still up to the application how to communicate/translate the issue.
EDIT: Here's my first pass at a list of problems for the enum; not all of them are currently used, but I think I've seen all of them so I can try to flag them where possible: