コード例 #1
0
ファイル: events.cpp プロジェクト: mikeliturbe/scummvm
void EventsManager::ipause(uint amount) {
	updateGameCounter();
	do {
		_vm->_interface->draw3d(true);
		pollEventsAndWait();
	} while (!_vm->shouldQuit() && timeElapsed() < amount);
}
コード例 #2
0
ファイル: events.cpp プロジェクト: LasDesu/scummvm
bool Events::delay(uint32 time, bool interruptable) {
	// Different handling for really short versus extended times
	if (time < 10) {
		// For really short periods, simply delay by the desired amount
		pollEvents();
		g_system->delayMillis(time);
		bool result = !(interruptable && (kbHit() || _pressed || _vm->shouldQuit()));

		clearEvents();
		return result;
	} else {
		// For long periods go into a loop where we delay by 10ms at a time and then
		// check for events. This ensures for longer delays that responsiveness is
		// maintained
		uint32 delayEnd = g_system->getMillis() + time;

		while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd) {
			pollEventsAndWait();

			if (interruptable && (kbHit() || _mouseButtons)) {
				clearEvents();
				return false;
			}
		}

		return !_vm->shouldQuit();
	}
}
コード例 #3
0
ファイル: events.cpp プロジェクト: templeblock/scummvm
void Events::sleep(uint time) {
	uint32 delayEnd = g_system->getMillis() + time;
	CSound &sound = g_vm->_window->_gameManager->_sound;

	while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd) {
		pollEventsAndWait();
		sound.updateMixer();
	}
}
コード例 #4
0
ファイル: events.cpp プロジェクト: mikeliturbe/scummvm
bool EventsManager::wait(uint numFrames, bool interruptable) {
	while (!_vm->shouldQuit() && timeElapsed() < numFrames) {
		pollEventsAndWait();
		if (interruptable && (_leftButton || _rightButton || isKeyPending()))
			return true;
	}

	return false;
}
コード例 #5
0
ファイル: events.cpp プロジェクト: DrItanium/scummvm
bool Events::waitForPress(uint expiry) {
	uint32 delayEnd = g_system->getMillis() + expiry;
	CPressTarget pressTarget;
	addTarget(&pressTarget);

	while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd && !pressTarget._pressed) {
		pollEventsAndWait();
	}

	removeTarget();
	return pressTarget._pressed;
}
コード例 #6
0
ファイル: events.cpp プロジェクト: 0xf1sh/scummvm
void EventsManager::debounceLeft() {
	while (_leftButton && !_vm->shouldQuit()) {
		pollEventsAndWait();
	}
}
コード例 #7
0
ファイル: events.cpp プロジェクト: Tkachov/scummvm
void Events::sleep(uint time) {
	uint32 delayEnd = g_system->getMillis() + time;

	while (!_vm->shouldQuit() && g_system->getMillis() < delayEnd)
		pollEventsAndWait();
}