void CGEEngine::switchScene(int newScene) { debugC(1, kCGEDebugEngine, "CGEEngine::switchScene(%d)", newScene); if (newScene == _now) return; if (newScene < 0) { _commandHandler->addCommand(kCmdLabel, -1, 0, NULL); // wait for repaint _commandHandler->addCallback(kCmdExec, -1, 0, kQGame); // quit game } else { _now = newScene; _mouse->off(); if (_hero) { _hero->park(); _hero->step(0); _vga->_spareQ->_show = false; } _sceneLight->gotoxy(kSceneX + ((_now - 1) % kSceneNx) * kSceneDx + kSceneSX, kSceneY + ((_now - 1) / kSceneNx) * kSceneDy + kSceneSY); killText(); if (!_startupMode) keyClick(); _commandHandler->addCommand(kCmdLabel, -1, 0, NULL); // wait for repaint _commandHandler->addCallback(kCmdExec, 0, 0, kXScene); // switch scene } }
/** * Switch greyscale mode on/off */ void CGEEngine::switchColorMode() { debugC(1, kCGEDebugEngine, "CGEEngine::switchColorMode()"); _commandHandlerTurbo->addCommand(kCmdSeq, 121, _vga->_mono = !_vga->_mono, NULL); keyClick(); _vga->setColors(_vga->_sysPal, 64); }
void GTKeyboardDriver::keyClick(GUITestOpStatus &os, char key, QList<int> modifiers){ switch (modifiers.size()) { case 0: keyClick(os, key); break; case 1: keyClick(os, key, modifiers.first()); break; default: int modifier = modifiers.takeLast(); foreach (int mod, modifiers) { keyPress(os, mod); } keyClick(os, key, modifier); foreach (int mod, modifiers) { keyRelease(os, mod); }
/** * Switch music on/off */ void CGEEngine::switchMusic() { debugC(1, kCGEDebugEngine, "CGEEngine::switchMusic()"); _commandHandlerTurbo->addCommand(kCmdSeq, 122, (_music = !_music), NULL); keyClick(); if (_music) _midiPlayer->loadMidi(_now); else _midiPlayer->killMidi(); }
int QMyButton::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QPushButton::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: keyClick((*reinterpret_cast< uint(*)>(_a[1]))); break; case 1: sendKey(); break; case 2: mousePressEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break; case 3: mouseReleaseEvent((*reinterpret_cast< QMouseEvent*(*)>(_a[1]))); break; default: ; } _id -= 4; } return _id; }
void CGEEngine::quit() { debugC(1, kCGEDebugEngine, "CGEEngine::quit()"); static Choice QuitMenu[] = { { NULL, &CGEEngine::startCountDown }, { NULL, &CGEEngine::resetQSwitch }, { NULL, &CGEEngine::dummy } }; if (_commandHandler->idle() && !_hero->_flags._hide) { if (Vmenu::_addr) { _commandHandlerTurbo->addCommand(kCmdKill, -1, 0, Vmenu::_addr); resetQSwitch(); } else { QuitMenu[0]._text = _text->getText(kQuit); QuitMenu[1]._text = _text->getText(kNoQuit); (new Vmenu(this, QuitMenu, -1, -1))->setName(_text->getText(kQuitTitle)); _commandHandlerTurbo->addCommand(kCmdSeq, 123, 1, NULL); keyClick(); } } }
void CGEEngine::resetQSwitch() { debugC(1, kCGEDebugEngine, "CGEEngine::resetQSwitch()"); _commandHandlerTurbo->addCommand(kCmdSeq, 123, 0, NULL); keyClick(); }
void QMyButton::sendKey() { emit keyClick(keycode); }
void update(SDL_Event& event) { const Uint8* state = SDL_GetKeyboardState(NULL); if (state[SDL_SCANCODE_LEFT]) { camX -= CAM_INC; } else if (state[SDL_SCANCODE_RIGHT]) { camX += CAM_INC; } if (state[SDL_SCANCODE_UP]) { camY -= CAM_INC; } else if (state[SDL_SCANCODE_DOWN]) { camY += CAM_INC; } if (state[SDL_SCANCODE_P]) { input_offset++; } else if(state[SDL_SCANCODE_O]) { input_offset--; } if (state[SDL_SCANCODE_L]) { input_scale += 0.2; } else if (state[SDL_SCANCODE_K]) { input_scale -= 0.2; } if (state[SDL_SCANCODE_M]) { reset_view(); } if (state[SDL_SCANCODE_F]) { input_draw_space = !input_draw_space; } SDL_GetMouseState(&mouse_x, &mouse_y); if (event.type == SDL_MOUSEBUTTONDOWN) { if (event.button.button == SDL_BUTTON_LEFT) { if(!mouseLeftPressed) { mouseLeftPressed = true; mouseLeft = false; } } else if (event.button.button == SDL_BUTTON_RIGHT) { if (!mouseRightPressed) { mouseRightPressed = true; mouseRight = false; } } } else if (event.type == SDL_MOUSEBUTTONUP) { if (event.button.button == SDL_BUTTON_LEFT) { if (mouseLeftPressed) { mouseLeftPressed = false; mouseLeft = true; } } else if (event.button.button == SDL_BUTTON_RIGHT) { if (mouseRightPressed) { mouseRightPressed = false; mouseRight = true; } } } else if (event.type == SDL_KEYDOWN) { if (event.key.keysym.sym == SDLK_s) { if (!key1Pressed) { key1Pressed = true; key1 = false; } } else if (event.key.keysym.sym == SDLK_d) { if (!key2Pressed) { key2Pressed = true; key2 = false; } } else if (event.key.keysym.sym == SDLK_f) { if (!keyDebugPressed) { keyDebugPressed = true; keyDebug = false; } } } else if (event.type == SDL_KEYUP) { if (event.key.keysym.sym == SDLK_s) { if (key1Pressed) { key1Pressed = false; key1 = true; } } else if (event.key.keysym.sym == SDLK_d) { if (key2Pressed) { key2Pressed = false; key2 = true; } } else if (event.key.keysym.sym == SDLK_f) { if (keyDebugPressed) { keyDebugPressed = false; keyDebug = true; } } } if (mouseLeft) { mouseLeft = false; std::cout << "mouse click left\n"; mouseClick(MOUSE_LEFT); } if (mouseRight) { mouseRight = false; std::cout << "mouse click right\n"; mouseClick(MOUSE_RIGHT); } if (key1) { key1 = false; std::cout << "key1\n"; keyClick(1); } else if (key2) { key2 = false; std::cout << "key2\n"; keyClick(2); } if (keyDebug) { keyDebug = false; input_show_debug_rect = !input_show_debug_rect; } /*rect.x = i * tileSizeX; rect.y = WIN_HEIGHT - tileSizeY;*/ }