static void defaultErrorHandler(const char *msg) { // Unless this error -originated- within the debugger itself, we // now invoke the debugger, if available / supported. if (g_engine) { GUI::Debugger *debugger = g_engine->getDebugger(); #ifdef _WIN32_WCE if (isSmartphone()) debugger = 0; #endif #if defined(USE_TASKBAR) g_system->getTaskbarManager()->notifyError(); #endif if (debugger && !debugger->isActive()) { debugger->attach(msg); debugger->onFrame(); } #if defined(USE_TASKBAR) g_system->getTaskbarManager()->clearError(); #endif } }
static void defaultErrorHandler(const char *msg) { // Unless this error -originated- within the debugger itself, we // now invoke the debugger, if available / supported. if (g_engine) { GUI::Debugger *debugger = g_engine->getDebugger(); #ifdef _WIN32_WCE if (isSmartphone()) debugger = 0; #endif if (debugger && !debugger->isActive()) { debugger->attach(msg); debugger->onFrame(); } } }
int PreAgiEngine::getSelection(SelectionTypes type) { Common::Event event; GUI::Debugger *console = getDebugger(); while (!shouldQuit()) { while (_eventMan->pollEvent(event)) { switch (event.type) { case Common::EVENT_RTL: case Common::EVENT_QUIT: return 0; case Common::EVENT_RBUTTONUP: return 0; case Common::EVENT_LBUTTONUP: if (type == kSelYesNo || type == kSelAnyKey) return 1; case Common::EVENT_KEYDOWN: if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && console) { console->attach(); console->onFrame(); //FIXME: If not cleared, clicking again will start the console event.kbd.keycode = Common::KEYCODE_INVALID; event.kbd.flags = 0; continue; } switch (event.kbd.keycode) { case Common::KEYCODE_y: if (type == kSelYesNo) return 1; case Common::KEYCODE_n: if (type == kSelYesNo) return 0; case Common::KEYCODE_ESCAPE: if (type == kSelNumber || type == kSelAnyKey) return 0; case Common::KEYCODE_1: case Common::KEYCODE_2: case Common::KEYCODE_3: case Common::KEYCODE_4: case Common::KEYCODE_5: case Common::KEYCODE_6: case Common::KEYCODE_7: case Common::KEYCODE_8: case Common::KEYCODE_9: if (type == kSelNumber) return event.kbd.keycode - Common::KEYCODE_1 + 1; case Common::KEYCODE_SPACE: if (type == kSelSpace) return 1; case Common::KEYCODE_BACKSPACE: if (type == kSelBackspace) return 0; default: if (event.kbd.flags & Common::KBD_CTRL) break; if (type == kSelYesNo) { return 2; } else if (type == kSelNumber) { return 10; } else if (type == kSelAnyKey || type == kSelBackspace) { return 1; } } break; default: break; } } _system->updateScreen(); _system->delayMillis(10); } return 0; }