Beispiel #1
0
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

	}
}
Beispiel #2
0
/**
 * 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);
        }
Beispiel #4
0
/**
 * 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();
}
Beispiel #5
0
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;
}
Beispiel #6
0
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();
		}
	}
}
Beispiel #7
0
void CGEEngine::resetQSwitch() {
	debugC(1, kCGEDebugEngine, "CGEEngine::resetQSwitch()");

	_commandHandlerTurbo->addCommand(kCmdSeq, 123,  0, NULL);
	keyClick();
}
Beispiel #8
0
void QMyButton::sendKey()
{
	emit keyClick(keycode);
}
Beispiel #9
0
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;*/
}