03001: "Working clones" display problem

Also tweaked the "not working" message.
This commit is contained in:
Aaron Giles 2009-03-07 07:58:27 +00:00
parent 994160658e
commit 25b126291e

View File

@ -931,9 +931,6 @@ static astring *warnings_string(running_machine *machine, astring *string)
if (machine->gamedrv->flags & GAME_REQUIRES_ARTWORK) if (machine->gamedrv->flags & GAME_REQUIRES_ARTWORK)
astring_catc(string, "The game requires external artwork files\n"); astring_catc(string, "The game requires external artwork files\n");
/* if there's a NOT WORKING or UNEMULATED PROTECTION warning, make it stronger */ /* if there's a NOT WORKING or UNEMULATED PROTECTION warning, make it stronger */
if (machine->gamedrv->flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION)) if (machine->gamedrv->flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION))
{ {
@ -942,10 +939,11 @@ static astring *warnings_string(running_machine *machine, astring *string)
int foundworking; int foundworking;
/* add the strings for these warnings */ /* add the strings for these warnings */
if (machine->gamedrv->flags & GAME_NOT_WORKING)
astring_catc(string, "THIS " CAPGAMENOUN " DOESN'T WORK. You won't be able to make it work correctly. Don't bother.\n");
if (machine->gamedrv->flags & GAME_UNEMULATED_PROTECTION) if (machine->gamedrv->flags & GAME_UNEMULATED_PROTECTION)
astring_catc(string, "The game has protection which isn't fully emulated.\n"); astring_catc(string, "The game has protection which isn't fully emulated.\n");
if (machine->gamedrv->flags & GAME_NOT_WORKING)
astring_catc(string, "THIS " CAPGAMENOUN " DOESN'T WORK. The emulation for this game is not yet complete. "
"There is nothing you can do to fix this problem except wait for the developers to improve the emulation.\n");
/* find the parent of this driver */ /* find the parent of this driver */
clone_of = driver_get_clone(machine->gamedrv); clone_of = driver_get_clone(machine->gamedrv);
@ -955,18 +953,22 @@ static astring *warnings_string(running_machine *machine, astring *string)
maindrv = machine->gamedrv; maindrv = machine->gamedrv;
/* scan the driver list for any working clones and add them */ /* scan the driver list for any working clones and add them */
foundworking = 0; foundworking = FALSE;
for (i = 0; drivers[i] != NULL; i++) for (i = 0; drivers[i] != NULL; i++)
if (drivers[i] == maindrv || driver_get_clone(drivers[i]) == maindrv) if (drivers[i] == maindrv || driver_get_clone(drivers[i]) == maindrv)
if ((drivers[i]->flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION)) == 0) if ((drivers[i]->flags & (GAME_NOT_WORKING | GAME_UNEMULATED_PROTECTION)) == 0)
{ {
/* this one works, add a header and display the name of the clone */ /* this one works, add a header and display the name of the clone */
if (foundworking == 0) if (!foundworking)
astring_catc(string, "\n\nThere are working clones of this game. They are:\n\n"); astring_catc(string, "\n\nThere are working clones of this game: ");
else
astring_catc(string, ", ");
astring_catc(string, drivers[i]->name); astring_catc(string, drivers[i]->name);
astring_catc(string, "\n"); foundworking = TRUE;
foundworking = 1;
} }
if (foundworking)
astring_catc(string, "\n");
} }
} }