Added ability for cartridge frying to be remapped.

Fixed bug where Escape key (by default assigned to enter Launcher)
couldn't be remapped to anything else.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@878 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2005-11-13 16:17:10 +00:00
parent fb79186648
commit 2d2bd5f62d
3 changed files with 18 additions and 13 deletions

View File

@ -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: EventHandler.cxx,v 1.112 2005-11-13 03:55:24 stephena Exp $
// $Id: EventHandler.cxx,v 1.113 2005-11-13 16:17:10 stephena Exp $
//============================================================================
#include <algorithm>
@ -1147,7 +1147,7 @@ bool EventHandler::eventStateChange(Event::Type type)
void EventHandler::setActionMappings()
{
// Fill the ActionList with the current key and joystick mappings
for(Int32 i = 0; i < 62; ++i)
for(Int32 i = 0; i < kActionListSize; ++i)
{
uInt32 j;
@ -1257,7 +1257,7 @@ void EventHandler::setJoymap()
void EventHandler::addKeyMapping(Event::Type event, uInt16 key)
{
// These keys cannot be remapped.
if(key == SDLK_TAB || key == SDLK_ESCAPE)
if(key == SDLK_TAB)
return;
myKeyTable[key] = event;
@ -1282,7 +1282,7 @@ void EventHandler::eraseMapping(Event::Type event)
// Erase the KeyEvent arrays
for(i = 0; i < SDLK_LAST; ++i)
if(myKeyTable[i] == event && i != SDLK_TAB && i != SDLK_ESCAPE)
if(myKeyTable[i] == event && i != SDLK_TAB)
myKeyTable[i] = Event::NoType;
saveKeyMapping();
@ -1375,11 +1375,11 @@ void EventHandler::setDefaultKeymap()
myKeyTable[ SDLK_F11 ] = Event::LoadState;
myKeyTable[ SDLK_F12 ] = Event::TakeSnapshot;
myKeyTable[ SDLK_PAUSE ] = Event::Pause;
myKeyTable[ SDLK_BACKSPACE ] = Event::Fry;
myKeyTable[ SDLK_TAB ] = Event::MenuMode;
myKeyTable[ SDLK_BACKSLASH ] = Event::CmdMenuMode;
myKeyTable[ SDLK_BACKQUOTE ] = Event::DebuggerMode;
myKeyTable[ SDLK_ESCAPE ] = Event::LauncherMode;
myKeyTable[ SDLK_BACKSPACE ] = Event::Fry;
saveKeyMapping();
}
@ -1983,7 +1983,7 @@ void EventHandler::setSDLMappings()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// FIXME - this must be handled better in the future ///
#ifndef _WIN32_WCE
ActionList EventHandler::ourActionList[62] = {
ActionList EventHandler::ourActionList[kActionListSize] = {
{ Event::ConsoleSelect, "Select", "" },
{ Event::ConsoleReset, "Reset", "" },
{ Event::ConsoleColor, "Color TV", "" },
@ -1997,6 +1997,7 @@ ActionList EventHandler::ourActionList[62] = {
{ Event::LoadState, "Load State", "" },
{ Event::TakeSnapshot, "Snapshot", "" },
{ Event::Pause, "Pause", "" },
{ Event::Fry, "Fry cartridge", "" },
{ Event::MenuMode, "Toggle options menu mode", "" },
{ Event::CmdMenuMode, "Toggle command menu mode", "" },
{ Event::DebuggerMode, "Toggle debugger mode", "" },
@ -2056,7 +2057,7 @@ ActionList EventHandler::ourActionList[62] = {
{ Event::KeyboardOnePound, "P2 GamePad #", "" }
};
#else
ActionList EventHandler::ourActionList[62];
ActionList EventHandler::ourActionList[kActionListSize];
#endif
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -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: EventHandler.hxx,v 1.55 2005-11-12 22:04:57 stephena Exp $
// $Id: EventHandler.hxx,v 1.56 2005-11-13 16:17:10 stephena Exp $
//============================================================================
#ifndef EVENTHANDLER_HXX
@ -46,6 +46,10 @@ struct ActionList {
string key;
};
enum {
kActionListSize = 63
};
// Joystick related items
enum {
kNumJoysticks = 8,
@ -83,7 +87,7 @@ struct Joystick_Map {
mapping can take place.
@author Stephen Anthony
@version $Id: EventHandler.hxx,v 1.55 2005-11-12 22:04:57 stephena Exp $
@version $Id: EventHandler.hxx,v 1.56 2005-11-13 16:17:10 stephena Exp $
*/
class EventHandler
{
@ -240,7 +244,7 @@ class EventHandler
void saveProperties();
// Holds static strings for the remap menu
static ActionList ourActionList[62];
static ActionList ourActionList[kActionListSize];
/**
Send an event directly to the event handler.
@ -251,7 +255,7 @@ class EventHandler
*/
void handleEvent(Event::Type type, Int32 value);
bool frying() { return myFryingFlag; }
inline bool frying() { return myFryingFlag; }
private:
/**

View File

@ -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: EventMappingDialog.cxx,v 1.19 2005-08-22 18:17:10 stephena Exp $
// $Id: EventMappingDialog.cxx,v 1.20 2005-11-13 16:17:10 stephena Exp $
//
// Based on code from ScummVM - Scumm Interpreter
// Copyright (C) 2002-2004 The ScummVM project
@ -74,7 +74,7 @@ EventMappingDialog::EventMappingDialog(OSystem* osystem, DialogContainer* parent
// Get actions names
StringList l;
for(int i = 0; i < 61; ++i)
for(int i = 0; i < kActionListSize; ++i)
l.push_back(EventHandler::ourActionList[i].action);
myActionsList->setList(l);