diff options
| author | athrxx | 2011-06-03 00:39:07 +0200 | 
|---|---|---|
| committer | athrxx | 2011-06-03 00:41:09 +0200 | 
| commit | 717248e1625bc42fc7f777ca9d3029f6ef8978e6 (patch) | |
| tree | 7a03fe8d73c82babd9929103889b4879689f7fdc | |
| parent | b384bb4a861b08dbbb42b14019f5b991a52a1b0f (diff) | |
| download | scummvm-rg350-717248e1625bc42fc7f777ca9d3029f6ef8978e6.tar.gz scummvm-rg350-717248e1625bc42fc7f777ca9d3029f6ef8978e6.tar.bz2 scummvm-rg350-717248e1625bc42fc7f777ca9d3029f6ef8978e6.zip  | |
KYRA: improve readability of key mapping code
| -rw-r--r-- | engines/kyra/kyra_v1.cpp | 44 | 
1 files changed, 32 insertions, 12 deletions
diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp index 75df1d148b..f108082e13 100644 --- a/engines/kyra/kyra_v1.cpp +++ b/engines/kyra/kyra_v1.cpp @@ -350,23 +350,43 @@ int KyraEngine_v1::checkInput(Button *buttonList, bool mainLoop, int eventFlag)  }  void KyraEngine_v1::setupKeyMap() { -	static const Common::KeyCode keyboardEvents[] = { -		Common::KEYCODE_SPACE,  Common::KEYCODE_RETURN, Common::KEYCODE_UP,     Common::KEYCODE_KP8, -		Common::KEYCODE_RIGHT,  Common::KEYCODE_KP6,    Common::KEYCODE_DOWN,   Common::KEYCODE_KP2, -		Common::KEYCODE_KP5,	Common::KEYCODE_LEFT,   Common::KEYCODE_KP4,	Common::KEYCODE_HOME, -		Common::KEYCODE_KP7,	Common::KEYCODE_PAGEUP, Common::KEYCODE_KP9,    Common::KEYCODE_F1, -		Common::KEYCODE_F2,		Common::KEYCODE_F3,     Common::KEYCODE_o,      Common::KEYCODE_r, -		Common::KEYCODE_SLASH,	Common::KEYCODE_ESCAPE +	struct KeyMapEntry { +		Common::KeyCode kcScummVM; +		int16 kcDOS; +		int16 kcPC98;  	}; -	static const int16 keyCodesDOS[] = { 61, 43, 96, 96, 102, 102, 98, 98, 97, 92, 92, 91, 91, 101, 101, 112, 113, 114, 25, 20, 55, 110}; -	static const int16 keyCodesPC98[] = { 53, 29, 68, 68, 73, 73, 76, 76, 72, 71, 71, 67, 67, 69, 69, 99, 100, 101, 25, 20, 55, 1 }; +#define KC(x) Common::KEYCODE_##x +	static const KeyMapEntry keys[] = { +		{ KC(SPACE), 61, 53 }, +		{ KC(RETURN), 43, 29 }, +		{ KC(UP), 96, 68 }, +		{ KC(KP8), 96, 68 }, +		{ KC(RIGHT), 102, 73 }, +		{ KC(KP6), 102, 73 }, +		{ KC(DOWN), 98, 76 }, +		{ KC(KP2), 98, 76 }, +		{ KC(KP5), 97, 72 }, +		{ KC(LEFT), 92, 71 }, +		{ KC(KP4), 92, 71 }, +		{ KC(HOME), 91, 67 }, +		{ KC(KP7), 91, 67 }, +		{ KC(PAGEUP), 101, 69 }, +		{ KC(KP9), 101, 69 }, +		{ KC(F1), 112, 99 }, +		{ KC(F2), 113, 100 }, +		{ KC(F3), 114, 101 }, +		{ KC(o), 25, 25 }, +		{ KC(r), 20, 20 }, +		{ KC(SLASH), 55, 55 }, +		{ KC(ESCAPE), 110, 1 }, +	}; +#undef KC -	const int16 *keyCodes = _flags.platform == Common::kPlatformPC98 ? keyCodesPC98 : keyCodesDOS;  	_keyMap.clear(); -	for (int i = 0; i < ARRAYSIZE(keyboardEvents); i++) -		_keyMap[keyboardEvents[i]] = keyCodes[i]; +	for (int i = 0; i < ARRAYSIZE(keys); i++) +		_keyMap[keys[i].kcScummVM] = (_flags.platform == Common::kPlatformPC98) ? keys[i].kcPC98 : keys[i].kcDOS;  }  void KyraEngine_v1::updateInput() {  | 
