diff options
Diffstat (limited to 'engines/sci/engine/kevent.cpp')
-rw-r--r-- | engines/sci/engine/kevent.cpp | 56 |
1 files changed, 27 insertions, 29 deletions
diff --git a/engines/sci/engine/kevent.cpp b/engines/sci/engine/kevent.cpp index 3e096074e6..156035b30d 100644 --- a/engines/sci/engine/kevent.cpp +++ b/engines/sci/engine/kevent.cpp @@ -49,18 +49,16 @@ reg_t kGetEvent(EngineState *s, int argc, reg_t *argv) { SegManager *segMan = s->_segMan; Common::Point mousePos; - // Limit the mouse cursor position, if necessary - g_sci->_gfxCursor->refreshPosition(); mousePos = g_sci->_gfxCursor->getPosition(); // If there's a simkey pending, and the game wants a keyboard event, use the // simkey instead of a normal event if (g_debug_simulated_key && (mask & SCI_EVENT_KEYBOARD)) { - writeSelectorValue(segMan, obj, SELECTOR(type), SCI_EVENT_KEYBOARD); // Keyboard event - writeSelectorValue(segMan, obj, SELECTOR(message), g_debug_simulated_key); - writeSelectorValue(segMan, obj, SELECTOR(modifiers), SCI_KEYMOD_NUMLOCK); // Numlock on - writeSelectorValue(segMan, obj, SELECTOR(x), mousePos.x); - writeSelectorValue(segMan, obj, SELECTOR(y), mousePos.y); + PUT_SEL32V(segMan, obj, SELECTOR(type), SCI_EVENT_KEYBOARD); // Keyboard event + PUT_SEL32V(segMan, obj, SELECTOR(message), g_debug_simulated_key); + PUT_SEL32V(segMan, obj, SELECTOR(modifiers), SCI_KEYMOD_NUMLOCK); // Numlock on + PUT_SEL32V(segMan, obj, SELECTOR(x), mousePos.x); + PUT_SEL32V(segMan, obj, SELECTOR(y), mousePos.y); g_debug_simulated_key = 0; return make_reg(0, 1); } @@ -69,11 +67,11 @@ reg_t kGetEvent(EngineState *s, int argc, reg_t *argv) { oldy = mousePos.y; curEvent = s->_event->get(mask); - if (g_sci->getVocabulary()) - g_sci->getVocabulary()->parser_event = NULL_REG; // Invalidate parser event + if (s->_voc) + s->_voc->parser_event = NULL_REG; // Invalidate parser event - writeSelectorValue(segMan, obj, SELECTOR(x), mousePos.x); - writeSelectorValue(segMan, obj, SELECTOR(y), mousePos.y); + PUT_SEL32V(segMan, obj, SELECTOR(x), mousePos.x); + PUT_SEL32V(segMan, obj, SELECTOR(y), mousePos.y); //s->_gui->moveCursor(s->gfx_state->pointer_pos.x, s->gfx_state->pointer_pos.y); @@ -83,12 +81,12 @@ reg_t kGetEvent(EngineState *s, int argc, reg_t *argv) { break; case SCI_EVENT_KEYBOARD: - writeSelectorValue(segMan, obj, SELECTOR(type), SCI_EVENT_KEYBOARD); // Keyboard event + PUT_SEL32V(segMan, obj, SELECTOR(type), SCI_EVENT_KEYBOARD); // Keyboard event s->r_acc = make_reg(0, 1); - writeSelectorValue(segMan, obj, SELECTOR(message), curEvent.character); + PUT_SEL32V(segMan, obj, SELECTOR(message), curEvent.character); // We only care about the translated character - writeSelectorValue(segMan, obj, SELECTOR(modifiers), curEvent.modifiers & modifier_mask); + PUT_SEL32V(segMan, obj, SELECTOR(modifiers), curEvent.modifiers & modifier_mask); break; case SCI_EVENT_MOUSE_RELEASE: @@ -113,9 +111,9 @@ reg_t kGetEvent(EngineState *s, int argc, reg_t *argv) { break; } - writeSelectorValue(segMan, obj, SELECTOR(type), curEvent.type); - writeSelectorValue(segMan, obj, SELECTOR(message), 0); - writeSelectorValue(segMan, obj, SELECTOR(modifiers), (curEvent.modifiers | extra_bits) & modifier_mask); + PUT_SEL32V(segMan, obj, SELECTOR(type), curEvent.type); + PUT_SEL32V(segMan, obj, SELECTOR(message), 0); + PUT_SEL32V(segMan, obj, SELECTOR(modifiers), (curEvent.modifiers | extra_bits) & modifier_mask); s->r_acc = make_reg(0, 1); } break; @@ -167,9 +165,9 @@ reg_t kMapKeyToDir(EngineState *s, int argc, reg_t *argv) { reg_t obj = argv[0]; SegManager *segMan = s->_segMan; - if (readSelectorValue(segMan, obj, SELECTOR(type)) == SCI_EVENT_KEYBOARD) { // Keyboard + if (GET_SEL32V(segMan, obj, SELECTOR(type)) == SCI_EVENT_KEYBOARD) { // Keyboard int mover = -1; - switch (readSelectorValue(segMan, obj, SELECTOR(message))) { + switch (GET_SEL32V(segMan, obj, SELECTOR(message))) { case SCI_KEY_HOME: mover = 8; break; @@ -203,8 +201,8 @@ reg_t kMapKeyToDir(EngineState *s, int argc, reg_t *argv) { } if (mover >= 0) { - writeSelectorValue(segMan, obj, SELECTOR(type), SCI_EVENT_JOYSTICK); - writeSelectorValue(segMan, obj, SELECTOR(message), mover); + PUT_SEL32V(segMan, obj, SELECTOR(type), SCI_EVENT_JOYSTICK); + PUT_SEL32V(segMan, obj, SELECTOR(message), mover); return make_reg(0, 1); } else return NULL_REG; @@ -219,13 +217,13 @@ reg_t kGlobalToLocal(EngineState *s, int argc, reg_t *argv) { SegManager *segMan = s->_segMan; if (obj.segment) { - int16 x = readSelectorValue(segMan, obj, SELECTOR(x)); - int16 y = readSelectorValue(segMan, obj, SELECTOR(y)); + int16 x = GET_SEL32V(segMan, obj, SELECTOR(x)); + int16 y = GET_SEL32V(segMan, obj, SELECTOR(y)); g_sci->_gfxCoordAdjuster->kernelGlobalToLocal(x, y, planeObject); - writeSelectorValue(segMan, obj, SELECTOR(x), x); - writeSelectorValue(segMan, obj, SELECTOR(y), y); + PUT_SEL32V(segMan, obj, SELECTOR(x), x); + PUT_SEL32V(segMan, obj, SELECTOR(y), y); } return s->r_acc; @@ -238,13 +236,13 @@ reg_t kLocalToGlobal(EngineState *s, int argc, reg_t *argv) { SegManager *segMan = s->_segMan; if (obj.segment) { - int16 x = readSelectorValue(segMan, obj, SELECTOR(x)); - int16 y = readSelectorValue(segMan, obj, SELECTOR(y)); + int16 x = GET_SEL32V(segMan, obj, SELECTOR(x)); + int16 y = GET_SEL32V(segMan, obj, SELECTOR(y)); g_sci->_gfxCoordAdjuster->kernelLocalToGlobal(x, y, planeObject); - writeSelectorValue(segMan, obj, SELECTOR(x), x); - writeSelectorValue(segMan, obj, SELECTOR(y), y); + PUT_SEL32V(segMan, obj, SELECTOR(x), x); + PUT_SEL32V(segMan, obj, SELECTOR(y), y); } return s->r_acc; |