本文整理汇总了C++中shouldQuit函数的典型用法代码示例。如果您正苦于以下问题:C++ shouldQuit函数的具体用法?C++ shouldQuit怎么用?C++ shouldQuit使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了shouldQuit函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: clearKeyQueue
int AgiEngine::waitAnyKey() {
int key = 0;
clearKeyQueue();
debugC(3, kDebugLevelInput, "waiting... (any key)");
while (!(shouldQuit() || _restartGame)) {
pollTimer();
key = doPollKeyboard();
if (key)
break;
_gfx->doUpdate();
}
// Have to clear it as original did not set this variable, and we do it in doPollKeyboard()
_game.keypress = 0;
return key;
}
开发者ID:0xf1sh,项目名称:scummvm,代码行数:19,代码来源:keyboard.cpp
示例2: onStart
void App::run()
{
window_->show();
onStart();
double last_update_time = getTime();
while (!shouldQuit())
{
processEvents();
double update_time = getTime();
double dt = update_time - last_update_time;
last_update_time = update_time;
onUpdate(dt);
onRender();
window_->swapBuffers();
}
onStop();
}
开发者ID:eugeneyche,项目名称:tiny,代码行数:19,代码来源:app.cpp
示例3: seq_demo
Common::Error KyraEngine_LoK::go() {
if (_res->getFileSize("6.FNT"))
_screen->loadFont(Screen::FID_6_FNT, "6.FNT");
_screen->loadFont(Screen::FID_8_FNT, "8FAT.FNT");
_screen->setFont(_flags.lang == Common::JA_JPN ? Screen::FID_SJIS_FNT : Screen::FID_8_FNT);
_screen->setScreenDim(0);
_abortIntroFlag = false;
if (_flags.isDemo && !_flags.isTalkie) {
_seqPlayerFlag = true;
seq_demo();
_seqPlayerFlag = false;
} else {
setGameFlag(0xF3);
setGameFlag(0xFD);
if (_gameToLoad == -1) {
setGameFlag(0xEF);
_seqPlayerFlag = true;
seq_intro();
_seqPlayerFlag = false;
if (_flags.isDemo) {
_screen->fadeToBlack();
return Common::kNoError;
}
if (shouldQuit())
return Common::kNoError;
if (_skipIntroFlag && _abortIntroFlag && saveFileLoadable(0))
resetGameFlag(0xEF);
}
_eventList.clear();
startup();
resetGameFlag(0xEF);
mainLoop();
}
return Common::kNoError;
}
开发者ID:CatalystG,项目名称:scummvm,代码行数:42,代码来源:kyra_lok.cpp
示例4: init
void App::run()
{
init();
onSetup();
window_->show();
while (!shouldQuit())
{
input_.update();
timer_.update();
processEvents();
if (screen_)
{
screen_->onUpdate();
screen_->onRender();
}
window_->swapBuffers();
}
destroy();
}
开发者ID:eugeneyche,项目名称:squid,代码行数:20,代码来源:app.cpp
示例5: invokeTestsuites
void TestbedEngine::invokeTestsuites(TestbedConfigManager &cfMan) {
Common::Array<Testsuite *>::const_iterator iter;
uint count = 1;
Common::Point pt = Testsuite::getDisplayRegionCoordinates();
int numSuitesEnabled = cfMan.getNumSuitesEnabled();
if (!numSuitesEnabled)
return;
for (iter = _testsuiteList.begin(); iter != _testsuiteList.end(); iter++) {
if (shouldQuit()) {
return;
}
(*iter)->reset();
if ((*iter)->isEnabled()) {
Testsuite::updateStats("Testsuite", (*iter)->getName(), count++, numSuitesEnabled, pt);
(*iter)->execute();
}
}
}
开发者ID:86400,项目名称:scummvm,代码行数:20,代码来源:testbed.cpp
示例6: checkAllMotions
void AgiEngine::interpretCycle() {
int oldSound, oldScore;
if (_game.playerControl)
_game.vars[vEgoDir] = _game.viewTable[0].direction;
else
_game.viewTable[0].direction = _game.vars[vEgoDir];
checkAllMotions();
oldScore = _game.vars[vScore];
oldSound = getflag(fSoundOn);
_game.exitAllLogics = false;
while (runLogic(0) == 0 && !(shouldQuit() || _restartGame)) {
_game.vars[vWordNotFound] = 0;
_game.vars[vBorderTouchObj] = 0;
_game.vars[vBorderCode] = 0;
oldScore = _game.vars[vScore];
setflag(fEnteredCli, false);
_game.exitAllLogics = false;
resetControllers();
}
resetControllers();
_game.viewTable[0].direction = _game.vars[vEgoDir];
if (_game.vars[vScore] != oldScore || getflag(fSoundOn) != oldSound)
writeStatus();
_game.vars[vBorderTouchObj] = 0;
_game.vars[vBorderCode] = 0;
setflag(fNewRoomExec, false);
setflag(fRestartGame, false);
setflag(fRestoreJustRan, false);
if (_game.gfxMode) {
updateViewtable();
_gfx->doUpdate();
}
}
开发者ID:bluegr,项目名称:scummvm,代码行数:41,代码来源:cycle.cpp
示例7: snd_processEnvironmentalSoundEffect
bool KyraRpgEngine::snd_processEnvironmentalSoundEffect(int soundId, int block) {
if (!_sound->sfxEnabled() || shouldQuit())
return false;
if (_environmentSfx)
snd_playSoundEffect(_environmentSfx, _environmentSfxVol);
int dist = 0;
if (block) {
dist = getBlockDistance(_currentBlock, block);
if (dist > _envSfxDistThreshold) {
_environmentSfx = 0;
return false;
}
}
_environmentSfx = soundId;
_environmentSfxVol = (15 - ((block || (_flags.gameID == GI_LOL && dist < 2)) ? dist : 0)) << 4;
return true;
}
开发者ID:MaddTheSane,项目名称:scummvm,代码行数:21,代码来源:kyra_rpg.cpp
示例8: initGraphics
void CineEngine::showSplashScreen() {
Common::File file;
if (!file.open("sony.lbm"))
return;
Image::IFFDecoder decoder;
if (!decoder.loadStream(file))
return;
const Graphics::Surface *surface = decoder.getSurface();
if (surface->getWidth() == 640 && surface->getHeight() == 480) {
initGraphics(640, 480, true);
const byte *palette = decoder.getPalette();
int paletteColorCount = decoder.getPaletteColorCount();
g_system->getPaletteManager()->setPalette(palette, 0, paletteColorCount);
g_system->copyRectToScreen(surface->getPixels(), 640, 0, 0, 640, 480);
g_system->updateScreen();
Common::EventManager *eventMan = g_system->getEventManager();
bool done = false;
uint32 now = g_system->getMillis();
while (!done && g_system->getMillis() - now < 2000) {
Common::Event event;
while (eventMan->pollEvent(event)) {
if (event.type == Common::EVENT_KEYDOWN && event.kbd.keycode == Common::KEYCODE_ESCAPE) {
done = true;
break;
}
if (shouldQuit())
done = true;
}
}
}
decoder.destroy();
}
开发者ID:project-cabal,项目名称:cabal,代码行数:40,代码来源:cine.cpp
示例9: loadCFIEC
/**
* Main game loop. Handles potentially playing the game multiple times, such as if the player
* loses, and chooses to start playing the game again.
*/
void MortevielleEngine::mainGame() {
if (_reloadCFIEC)
loadCFIEC();
for (_crep = 1; _crep <= _x26KeyCount; ++_crep)
decodeNumber(&_cfiecBuffer[161 * 16], (_cfiecBufferSize - (161 * 16)) / 64);
_menu->initMenu();
charToHour();
initGame();
clearScreen();
drawRightFrame();
_mouse->showMouse();
// Loop to play the game
do {
playGame();
if (shouldQuit())
return;
} while (!_quitGame);
}
开发者ID:AReim1982,项目名称:scummvm,代码行数:26,代码来源:mortevielle.cpp
示例10: while
void SherlockEngine::sceneLoop() {
while (!shouldQuit() && _scene->_goToScene == -1) {
// See if a script needs to be completed from either a goto room code,
// or a script that was interrupted by another script
if (_talk->_scriptMoreFlag == 1 || _talk->_scriptMoreFlag == 3)
_talk->talkTo(_talk->_scriptName);
else
_talk->_scriptMoreFlag = 0;
// Handle any input from the keyboard or mouse
handleInput();
if (_people->_savedPos.x == -1) {
_canLoadSave = true;
_scene->doBgAnim();
_canLoadSave = false;
}
}
_scene->freeScene();
_people->freeWalk();
}
开发者ID:Cruel,项目名称:scummvm,代码行数:22,代码来源:sherlock.cpp
示例11: while
void DrasculaEngine::placeVonBraun(int pointX) {
trackVonBraun = (pointX < vonBraunX) ? 0 : 1;
vonBraunHasMoved = 1;
while (!shouldQuit()) {
updateEvents();
updateRoom();
updateScreen();
if (trackVonBraun == 0) {
vonBraunX = vonBraunX - 5;
if (vonBraunX <= pointX)
break;
} else {
vonBraunX = vonBraunX + 5;
if (vonBraunX >= pointX)
break;
}
pause(5);
}
vonBraunHasMoved = 0;
}
开发者ID:NickPepper,项目名称:scummvm,代码行数:22,代码来源:actors.cpp
示例12: getTime
bool AGOSEngine::kickoffTimeEvents() {
uint32 cur_time;
TimeEvent *te;
bool result = false;
if (getGameType() == GType_FF && _clockStopped)
return result;
cur_time = getTime() - _gameStoppedClock;
while ((te = _firstTimeStruct) != NULL && te->time <= cur_time && !shouldQuit()) {
result = true;
_pendingDeleteTimeEvent = te;
invokeTimeEvent(te);
if (_pendingDeleteTimeEvent) {
_pendingDeleteTimeEvent = NULL;
delTimeEvent(te);
}
}
return result;
}
开发者ID:St0rmcrow,项目名称:scummvm,代码行数:22,代码来源:event.cpp
示例13: CSTimeConsole
Common::Error MohawkEngine_CSTime::run() {
MohawkEngine::run();
_console = new CSTimeConsole(this);
_gfx = new CSTimeGraphics(this);
_cursor = new DefaultCursorManager(this, ID_CURS);
_interface = new CSTimeInterface(this);
_view = new CSTimeView(this);
_view->setupView();
_view->setModule(new CSTimeModule(this));
while (!shouldQuit()) {
switch (_state) {
case kCSTStateStartup:
// We just jump straight to the case for now.
_state = kCSTStateNewCase;
break;
case kCSTStateNewCase:
initCase();
_state = kCSTStateNewScene;
break;
case kCSTStateNewScene:
nextScene();
_state = kCSTStateNormal;
break;
case kCSTStateNormal:
update();
break;
}
}
return Common::kNoError;
}
开发者ID:peres,项目名称:scummvm,代码行数:38,代码来源:cstime.cpp
示例14: GUI_V2_BUTTON
void KyraEngine_HoF::bookLoop() {
Button bookButtons[5];
GUI_V2_BUTTON(bookButtons[0], 0x24, 0, 0, 1, 1, 1, 0x4487, 0, 0x82, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
bookButtons[0].buttonCallback = BUTTON_FUNCTOR(KyraEngine_HoF, this, &KyraEngine_HoF::bookPrevPage);
GUI_V2_BUTTON(bookButtons[1], 0x25, 0, 0, 1, 1, 1, 0x4487, 0, 0xB1, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
bookButtons[1].buttonCallback = BUTTON_FUNCTOR(KyraEngine_HoF, this, &KyraEngine_HoF::bookNextPage);
GUI_V2_BUTTON(bookButtons[2], 0x26, 0, 0, 1, 1, 1, 0x4487, 0, 0x8F, 0xBE, 0x21, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
bookButtons[2].buttonCallback = BUTTON_FUNCTOR(KyraEngine_HoF, this, &KyraEngine_HoF::bookClose);
GUI_V2_BUTTON(bookButtons[3], 0x27, 0, 0, 1, 1, 1, 0x4487, 0, 0x08, 0x08, 0x90, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
bookButtons[3].buttonCallback = BUTTON_FUNCTOR(KyraEngine_HoF, this, &KyraEngine_HoF::bookPrevPage);
GUI_V2_BUTTON(bookButtons[4], 0x28, 0, 0, 1, 1, 1, 0x4487, 0, 0xAA, 0x08, 0x8E, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
bookButtons[4].buttonCallback = BUTTON_FUNCTOR(KyraEngine_HoF, this, &KyraEngine_HoF::bookNextPage);
Button *buttonList = 0;
for (uint i = 0; i < ARRAYSIZE(bookButtons); ++i)
buttonList = _gui->addButtonToList(buttonList, &bookButtons[i]);
showBookPage();
_bookShown = true;
while (_bookShown && !shouldQuit()) {
checkInput(buttonList);
removeInputTop();
if (_bookCurPage != _bookNewPage) {
_bookCurPage = _bookNewPage;
_screen->clearPage(2);
loadBookBkgd();
showBookPage();
snd_playSoundEffect(0x64);
_screen->copyRegion(0, 0, 0, 0, 0x140, 0xC8, 2, 0, Screen::CR_NO_P_CHECK);
_screen->updateScreen();
}
_system->delayMillis(10);
}
_screen->clearPage(2);
}
开发者ID:CatalystG,项目名称:scummvm,代码行数:38,代码来源:gui_hof.cpp
示例15: isCursorVisible
void DrasculaEngine::gotoObject(int pointX, int pointY) {
bool cursorVisible = isCursorVisible();
hideCursor();
if (currentChapter == 5 || currentChapter == 6) {
if (hare_se_ve == 0) {
curX = roomX;
curY = roomY;
updateRoom();
updateScreen();
return;
}
}
roomX = pointX;
roomY = pointY;
startWalking();
while (!shouldQuit()) {
updateRoom();
updateScreen();
updateEvents();
if (characterMoved == 0)
break;
pause(3);
}
if (walkToObject == 1) {
walkToObject = 0;
trackProtagonist = trackFinal;
}
updateRoom();
updateScreen();
// roomNumber -2 is end credits. Do not show cursor there
if (cursorVisible && roomNumber != -2)
showCursor();
}
开发者ID:Templier,项目名称:scummvm-test,代码行数:38,代码来源:objects.cpp
示例16: while
void LabEngine::processJournal() {
while (1) {
IntuiMessage *msg = _event->getMsg();
if (shouldQuit()) {
_quitLab = true;
return;
}
updateEvents();
_graphics->screenUpdate();
_system->delayMillis(10);
if (!msg)
continue;
MessageClass msgClass = msg->_msgClass;
if ((msgClass == kMessageRightClick) ||
((msgClass == kMessageRawKey) && (msg->_code == Common::KEYCODE_ESCAPE)))
return;
else if (msgClass == kMessageButtonUp) {
uint16 buttonId = msg->_code;
if (buttonId == 0) {
if (_journalPage >= 2) {
_journalPage -= 2;
drawJournal(1, false);
}
} else if (buttonId == 1) {
return;
} else if (buttonId == 2) {
if (!_lastPage) {
_journalPage += 2;
drawJournal(2, false);
}
}
}
} // while
}
开发者ID:86400,项目名称:scummvm,代码行数:38,代码来源:special.cpp
示例17: Init
Common::Error GagEngine::run()
{
Init();
Common::Error status;
do
{
// do periodic processing
uint32 time_start = _system->getMillis();
status = Update();
uint32 time_end = _system->getMillis();
// wrap around check
uint32 time_spent = time_end >= time_start ? time_end - time_start : std::numeric_limits<uint32>::max() - time_start + time_end + 1;
// sleep remaining frame time
uint time_for_frame = 1000 / _SCREEN_FPS;
_system->delayMillis(time_spent < time_for_frame ? time_for_frame - time_spent : 0);
}
while(status.getCode() == Common::kNoError && !shouldQuit());
return status;
}
开发者ID:superg,项目名称:scummvm,代码行数:23,代码来源:gag.cpp
示例18: flush_buffer
zchar Processor::stream_read_input(int max, zchar *buf, zword timeout, zword routine,
bool hot_keys, bool no_scripting) {
zchar key = ZC_BAD;
flush_buffer();
// Remove initial input from the transscript file or from the screen
if (ostream_script && enable_scripting && !no_scripting)
script_erase_input(buf);
// Read input line from current input stream
continue_input:
do {
if (istream_replay)
key = replay_read_input(buf);
else
key = console_read_input(max, buf, timeout, key != ZC_BAD);
if (shouldQuit())
return ZC_BAD;
} while (key == ZC_BAD);
// Copy input line to the command file
if (ostream_record && !istream_replay)
record_write_input(buf, key);
// Handle timeouts
if (key == ZC_TIME_OUT)
if (direct_call(routine) == 0)
goto continue_input;
// Copy input line to transscript file or to the screen
if (ostream_script && enable_scripting && !no_scripting)
script_write_input(buf, key);
// Return terminating key
return key;
}
开发者ID:Templier,项目名称:scummvm,代码行数:37,代码来源:processor_streams.cpp
示例19: initGraphics
//.........这里部分代码省略.........
_object = new ObjectHandler_v1w(this);
_normalTPS = 9;
break;
case kGameVariantH1Dos: // H1 DOS
_file = new FileManager_v1d(this);
_scheduler = new Scheduler_v1d(this);
_intro = new intro_v1d(this);
_screen = new Screen_v1d(this);
_parser = new Parser_v1d(this);
_object = new ObjectHandler_v1d(this);
_normalTPS = 8;
break;
case kGameVariantH2Dos:
_file = new FileManager_v2d(this);
_scheduler = new Scheduler_v2d(this);
_intro = new intro_v2d(this);
_screen = new Screen_v1d(this);
_parser = new Parser_v2d(this);
_object = new ObjectHandler_v2d(this);
_normalTPS = 8;
break;
case kGameVariantH3Dos:
_file = new FileManager_v3d(this);
_scheduler = new Scheduler_v3d(this);
_intro = new intro_v3d(this);
_screen = new Screen_v1d(this);
_parser = new Parser_v3d(this);
_object = new ObjectHandler_v3d(this);
_normalTPS = 9;
break;
}
if (!loadHugoDat())
return Common::kUnknownError;
// Use Windows-looking mouse cursor
_screen->setCursorPal();
_screen->resetInventoryObjId();
_scheduler->initCypher();
initStatus(); // Initialize game status
initConfig(); // Initialize user's config
if (!_status._doQuitFl) {
initialize();
resetConfig(); // Reset user's config
initMachine();
// Start the state machine
_status._viewState = kViewIntroInit;
int16 loadSlot = Common::ConfigManager::instance().getInt("save_slot");
if (loadSlot >= 0) {
_status._skipIntroFl = true;
_file->restoreGame(loadSlot);
} else {
_file->saveGame(0, "New Game");
}
}
while (!_status._doQuitFl) {
_screen->drawBoundaries();
g_system->updateScreen();
runMachine();
// Handle input
Common::Event event;
while (_eventMan->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_KEYDOWN:
_parser->keyHandler(event);
break;
case Common::EVENT_MOUSEMOVE:
_mouse->setMouseX(event.mouse.x);
_mouse->setMouseY(event.mouse.y);
break;
case Common::EVENT_LBUTTONUP:
_mouse->setLeftButton();
break;
case Common::EVENT_RBUTTONUP:
_mouse->setRightButton();
break;
case Common::EVENT_QUIT:
_status._doQuitFl = true;
break;
default:
break;
}
}
if (_status._helpFl) {
_status._helpFl = false;
_file->instructions();
}
_mouse->mouseHandler(); // Mouse activity - adds to display list
_screen->displayList(kDisplayDisplay); // Blit the display list to screen
_status._doQuitFl |= shouldQuit(); // update game quit flag
}
return Common::kNoError;
}
开发者ID:MaddTheSane,项目名称:scummvm,代码行数:101,代码来源:hugo.cpp
示例20: updateEvents
void LabEngine::doActions(const ActionList &actionList) {
ActionList::const_iterator action;
for (action = actionList.begin(); action != actionList.end(); ++action) {
updateEvents();
if (_quitLab || shouldQuit())
return;
switch (action->_actionType) {
case kActionPlaySound:
_music->loadSoundEffect(action->_messages[0], false, true);
break;
case kActionPlaySoundNoWait: // only used in scene 7 (street, when teleporting to the surreal maze)
_music->loadSoundEffect(action->_messages[0], false, false);
break;
case kActionPlaySoundLooping:
_music->loadSoundEffect(action->_messages[0], true, false);
break;
case kActionShowDiff:
_graphics->readPict(action->_messages[0], true);
break;
case kActionShowDiffLooping: // used in scene 44 (heart of the labyrinth, minotaur)
_graphics->readPict(action->_messages[0], false);
break;
case kActionLoadDiff:
if (!action->_messages[0].empty())
// Puts a file into memory
_graphics->loadPict(action->_messages[0]);
break;
case kActionLoadBitmap:
error("Unused opcode kActionLoadBitmap has been called");
case kActionShowBitmap:
error("Unused opcode kActionShowBitmap has been called");
case kActionTransition:
_graphics->doTransition((TransitionType)action->_param1, action->_messages[0].c_str());
break;
case kActionNoUpdate:
_noUpdateDiff = true;
_anim->_doBlack = false;
break;
case kActionForceUpdate:
_curFileName = " ";
break;
case kActionShowCurPict: {
Common::String test = getPictName(true);
if (test != _curFileName) {
_curFileName = test;
_graphics->readPict(_curFileName);
}
}
break;
case kActionSetElement:
_conditions->inclElement(action->_param1);
break;
case kActionUnsetElement:
_conditions->exclElement(action->_param1);
break;
case kActionShowMessage:
if (_graphics->_longWinInFront)
_graphics->longDrawMessage(action->_messages[0], true);
else
_graphics->drawMessage(action->_messages[0], true);
break;
case kActionCShowMessage:
if (!_closeDataPtr)
_graphics->drawMessage(action->_messages[0], true);
break;
case kActionShowMessages:
_graphics->drawMessage(action->_messages[_utils->getRandom(action->_param1)], true);
break;
case kActionChangeRoom:
if (action->_param1 & 0x8000) {
// This is a Wyrmkeep Windows trial version, thus stop at this
// point, since we can't check for game payment status
_graphics->readPict(getPictName(true));
GUI::MessageDialog trialMessage("This is the end of the trial version. You can play the full game using the original interpreter from Wyrmkeep");
trialMessage.runModal();
break;
}
_music->checkRoomMusic(_roomNum, action->_param1);
_roomNum = action->_param1;
_direction = action->_param2 - 1;
//.........这里部分代码省略.........
开发者ID:86400,项目名称:scummvm,代码行数:101,代码来源:processroom.cpp
注:本文中的shouldQuit函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论