AVALANCHE: Upgrade Scrolls::normscroll().
This commit is contained in:
parent
dc1e9022b1
commit
4430e435d8
2 changed files with 78 additions and 75 deletions
|
@ -61,6 +61,76 @@ Avalot::Avalot(AvalancheEngine *vm) {
|
||||||
_vm = vm;
|
_vm = vm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Avalot::handleKeyDown(Common::Event &event) {
|
||||||
|
//if (keyboardclick)
|
||||||
|
// click();
|
||||||
|
//
|
||||||
|
// To be implemented later with the sounds, I assume.
|
||||||
|
|
||||||
|
if ((32 <= event.kbd.ascii) && (event.kbd.ascii <= 128) && (event.kbd.ascii != 47))
|
||||||
|
_vm->_parser->handleInputText(event);
|
||||||
|
else
|
||||||
|
switch (event.kbd.keycode) { // We can control Avvy with the numpad as well.
|
||||||
|
case Common::KEYCODE_KP8:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_UP;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP2:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_DOWN;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP6:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_RIGHT;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP4:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_LEFT;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP9:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_PAGEUP;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP3:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_PAGEDOWN;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP7:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_HOME;
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_KP1:
|
||||||
|
event.kbd.keycode = Common::KEYCODE_END;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (event.kbd.keycode) {
|
||||||
|
case Common::KEYCODE_UP:
|
||||||
|
case Common::KEYCODE_DOWN:
|
||||||
|
case Common::KEYCODE_RIGHT:
|
||||||
|
case Common::KEYCODE_LEFT:
|
||||||
|
case Common::KEYCODE_PAGEUP:
|
||||||
|
case Common::KEYCODE_PAGEDOWN:
|
||||||
|
case Common::KEYCODE_HOME:
|
||||||
|
case Common::KEYCODE_END:
|
||||||
|
case Common::KEYCODE_KP5:
|
||||||
|
if (_vm->_gyro->alive) {
|
||||||
|
_vm->_trip->handleMoveKey(event); // Fallthroughs are intended.
|
||||||
|
_vm->_lucerna->showrw();
|
||||||
|
if (_vm->_gyro->demo)
|
||||||
|
_vm->_basher->get_demorec();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
case Common::KEYCODE_BACKSPACE:
|
||||||
|
_vm->_parser->handleBackspace();
|
||||||
|
break;
|
||||||
|
case Common::KEYCODE_RETURN:
|
||||||
|
_vm->_parser->handleReturn();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
_vm->_lucerna->showrw();
|
||||||
|
if (_vm->_gyro->demo)
|
||||||
|
_vm->_basher->get_demorec();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Avalot::setup() {
|
void Avalot::setup() {
|
||||||
int16 gd, gm;
|
int16 gd, gm;
|
||||||
|
@ -150,76 +220,6 @@ void Avalot::setup() {
|
||||||
_vm->_visa->dixi('q', 83); // Info on the game, etc.
|
_vm->_visa->dixi('q', 83); // Info on the game, etc.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Avalot::handleKeyDown(Common::Event &event) {
|
|
||||||
//if (keyboardclick)
|
|
||||||
// click();
|
|
||||||
//
|
|
||||||
// To be implemented later with the sounds, I assume.
|
|
||||||
|
|
||||||
if ((32 <= event.kbd.ascii) && (event.kbd.ascii <= 128) && (event.kbd.ascii != 47))
|
|
||||||
_vm->_parser->handleInputText(event);
|
|
||||||
else
|
|
||||||
switch (event.kbd.keycode) { // We can control Avvy with the numpad as well.
|
|
||||||
case Common::KEYCODE_KP8:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_UP;
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_KP2:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_DOWN;
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_KP6:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_RIGHT;
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_KP4:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_LEFT;
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_KP9:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_PAGEUP;
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_KP3:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_PAGEDOWN;
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_KP7:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_HOME;
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_KP1:
|
|
||||||
event.kbd.keycode = Common::KEYCODE_END;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (event.kbd.keycode) {
|
|
||||||
case Common::KEYCODE_UP:
|
|
||||||
case Common::KEYCODE_DOWN:
|
|
||||||
case Common::KEYCODE_RIGHT:
|
|
||||||
case Common::KEYCODE_LEFT:
|
|
||||||
case Common::KEYCODE_PAGEUP:
|
|
||||||
case Common::KEYCODE_PAGEDOWN:
|
|
||||||
case Common::KEYCODE_HOME:
|
|
||||||
case Common::KEYCODE_END:
|
|
||||||
case Common::KEYCODE_KP5:
|
|
||||||
if (_vm->_gyro->alive) {
|
|
||||||
_vm->_trip->handleMoveKey(event); // Fallthroughs are intended.
|
|
||||||
_vm->_lucerna->showrw();
|
|
||||||
if (_vm->_gyro->demo)
|
|
||||||
_vm->_basher->get_demorec();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
case Common::KEYCODE_BACKSPACE:
|
|
||||||
_vm->_parser->handleBackspace();
|
|
||||||
break;
|
|
||||||
case Common::KEYCODE_RETURN:
|
|
||||||
_vm->_parser->handleReturn();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
_vm->_lucerna->showrw();
|
|
||||||
if (_vm->_gyro->demo)
|
|
||||||
_vm->_basher->get_demorec();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Avalot::run(Common::String arg) {
|
void Avalot::run(Common::String arg) {
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
|
|
|
@ -161,12 +161,14 @@ void Scrolls::normscroll() {
|
||||||
::Graphics::Surface temp;
|
::Graphics::Surface temp;
|
||||||
temp.copyFrom(_vm->_graphics->_surface);
|
temp.copyFrom(_vm->_graphics->_surface);
|
||||||
_vm->_graphics->_surface.copyFrom(_vm->_graphics->_scrolls); // TODO: Rework it using getSubArea !!!!!!!
|
_vm->_graphics->_surface.copyFrom(_vm->_graphics->_scrolls); // TODO: Rework it using getSubArea !!!!!!!
|
||||||
_vm->_graphics->refreshScreen();
|
|
||||||
|
|
||||||
Common::Event event;
|
Common::Event event;
|
||||||
while (!_vm->shouldQuit()) {
|
while (!_vm->shouldQuit()) {
|
||||||
|
_vm->_graphics->refreshScreen();
|
||||||
|
|
||||||
_vm->getEvent(event);
|
_vm->getEvent(event);
|
||||||
if ((event.type == Common::EVENT_KEYDOWN) && ((event.kbd.keycode == Common::KEYCODE_ESCAPE) || (event.kbd.keycode == Common::KEYCODE_RETURN) || (event.kbd.keycode == Common::KEYCODE_HASH) || (event.kbd.keycode == Common::KEYCODE_PLUS)))
|
if ((event.type == Common::EVENT_LBUTTONUP) ||
|
||||||
|
((event.type == Common::EVENT_KEYDOWN) && ((event.kbd.keycode == Common::KEYCODE_ESCAPE) || (event.kbd.keycode == Common::KEYCODE_RETURN) || (event.kbd.keycode == Common::KEYCODE_HASH) || (event.kbd.keycode == Common::KEYCODE_PLUS))))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,6 +208,7 @@ void Scrolls::normscroll() {
|
||||||
//#ifdef RECORD record_one(); #endif
|
//#ifdef RECORD record_one(); #endif
|
||||||
//
|
//
|
||||||
// _vm->_gyro->screturn = r == '#'; /* "back door" */
|
// _vm->_gyro->screturn = r == '#'; /* "back door" */
|
||||||
|
|
||||||
state(0);
|
state(0);
|
||||||
_vm->_gyro->seescroll = false;
|
_vm->_gyro->seescroll = false;
|
||||||
_vm->_lucerna->mousepage(_vm->_gyro->cp);
|
_vm->_lucerna->mousepage(_vm->_gyro->cp);
|
||||||
|
@ -558,7 +561,7 @@ void Scrolls::bubble(func2 gotoit) {
|
||||||
CursorMan.showMouse(false);
|
CursorMan.showMouse(false);
|
||||||
_vm->_gyro->dropsok = true;
|
_vm->_gyro->dropsok = true;
|
||||||
|
|
||||||
/*setvisualpage(cp);
|
//setvisualpage(cp);
|
||||||
CursorMan.showMouse(true); /*sink;*/
|
CursorMan.showMouse(true); /*sink;*/
|
||||||
_vm->_gyro->oncandopageswap = true;
|
_vm->_gyro->oncandopageswap = true;
|
||||||
resetscrolldriver();
|
resetscrolldriver();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue