mirror of https://github.com/stella-emu/stella.git
Fixed 'Game Info' button in Options Dialog to only be shown when a valid
ROM has been selected in the ROM launcher (or if we're in emulation mode). BTW, I forgot to mention in the previous commit that Stella now only recognizes ROMs if they're named with the following extensions: .bin, .a26, .rom, .zip, .gz (not case sensitive). Right now, attempting to select something else prints an error message. Eventually, a MessageBox will be shown indicating that the filename isn't valid. For now, this restriction is only for files started from the built-in launcher. I haven't decided if it should apply to the commandline as well. git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1427 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
3b32d07c1d
commit
90dce82289
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: GameInfoDialog.cxx,v 1.49 2008-02-27 20:13:55 stephena Exp $
|
||||
// $Id: GameInfoDialog.cxx,v 1.50 2008-03-12 22:04:51 stephena Exp $
|
||||
//
|
||||
// Based on code from ScummVM - Scumm Interpreter
|
||||
// Copyright (C) 2002-2004 The ScummVM project
|
||||
|
@ -336,15 +336,11 @@ void GameInfoDialog::loadConfig()
|
|||
}
|
||||
else if(&myOSystem->launcher())
|
||||
{
|
||||
string file;
|
||||
const string& md5 = myOSystem->launcher().romMD5(file);
|
||||
const string& md5 = myOSystem->launcher().selectedRomMD5();
|
||||
if(md5 != "")
|
||||
{
|
||||
instance()->propSet().getMD5(md5, myGameProperties);
|
||||
myPropertiesLoaded = true;
|
||||
myGameProperties.set(Cartridge_Name, file);
|
||||
myGameProperties.set(Cartridge_ModelNo, file);
|
||||
myGameProperties.set(Cartridge_Manufacturer, file);
|
||||
loadView();
|
||||
}
|
||||
}
|
||||
|
@ -640,7 +636,7 @@ void GameInfoDialog::setDefaults()
|
|||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void GameInfoDialog::handleCommand(CommandSender* sender, int cmd,
|
||||
int data, int id)
|
||||
int data, int id)
|
||||
{
|
||||
switch (cmd)
|
||||
{
|
||||
|
@ -683,6 +679,7 @@ const char* GameInfoDialog::ourControllerList[kNumControllerTypes][2] = {
|
|||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
const char* GameInfoDialog::ourCartridgeList[kNumCartTypes][2] = {
|
||||
{ "Auto-detect", "AUTO-DETECT" },
|
||||
{ "0840 (8K ECONObanking)", "0840" },
|
||||
{ "2K (2K Atari)", "2K" },
|
||||
{ "3E (32K Tigervision)", "3E" },
|
||||
{ "3F (512K Tigervision)", "3F" },
|
||||
|
@ -705,6 +702,5 @@ const char* GameInfoDialog::ourCartridgeList[kNumCartTypes][2] = {
|
|||
{ "MC (C. Wilkson Megacart)", "MC" },
|
||||
{ "SB (128-256k SUPERbanking)", "SB" },
|
||||
{ "UA (8K UA Ltd.)", "UA" },
|
||||
{ "X07 (64K AtariAge)", "X07" },
|
||||
{ "0840 (8K ECONObanking)", "0840" }
|
||||
{ "X07 (64K AtariAge)", "X07" }
|
||||
};
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: Launcher.cxx,v 1.21 2008-02-06 13:45:23 stephena Exp $
|
||||
// $Id: Launcher.cxx,v 1.22 2008-03-12 22:04:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#include <sstream>
|
||||
|
@ -62,7 +62,7 @@ void Launcher::initializeVideo()
|
|||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
string Launcher::romMD5(string& file)
|
||||
string Launcher::selectedRomMD5()
|
||||
{
|
||||
return ((LauncherDialog*)myBaseDialog)->selectedRomMD5(file);
|
||||
return ((LauncherDialog*)myBaseDialog)->selectedRomMD5();
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: Launcher.hxx,v 1.14 2008-02-06 13:45:24 stephena Exp $
|
||||
// $Id: Launcher.hxx,v 1.15 2008-03-12 22:04:51 stephena Exp $
|
||||
//============================================================================
|
||||
|
||||
#ifndef LAUNCHER_HXX
|
||||
|
@ -28,7 +28,7 @@ class OSystem;
|
|||
The base dialog for the ROM launcher in Stella.
|
||||
|
||||
@author Stephen Anthony
|
||||
@version $Id: Launcher.hxx,v 1.14 2008-02-06 13:45:24 stephena Exp $
|
||||
@version $Id: Launcher.hxx,v 1.15 2008-03-12 22:04:51 stephena Exp $
|
||||
*/
|
||||
class Launcher : public DialogContainer
|
||||
{
|
||||
|
@ -49,9 +49,9 @@ class Launcher : public DialogContainer
|
|||
void initializeVideo();
|
||||
|
||||
/**
|
||||
Get game properties for the currently selected ROM.
|
||||
Wrapper for LauncherDialog::selectedRomMD5() method.
|
||||
*/
|
||||
string romMD5(string& file);
|
||||
string selectedRomMD5();
|
||||
|
||||
private:
|
||||
// The width and height of this dialog
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: LauncherDialog.cxx,v 1.77 2008-03-12 19:42:36 stephena Exp $
|
||||
// $Id: LauncherDialog.cxx,v 1.78 2008-03-12 22:04:52 stephena Exp $
|
||||
//
|
||||
// Based on code from ScummVM - Scumm Interpreter
|
||||
// Copyright (C) 2002-2004 The ScummVM project
|
||||
|
@ -172,10 +172,11 @@ LauncherDialog::~LauncherDialog()
|
|||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
string LauncherDialog::selectedRomMD5(string& file)
|
||||
string LauncherDialog::selectedRomMD5()
|
||||
{
|
||||
int item = myList->getSelected();
|
||||
if(item < 0 || myGameList->isDir(item))
|
||||
if(item < 0 || myGameList->isDir(item) ||
|
||||
!isValidRomName(myGameList->name(item)))
|
||||
return "";
|
||||
|
||||
// Make sure we have a valid md5 for this ROM
|
||||
|
@ -183,10 +184,8 @@ string LauncherDialog::selectedRomMD5(string& file)
|
|||
{
|
||||
const string& md5 = MD5FromFile(myGameList->path(item));
|
||||
myGameList->setMd5(item, md5);
|
||||
return md5;
|
||||
}
|
||||
else
|
||||
return myGameList->md5(item);
|
||||
return myGameList->md5(item);
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: LauncherDialog.hxx,v 1.32 2008-03-12 19:42:36 stephena Exp $
|
||||
// $Id: LauncherDialog.hxx,v 1.33 2008-03-12 22:04:53 stephena Exp $
|
||||
//
|
||||
// Based on code from ScummVM - Scumm Interpreter
|
||||
// Copyright (C) 2002-2004 The ScummVM project
|
||||
|
@ -54,7 +54,12 @@ class LauncherDialog : public Dialog
|
|||
int x, int y, int w, int h);
|
||||
~LauncherDialog();
|
||||
|
||||
string selectedRomMD5(string& file);
|
||||
/**
|
||||
Get MD5sum for the currently selected file
|
||||
|
||||
@return md5sum if a valid ROM file, else the empty string
|
||||
*/
|
||||
string selectedRomMD5();
|
||||
|
||||
/**
|
||||
Is this a valid ROM filename (does it have a valid extension?)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: OptionsDialog.cxx,v 1.63 2008-03-12 19:42:36 stephena Exp $
|
||||
// $Id: OptionsDialog.cxx,v 1.64 2008-03-12 22:04:53 stephena Exp $
|
||||
//
|
||||
// Based on code from ScummVM - Scumm Interpreter
|
||||
// Copyright (C) 2002-2004 The ScummVM project
|
||||
|
@ -33,6 +33,7 @@
|
|||
#include "HelpDialog.hxx"
|
||||
#include "AboutDialog.hxx"
|
||||
#include "OptionsDialog.hxx"
|
||||
#include "Launcher.hxx"
|
||||
|
||||
#ifdef CHEATCODE_SUPPORT
|
||||
#include "CheatCodeDialog.hxx"
|
||||
|
@ -183,6 +184,28 @@ OptionsDialog::~OptionsDialog()
|
|||
delete myAboutDialog;
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void OptionsDialog::loadConfig()
|
||||
{
|
||||
// Determine whether we should show the 'Game Information' button
|
||||
// We always show it in emulation mode, or if a valid ROM is selected
|
||||
// in launcher mode
|
||||
switch(instance()->eventHandler().state())
|
||||
{
|
||||
case EventHandler::S_EMULATE:
|
||||
myGameInfoButton->setFlags(WIDGET_ENABLED);
|
||||
break;
|
||||
case EventHandler::S_LAUNCHER:
|
||||
if(instance()->launcher().selectedRomMD5() != "")
|
||||
myGameInfoButton->setFlags(WIDGET_ENABLED);
|
||||
else
|
||||
myGameInfoButton->clearFlags(WIDGET_ENABLED);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
void OptionsDialog::handleCommand(CommandSender* sender, int cmd,
|
||||
int data, int id)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// See the file "license" for information on usage and redistribution of
|
||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
//
|
||||
// $Id: OptionsDialog.hxx,v 1.26 2008-02-06 13:45:24 stephena Exp $
|
||||
// $Id: OptionsDialog.hxx,v 1.27 2008-03-12 22:04:53 stephena Exp $
|
||||
//
|
||||
// Based on code from ScummVM - Scumm Interpreter
|
||||
// Copyright (C) 2002-2004 The ScummVM project
|
||||
|
@ -47,6 +47,7 @@ class OptionsDialog : public Dialog
|
|||
virtual ~OptionsDialog();
|
||||
|
||||
private:
|
||||
void loadConfig();
|
||||
virtual void handleCommand(CommandSender* sender, int cmd, int data, int id);
|
||||
void checkBounds(int width, int height, int* x, int* y, int* w, int* h);
|
||||
|
||||
|
|
Loading…
Reference in New Issue