diff options
| -rw-r--r-- | engines/sky/control.cpp | 32 | ||||
| -rw-r--r-- | engines/sky/control.h | 5 | ||||
| -rw-r--r-- | engines/sky/intro.cpp | 2 | ||||
| -rw-r--r-- | engines/sky/mouse.cpp | 2 | ||||
| -rw-r--r-- | engines/sky/sky.cpp | 32 | ||||
| -rw-r--r-- | engines/sky/sky.h | 3 | 
6 files changed, 33 insertions, 43 deletions
diff --git a/engines/sky/control.cpp b/engines/sky/control.cpp index 04f6800aab..c03cf9688b 100644 --- a/engines/sky/control.cpp +++ b/engines/sky/control.cpp @@ -497,7 +497,7 @@ void Control::doControlPanel(void) {  		_system->updateScreen();  		_mouseClicked = false;  		delay(50); -		if (_keyPressed == 27) { // escape pressed +		if (_keyPressed.keycode == Common::KEYCODE_ESCAPE) { // escape pressed  			_mouseClicked = false;  			quitPanel = true;  		} @@ -841,7 +841,7 @@ bool Control::autoSaveExists(void) {  uint16 Control::saveRestorePanel(bool allowSave) { -	_keyPressed = 0; +	_keyPressed.reset();  	_mouseWheel = 0;  	buttonControl(NULL);  	_text->drawToScreen(WITH_MASK); // flush text restore buffer @@ -898,21 +898,21 @@ uint16 Control::saveRestorePanel(bool allowSave) {  		_system->updateScreen();  		_mouseClicked = false;  		delay(50); -		if (_keyPressed == 27) { // escape pressed +		if (_keyPressed.keycode == Common::KEYCODE_ESCAPE) { // escape pressed  			_mouseClicked = false;  			clickRes = CANCEL_PRESSED;  			quitPanel = true; -		} else if ((_keyPressed == 13) || (_keyPressed == 15)) { +		} else if ((_keyPressed.keycode == Common::KEYCODE_RETURN) || (_keyPressed.keycode == Common::KEYCODE_KP_ENTER)) {  			clickRes = handleClick(lookList[0]);  			if (clickRes == GAME_SAVED)  				saveDescriptions(saveGameTexts);  			quitPanel = true;  			_mouseClicked = false; -			_keyPressed = 0; -		} if (allowSave && _keyPressed) { +			_keyPressed.reset(); +		} if (allowSave && _keyPressed.keycode) {  			handleKeyPress(_keyPressed, _selectedGame * MAX_TEXT_LEN + saveGameTexts);  			refreshNames = true; -			_keyPressed = 0; +			_keyPressed.reset();  		}  		if (_mouseWheel) { @@ -991,9 +991,9 @@ bool Control::checkKeyList(uint8 key) {  	return false;  } -void Control::handleKeyPress(uint8 key, uint8 *textBuf) { +void Control::handleKeyPress(Common::KeyState kbd, uint8 *textBuf) { -	if (key == 8) { // backspace +	if (kbd.keycode == Common::KEYCODE_BACKSPACE) { // backspace  		for (uint8 cnt = 0; cnt < 6; cnt++)  			if (!textBuf[cnt])  				return; @@ -1004,15 +1004,15 @@ void Control::handleKeyPress(uint8 key, uint8 *textBuf) {  	} else {  		if (_enteredTextWidth >= PAN_LINE_WIDTH - 10)  			return; -		if (((key >= 'A') && (key <= 'Z')) || ((key >= 'a') && (key <= 'z')) || -			((key >= '0') && (key <= '9')) || checkKeyList(key)) { +		if (((kbd.ascii >= 'A') && (kbd.ascii <= 'Z')) || ((kbd.ascii >= 'a') && (kbd.ascii <= 'z')) || +			((kbd.ascii >= '0') && (kbd.ascii <= '9')) || checkKeyList(kbd.ascii)) {  				uint8 strLen = 0;  				while (textBuf[0]) {  					textBuf++;  					strLen++;  				}  				if (strLen < MAX_TEXT_LEN) { -					textBuf[0] = key; +					textBuf[0] = kbd.ascii;  					textBuf[1] = 0;  				}  		} @@ -1556,18 +1556,14 @@ void Control::delay(unsigned int amount) {  	uint32 start = _system->getMillis();  	uint32 cur = start; -	_keyPressed = 0;	//reset +	_keyPressed.reset();  	do {  		Common::EventManager *eventMan = _system->getEventManager();  		while (eventMan->pollEvent(event)) {  			switch (event.type) {  			case Common::EVENT_KEYDOWN: -				// Make sure backspace works right (this fixes a small issue on OS X) -				if (event.kbd.keycode == 8) -					_keyPressed = 8; -				else -					_keyPressed = (byte)event.kbd.ascii; +				_keyPressed = event.kbd;  				break;  			case Common::EVENT_MOUSEMOVE:  				if (!(SkyEngine::_systemVars.systemFlags & SF_MOUSE_LOCKED)) diff --git a/engines/sky/control.h b/engines/sky/control.h index ebf66a9e16..217ab5714a 100644 --- a/engines/sky/control.h +++ b/engines/sky/control.h @@ -27,6 +27,7 @@  #define SKY_CONTROL_H  #include "common/stdafx.h" +#include "common/events.h"  #include "common/scummsys.h"  class OSystem; @@ -220,7 +221,7 @@ private:  	void setUpGameSprites(uint8 *nameBuf, dataFileHeader **nameSprites, uint16 firstNum, uint16 selectedGame);  	void showSprites(dataFileHeader **nameSprites, bool allowSave);  	bool checkKeyList(uint8 key); -	void handleKeyPress(uint8 key, uint8 *textBuf); +	void handleKeyPress(Common::KeyState kbd, uint8 *textBuf);  	uint16 _selectedGame;  	uint16 saveGameToFile(void); @@ -243,7 +244,7 @@ private:  	Sound *_skySound;  	OSystem *_system;  	bool _mouseClicked; -	byte _keyPressed; +	Common::KeyState _keyPressed;  	int _mouseWheel;  	struct { diff --git a/engines/sky/intro.cpp b/engines/sky/intro.cpp index 482dc623cc..6d841495af 100644 --- a/engines/sky/intro.cpp +++ b/engines/sky/intro.cpp @@ -917,7 +917,7 @@ bool Intro::escDelay(uint32 msecs) {  	do {  		while (eventMan->pollEvent(event)) {  			if (event.type == Common::EVENT_KEYDOWN) { -				if (event.kbd.keycode == 27) +				if (event.kbd.keycode == Common::KEYCODE_ESCAPE)  					return false;  			} else if (event.type == Common::EVENT_QUIT) {  				_quitProg = true; diff --git a/engines/sky/mouse.cpp b/engines/sky/mouse.cpp index c18eb6d901..524005b7e3 100644 --- a/engines/sky/mouse.cpp +++ b/engines/sky/mouse.cpp @@ -191,7 +191,7 @@ void Mouse::waitMouseNotPressed(int minDelay) {  		while (eventMan->pollEvent(event)) {  			switch (event.type) {  			case Common::EVENT_KEYDOWN: -				if (event.kbd.ascii == 27) { +				if (event.kbd.keycode == Common::KEYCODE_ESCAPE) {  					minDelay = 0;  					mousePressed = false;  				} diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp index 84038990aa..181d67cbf4 100644 --- a/engines/sky/sky.cpp +++ b/engines/sky/sky.cpp @@ -217,33 +217,29 @@ void SkyEngine::initVirgin() {  void SkyEngine::handleKey(void) { -	if (_keyPressed && _systemVars.paused) { +	if (_keyPressed.keycode && _systemVars.paused) {  		_skySound->fnUnPauseFx();  		_systemVars.paused = false;  		_skyScreen->setPaletteEndian((uint8 *)_skyCompact->fetchCpt(SkyEngine::_systemVars.currentPalette)); -		_keyFlags = _keyPressed = 0; -		return; -	} - -	if (_keyFlags == Common::KBD_CTRL) { -		if (_keyPressed == 'f') +	} else if (_keyPressed.flags == Common::KBD_CTRL) { +		if (_keyPressed.keycode == 'f')  			_fastMode ^= 1; -		else if (_keyPressed == 'g') +		else if (_keyPressed.keycode == 'g')  			_fastMode ^= 2; -		else if (_keyPressed == 'd') +		else if (_keyPressed.keycode == 'd')  			_debugger->attach();  	} else { -		switch (_keyPressed) { +		switch (_keyPressed.ascii) {  		case '`':  		case '~':  		case '#':  			_debugger->attach();  			break; -		case 63: +		case Common::ASCII_F5:  			_skyControl->doControlPanel();  			break; -		case 27: +		case Common::ASCII_ESCAPE:  			if (!_systemVars.pastIntro)  				_skyControl->restartGame();  			break; @@ -260,14 +256,14 @@ void SkyEngine::handleKey(void) {  		}  	} -	_keyFlags = _keyPressed = 0; +	_keyPressed.reset();  }  int SkyEngine::go() {  	_systemVars.quitGame = false; -	_keyFlags = _keyPressed = 0; +	_keyPressed.reset();  	uint16 result = 0;  	if (ConfMan.hasKey("save_slot") && ConfMan.getInt("save_slot") >= 0) @@ -517,7 +513,7 @@ void SkyEngine::delay(int32 amount) {  	Common::Event event;  	uint32 start = _system->getMillis(); -	_keyFlags = _keyPressed = 0;	//reset +	_keyPressed.reset();  	if (amount < 0)  		amount = 0; @@ -526,11 +522,7 @@ void SkyEngine::delay(int32 amount) {  		while (_eventMan->pollEvent(event)) {  			switch (event.type) {  			case Common::EVENT_KEYDOWN: -				_keyFlags = event.kbd.flags; -				if (_keyFlags == Common::KBD_CTRL) -					_keyPressed = event.kbd.keycode; -				else -					_keyPressed = (byte)event.kbd.ascii; +				_keyPressed = event.kbd;  				break;  			case Common::EVENT_MOUSEMOVE:  				if (!(_systemVars.systemFlags & SF_MOUSE_LOCKED)) diff --git a/engines/sky/sky.h b/engines/sky/sky.h index bc76e37eef..002964d6bb 100644 --- a/engines/sky/sky.h +++ b/engines/sky/sky.h @@ -27,6 +27,7 @@  #define SKY_H  #include "common/stdafx.h" +#include "common/events.h"  #include "engines/engine.h"  namespace Sky { @@ -60,7 +61,7 @@ class SkyCompact;  class SkyEngine : public Engine {  	GUI::Debugger *getDebugger();  protected: -	byte _keyPressed, _keyFlags; +	Common::KeyState _keyPressed;  	bool _floppyIntro;  	Sound *_skySound;  | 
