bool GPG_Application::startFullScreen( int width, int height, int bpp,int frequency, const bool stereoVisual, const int stereoMode, const GHOST_TUns16 samples) { bool success; // Create the main window GHOST_DisplaySetting setting; setting.xPixels = width; setting.yPixels = height; setting.bpp = bpp; setting.frequency = frequency; fSystem->beginFullScreen(setting, &m_mainWindow, stereoVisual); m_mainWindow->setCursorVisibility(false); m_mainWindow->setState(GHOST_kWindowStateFullScreen); success = initEngine(m_mainWindow, stereoMode); if (success) { success = startEngine(); } return success; }
bool GPG_Application::startFullScreen( int width, int height, int bpp,int frequency, const bool stereoVisual, const int stereoMode, const GHOST_TUns16 samples, bool useDesktop) { bool success; GHOST_TUns32 sysWidth=0, sysHeight=0; fSystem->getMainDisplayDimensions(sysWidth, sysHeight); // Create the main window GHOST_DisplaySetting setting; setting.xPixels = (useDesktop) ? sysWidth : width; setting.yPixels = (useDesktop) ? sysHeight : height; setting.bpp = bpp; setting.frequency = frequency; fSystem->beginFullScreen(setting, &m_mainWindow, stereoVisual, samples); m_mainWindow->setCursorVisibility(false); /* note that X11 ignores this (it uses a window internally for fullscreen) */ m_mainWindow->setState(GHOST_kWindowStateFullScreen); success = initEngine(m_mainWindow, stereoMode); if (success) { success = startEngine(); } return success; }
bool GPG_Application::startWindow( STR_String& title, int windowLeft, int windowTop, int windowWidth, int windowHeight, const bool stereoVisual, const int stereoMode, const GHOST_TUns16 samples) { bool success; // Create the main window //STR_String title ("Blender Player - GHOST"); m_mainWindow = fSystem->createWindow(title, windowLeft, windowTop, windowWidth, windowHeight, GHOST_kWindowStateNormal, GHOST_kDrawingContextTypeOpenGL, stereoVisual, false, samples); if (!m_mainWindow) { printf("error: could not create main window\n"); exit(-1); } /* Check the size of the client rectangle of the window and resize the window * so that the client rectangle has the size requested. */ m_mainWindow->setClientSize(windowWidth, windowHeight); m_mainWindow->setCursorVisibility(false); success = initEngine(m_mainWindow, stereoMode); if (success) { success = startEngine(); } return success; }
bool GPG_Application::startEmbeddedWindow( STR_String& title, const GHOST_TEmbedderWindowID parentWindow, const bool stereoVisual, const int stereoMode, const GHOST_TUns16 samples) { GHOST_TWindowState state = GHOST_kWindowStateNormal; if (parentWindow != 0) state = GHOST_kWindowStateEmbedded; m_mainWindow = fSystem->createWindow(title, 0, 0, 0, 0, state, GHOST_kDrawingContextTypeOpenGL, stereoVisual, false, samples, parentWindow); if (!m_mainWindow) { printf("error: could not create main window\n"); exit(-1); } m_isEmbedded = true; bool success = initEngine(m_mainWindow, stereoMode); if (success) { success = startEngine(); } return success; }
bool GPG_Application::startScreenSaverPreview( HWND parentWindow, const bool stereoVisual, const int stereoMode, const GHOST_TUns16 samples) { bool success = false; RECT rc; if (GetWindowRect(parentWindow, &rc)) { int windowWidth = rc.right - rc.left; int windowHeight = rc.bottom - rc.top; STR_String title = ""; GHOST_GLSettings glSettings = {0}; if (stereoVisual) { glSettings.flags |= GHOST_glStereoVisual; } glSettings.numOfAASamples = samples; m_mainWindow = fSystem->createWindow(title, 0, 0, windowWidth, windowHeight, GHOST_kWindowStateMinimized, GHOST_kDrawingContextTypeOpenGL, glSettings); if (!m_mainWindow) { printf("error: could not create main window\n"); exit(-1); } HWND ghost_hwnd = findGhostWindowHWND(m_mainWindow); if (!ghost_hwnd) { printf("error: could find main window\n"); exit(-1); } SetParent(ghost_hwnd, parentWindow); LONG_PTR style = GetWindowLongPtr(ghost_hwnd, GWL_STYLE); LONG_PTR exstyle = GetWindowLongPtr(ghost_hwnd, GWL_EXSTYLE); RECT adjrc = { 0, 0, windowWidth, windowHeight }; AdjustWindowRectEx(&adjrc, style, false, exstyle); style = (style & (~(WS_POPUP|WS_OVERLAPPEDWINDOW|WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX|WS_TILEDWINDOW ))) | WS_CHILD; SetWindowLongPtr(ghost_hwnd, GWL_STYLE, style); SetWindowPos(ghost_hwnd, NULL, adjrc.left, adjrc.top, 0, 0, SWP_NOZORDER|SWP_NOSIZE|SWP_NOACTIVATE); /* Check the size of the client rectangle of the window and resize the window * so that the client rectangle has the size requested. */ m_mainWindow->setClientSize(windowWidth, windowHeight); success = initEngine(m_mainWindow, stereoMode); if (success) { success = startEngine(); } } return success; }
void AnalyzerRunControl::start() { AnalyzerManager::handleToolStarted(); if (startEngine()) { m_isRunning = true; emit started(); } }
bool GPG_Application::StartGameEngine(int stereoMode) { bool success = initEngine(m_mainWindow, stereoMode); if (success) success = startEngine(); return success; }
void CameraEngine::updateCamera(const int &camera) { stopEngine(); wait(1000); QSettings settings("RobotStation"); settings.setValue("camera",camera); m_camera = camera; qDebug() << "camera changed to " << camera; startEngine(); }
int HidController::open() { if (isOpen()) { qDebug() << "HID device" << getName() << "already open"; return -1; } // Open device by path if (debugging()) { qDebug() << "Opening HID device" << getName() << "by HID path" << hid_path; } m_pHidDevice = hid_open_path(hid_path); // If that fails, try to open device with vendor/product/serial # if (m_pHidDevice == NULL) { if (debugging()) qDebug() << "Failed. Trying to open with make, model & serial no:" << hid_vendor_id << hid_product_id << hid_serial; m_pHidDevice = hid_open(hid_vendor_id, hid_product_id, hid_serial_raw); } // If it does fail, try without serial number WARNING: This will only open // one of multiple identical devices if (m_pHidDevice == NULL) { qWarning() << "Unable to open specific HID device" << getName() << "Trying now with just make and model." << "(This may only open the first of multiple identical devices.)"; m_pHidDevice = hid_open(hid_vendor_id, hid_product_id, NULL); } // If that fails, we give up! if (m_pHidDevice == NULL) { qWarning() << "Unable to open HID device" << getName(); return -1; } setOpen(true); startEngine(); if (m_pReader != NULL) { qWarning() << "HidReader already present for" << getName(); } else { m_pReader = new HidReader(m_pHidDevice); m_pReader->setObjectName(QString("HidReader %1").arg(getName())); connect(m_pReader, SIGNAL(incomingData(QByteArray)), this, SLOT(receive(QByteArray))); // Controller input needs to be prioritized since it can affect the // audio directly, like when scratching m_pReader->start(QThread::HighPriority); } return 0; }
void AnalysisWidget::toggleAnalysis() { if(!isAnalysisEnabled()) { stopEngine(); } else { startEngine(); } }
int beginPlugin(HINSTANCE hMainInstance) { if (is_plugin || engine_running) { MessageBox(NULL, "Dont load me twice!", szAppName, MB_OK|MB_TOPMOST|MB_SETFOREGROUND); return 1; } is_plugin = true; startEngine(); return 0; }
int BulkController::open() { if (isOpen()) { qDebug() << "USB Bulk device" << getName() << "already open"; return -1; } /* Look up endpoint addresses in supported database */ int i; for (i = 0; bulk_supported[i].vendor_id; ++i) { if ((bulk_supported[i].vendor_id == vendor_id) && (bulk_supported[i].product_id == product_id)) { in_epaddr = bulk_supported[i].in_epaddr; out_epaddr = bulk_supported[i].out_epaddr; break; } } if (bulk_supported[i].vendor_id == 0) { qWarning() << "USB Bulk device" << getName() << "unsupported"; return -1; } // XXX: we should enumerate devices and match vendor, product, and serial if (m_phandle == NULL) { m_phandle = libusb_open_device_with_vid_pid( m_context, vendor_id, product_id); } if (m_phandle == NULL) { qWarning() << "Unable to open USB Bulk device" << getName(); return -1; } setOpen(true); startEngine(); if (m_pReader != NULL) { qWarning() << "BulkReader already present for" << getName(); } else { m_pReader = new BulkReader(m_phandle, in_epaddr); m_pReader->setObjectName(QString("BulkReader %1").arg(getName())); connect(m_pReader, SIGNAL(incomingData(QByteArray, mixxx::Duration)), this, SLOT(receive(QByteArray, mixxx::Duration))); // Controller input needs to be prioritized since it can affect the // audio directly, like when scratching m_pReader->start(QThread::HighPriority); } return 0; }
int main(int argc, char* argv[]) { int x = -7640; if (argc > 1) x = atoi(argv[1]); DebuggerEngine* engine = startEngine(); DWORD clientAppearance = getClientAppearance(engine); DWORD clientControllerPointer = getClientController(engine); DWORD messageQueueDataTransformPointer = engine->getMessageQueueDataTransformPointer(); INJECT local; local.clientAppearanceAddress = clientAppearance; local.clientControllerPointer = clientControllerPointer; local.messageQueueDataTransformPointer = messageQueueDataTransformPointer; local.x = x; cout << "Injecting Code...\n"; HANDLE hThread = injectCode(engine->getProcessHandle(), local); if (hThread != NULL) { cout << "Code Injected...\n"; cout << "Dumping"; while (WaitForSingleObject(hThread, 1000) == WAIT_TIMEOUT) cout << "."; //CloseHandle(hThread); cout << "\nLook for heights.bin in your swg folder\n"; } else { cout << "Failed to inject code..\n"; } engine->stop(); cout << "Wating for engine to finish..\n"; while (engine->isRunning()) Sleep(500); delete engine; cout << "Shutting down."; return 0; }
void ApplicationPlugin::initialize() { // Restart everything if audio settings change. auto& set = GUIApplicationContextPlugin::context.settings<Settings::Model>(); con(set, &Settings::Model::BufferSizeChanged, this, &ApplicationPlugin::startEngine); con(set, &Settings::Model::CardChanged, this, &ApplicationPlugin::startEngine); con(set, &Settings::Model::DriverChanged, this, &ApplicationPlugin::startEngine); con(set, &Settings::Model::RateChanged, this, &ApplicationPlugin::startEngine); startEngine(); // startMTDSPFactories(); }
void Vehicle::setInput(const VehicleInput & input) { setSteering(input.controls[VehicleInput::STEER]); setThrottle(input.controls[VehicleInput::THROTTLE]); setBrake(input.controls[VehicleInput::BRAKE]); setHandBrake(input.controls[VehicleInput::HBRAKE]); setClutch(1 - input.controls[VehicleInput::CLUTCH]); setNOS(input.controls[VehicleInput::NOS]); setGear(transmission.getGear() + input.shiftgear); autoshift = (input.logic & VehicleInput::AUTOSHIFT); autoclutch = (input.logic & VehicleInput::AUTOCLUTCH); setABS(input.logic & VehicleInput::ABS); setTCS(input.logic & VehicleInput::TCS); if (input.logic & VehicleInput::STARTENG) startEngine(); if (input.logic & VehicleInput::RECOVER) rolloverRecover(); }
LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static UINT msgs[] = {BB_RECONFIGURE, BB_REDRAWGUI, BB_BROADCAST, 0}; switch (message) { default: return DefWindowProc (hwnd, message, wParam, lParam); case WM_CREATE: m_hwnd = hwnd; SendMessage(BBhwnd, BB_REGISTERMESSAGE, (WPARAM)hwnd, (LPARAM)msgs); break; case WM_DESTROY: SendMessage(BBhwnd, BB_UNREGISTERMESSAGE, (WPARAM)hwnd, (LPARAM)msgs); break; case BB_BROADCAST: if (0 == memicmp((LPCSTR)lParam, "@BBLeanSkin.", 12)) { const char *msg = (LPCSTR)lParam + 12; if (0 == stricmp(msg, "About")) about_box(); else if (0 == stricmp(msg, "toggleLog")) goto toggle_log; else if (0 == stricmp(msg, "toggleSkin")) { if (engine_running) { write_log("\r\n\t---- stopping engine ----\r\n"); PostMessage(hwnd, bbSkinMsg, MSGID_UNLOAD, 0); PostMessage(hwnd, BB_QUIT, 0, 0); } else { write_log("\r\n\t---- starting engine ----\r\n"); startEngine(); } } } break; case BB_QUIT: stopEngine(); break; case BB_RECONFIGURE: if (is_plugin) // i.e. not loaded by BBWinSkin reconfigureEngine(); break; toggle_log: WriteBool(rcpath, "bbleanskin.option.enableLog:", false == enableLog); reconfigureEngine(); break; //==================== // used in combination with bbstylemaker to update the skin info // and optionally force active or button pressed state. case BB_REDRAWGUI: if (BBRG_WINDOW & wParam) { if (wParam & BBRG_STICKY) { // and to transfer the is_sticky info from bb. PostMessage((HWND)lParam, bbSkinMsg, MSGID_BB_SETSTICKY, 0 != (wParam & BBRG_FOCUS)); break; } static bool prev_opt; int opt = 0; if (prev_opt) opt = MSGID_BBSM_RESET; if (wParam & BBRG_FOCUS) opt = MSGID_BBSM_SETACTIVE; if (wParam & BBRG_PRESSED) opt = MSGID_BBSM_SETPRESSED; prev_opt = opt >= MSGID_BBSM_SETACTIVE; if (opt) setEngineOption(opt); refreshStyle(); } break; //==================== // Log string sent by the engine dll case WM_COPYDATA: { if (201 == ((PCOPYDATASTRUCT)lParam)->dwData) { write_log((char*)((COPYDATASTRUCT*)lParam)->lpData); return TRUE; } break; } //==================== // things for the Log EDIT control case WM_SETFOCUS: if (hwndLog) SetFocus(hwndLog); break; case WM_SIZE: if (hwndLog) MoveWindow(hwndLog, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE); break; case WM_CLOSE: if (hwndLog) goto toggle_log; break; } return 0 ; }
/*! The advance function does quite a lot for the ship sprite. In \a phase 0, if the ship is marked dead, just return. If not, move the ship using its current position and velocity. Then get the list of all collisions with the ship and run through the list. If the ship collides with a rock, then if the shield is up, destroy the rock. If the shiled is down (normal), mark the ship dead and return. If the ship collides with a powerup, then if the shield is up, mark the powerup destroyed. If the shield is not up, apply the powerup to the ship. In phase 1, if the ship is marked dead, explode the ship, delete it, and return. Otherwise, handle ship rotation, breaking, ship velocity, an teleporting. also update the image if the ship is rotating, and the exhaust image, if the engine is on. If the shiled is up, handle its image and age. Finally, in phase one, handle the firing of the missiles. \internal */ void KShip::advance(int phase) { if (phase == 0) { if (dying()) markDead(); if (isDead() || teleport_) return; KSprite::advance(phase); QList<QGraphicsItem*> hits = ship_->collidingItems(); QList<QGraphicsItem*>::Iterator i; for (i=hits.begin(); i!=hits.end(); ++i) { if ((*i)->type() <= ID_Base) continue; KSprite* sprite = (KSprite*)(*i); if (sprite->isRock()) { if (shield_->isUp()) { /* The ship hit a rock with the shield up. The rock is marked for death, which will cause it to break up or just disappear in in phase 1. The shield's strength is reduced by an amount commensurate with the rock size. If the strength goes to 0, the shield will be dropped in phase 1. */ sprite->markDead(); int s = 1; if (sprite->isLargeRock()) s = 3; else if (sprite->isMediumRock()) s = 2; int pl = s * (SHIELD_HIT_COST - (shield_->strength()*2)); shield_->reduceStrength(s); reducePowerLevel(pl); } else { /* The ship hit a rock with the shield down. Mark the ship dead and return. The ship will be exploded in phase 1. */ view_->setCanPause(false); markDead(); shield_->markDead(); return; } } else if (sprite->isPowerup()) { if (shield_->isUp()) { sprite->markDead(); } else { /* The ship hit a powerup with the shield down. Mark the powerup for apply. It will be applied to the ship in phase 1, if the ship survives. Also mark the powerup dead, ie consumed. */ sprite->markApply(); sprite->markDead(); return; } } else if (powerLevel() <= EMPTY_SHIP_POWER_LEVEL) { ship_->markDead(); shield_->markDead(); } } } else { // phase 1 if (isDead() || dying()) { explode(); // shatters the ship into spinning fragments. delete this; return; } if (rotateSlow_) rotateSlow_--; if (rotateLeft_) { angleIndex_ -= rotateSlow_ ? 1 : rotationRate_; if (angleIndex_ < 0) angleIndex_ = SHIP_STEPS-1; angle_ = angleIndex_ * PI_X_2 / SHIP_STEPS; cosangle_ = cos(angle_); sinangle_ = sin(angle_); } if (rotateRight_) { angleIndex_ += rotateSlow_ ? 1 : rotationRate_; if (angleIndex_ >= SHIP_STEPS) angleIndex_ = 0; angle_ = angleIndex_ * PI_X_2 / SHIP_STEPS; cosangle_ = cos(angle_); sinangle_ = sin(angle_); } if (isBraking()) { stopEngine(); stopRotation(); if ((fabs(dx_) < 2.5) && (fabs(dy_) < 2.5)) { dx_ = 0.0; dy_ = 0.0; setVelocity(dx_,dy_); releaseBrakes(); } else { double motionAngle = atan2(-dy_,-dx_); if (angle_ > M_PI) angle_ -= PI_X_2; double angleDiff = angle_ - motionAngle; if (angleDiff > M_PI) angleDiff = PI_X_2 - angleDiff; else if (angleDiff < -M_PI) angleDiff = PI_X_2 + angleDiff; double fdiff = fabs(angleDiff); if (fdiff > 0.08) { if (angleDiff > 0) rotateLeft_ = true; else if (angleDiff < 0) rotateRight_ = true; if (fdiff > 0.6) rotationRate_ = brakeForce() + 1; else if (fdiff > 0.4) rotationRate_ = 2; else rotationRate_ = 1; if (rotationRate_ > 5) rotationRate_ = 5; } else if ((fabs(dx_)>1) || (fabs(dy_)>1)) { startEngine(); // we'll make braking a bit faster dx_ += cosangle_/6 * (brakeForce() - 1); dy_ += sinangle_/6 * (brakeForce() - 1); reducePowerLevel(BRAKE_ON_COST); KExhaust::add(ship_->x() + 10 - cosangle_*11, ship_->y() + 10 - sinangle_*11, dx_-cosangle_, dy_-sinangle_, brakeForce()+1); } } } else if (engineIsOn()) { /* The ship has a terminal velocity, but trying to go faster still uses fuel (can go faster diagonally - don't care). */ double thrustx = cosangle_/8; double thrusty = sinangle_/8; if (fabs(dx_ + thrustx) < MAX_SHIP_SPEED) dx_ += thrustx; if (fabs(dy_ + thrusty) < MAX_SHIP_SPEED) dy_ += thrusty; setVelocity(dx_,dy_); reducePowerLevel(5); KExhaust::add(x() + 10 - cosangle_*10, y() + 10 - sinangle_*10, dx_-cosangle_, dy_-sinangle_, 3); } setImage(angleIndex_ >> 1); if (teleport_) { int ra = rand() % 10; if(ra == 0) ra += rand() % 20; int xra = ra * 60 + ((rand() % 20) * (rand() % 20)); int yra = ra * 50 - ((rand() % 20) * (rand() % 20)); setPos(xra,yra); teleport_ = false; if (teleportCount_ > 0) { --teleportCount_; view_->markVitalsChanged(); } wrap(); } if (shield_->isUp()) { /* The shield's position always depends on the ship's position. */ static int sf = 0; sf++; if (sf % 2) shield_->advanceImage(); shield_->setPos(x()-5,y()-5); shield_->show(); } if (isShooting()) { int maxMissiles = firePower_ + 2; if (canShoot() && (KMissile::missiles() < maxMissiles)) { KMissile* missile = new KMissile(); missile->setMaximumAge(12); missile->setPos(11 + x() + cosangle_ * 11, 11 + y() + sinangle_ * 11); missile->setVelocity(dx_ + cosangle_ * MISSILE_SPEED, dy_ + sinangle_ * MISSILE_SPEED); missile->show(); reducePowerLevel(1); view_->reportMissileFired(); int delay = 5 - firePower_; if (delay < 0) delay = 0; delayShooting(delay); // delay firing next missile. } decrementNextShotDelay(); } } }
int main(int argc, char *argv[]) { int i; const char *resPath = 0; char override_base_file[MAX_STR_LEN] = ""; int override_local_port = 0; char override_remote_host[MAX_STR_LEN] = ""; int override_remote_port = 0; char configfile[MAX_STR_LEN] = "mume.ini"; int default_local_port = 3000; int default_remote_port = 4242; int mud_emulation = 0; #ifdef Q_OS_MACX CFURLRef pluginRef = CFBundleCopyBundleURL(CFBundleGetMainBundle()); CFStringRef macPath = CFURLCopyFileSystemPath(pluginRef, kCFURLPOSIXPathStyle); const char *appPath = CFStringGetCStringPtr(macPath, CFStringGetSystemEncoding()); resPath = (char *)malloc(strlen(appPath)+25); strcpy(resPath, appPath); strcat(resPath, "/Contents/Resources/"); char default_base_file[MAX_STR_LEN] = "mume.pmf"; char default_remote_host[MAX_STR_LEN] = ""; strcpy(configfile, "configs/default.conf"); CFRelease(pluginRef); CFRelease(macPath); #else resPath = ""; char default_base_file[MAX_STR_LEN] = "mume.pmf"; char default_remote_host[MAX_STR_LEN] = "129.241.210.221"; #endif QApplication::setColorSpec( QApplication::CustomColor ); QApplication app( argc, argv ); QPixmap pixmap("images/logo.png"); QSplashScreen *splash = new QSplashScreen(pixmap); splash->show(); splash->showMessage("Loading configuration and database..."); for (i=1; i < argc; i++) { if ((strcmp(argv[i], "--config") == 0) || ( strcmp(argv[i], "-c") == 0)) { if (i == argc) { printf("Too few arguments. Missing config file name.\r\n"); print_usage(); exit(1); } i++; strcpy(configfile, argv[i]); resPath = ""; // obviously the user has an own config file - including the path } if ((strcmp(argv[i], "--emulate") == 0) || ( strcmp(argv[i], "-e") == 0)) { printf("Pandora: Starting in MUD emulation mode.\r\n"); mud_emulation = 1; } if ((strcmp(argv[i], "--base") == 0) || ( strcmp(argv[i], "-b") == 0)) { if (i == argc) { printf("Too few arguments. Missing database.\r\n"); print_usage(); exit(1); } i++; strcpy(override_base_file, argv[i]); // overriding the database file is possible even with default config file } if ((strcmp(argv[i], "--hostname") == 0) || ( strcmp(argv[i], "-hn") == 0)) { if (i == argc) { printf("Too few arguments. Wrong hostname given.\r\n"); print_usage(); exit(1); } i++; strcpy(override_remote_host, argv[i]); } if ((strcmp(argv[i], "--localport") == 0) || ( strcmp(argv[i], "-lp") == 0)) { if (i == argc) { printf("Too few arguments. Missing localport.\r\n"); print_usage(); exit(1); } i++; override_local_port = atoi(argv[i]); } if ((strcmp(argv[i], "--remoteport") == 0) || ( strcmp(argv[i], "-rp") == 0)) { if (i == argc) { printf("Too few arguments. Missing targetport.\r\n"); print_usage(); exit(1); } i++; override_remote_port = atoi(argv[i]); } if ((strcmp(argv[i], "--help") == 0) || ( strcmp(argv[i], "-h") == 0)) { print_usage(); exit(1); } } /* set analyzer engine defaults */ //engine_init(); splash->showMessage(QString("Loading the configuration ") + configfile); conf = new Cconfigurator(); conf->loadConfig(resPath, configfile); print_debug(DEBUG_SYSTEM, "starting up..."); if (override_base_file[0] != 0) { conf->setBaseFile(override_base_file); } else if ( conf->getBaseFile() == "") { conf->setBaseFile(default_base_file); } print_debug(DEBUG_SYSTEM, "Using database file : %s.", (const char*) conf->getBaseFile() ); if (override_remote_host[0] != 0) { conf->setRemoteHost(override_remote_host); } else if ( conf->getRemoteHost().isEmpty() ) { conf->setRemoteHost(default_remote_host); } print_debug(DEBUG_SYSTEM, "Using target hostname : %s.", (const char*) conf->getRemoteHost() ); if (override_local_port != 0) { conf->setLocalPort(override_local_port); } else if ( conf->getLocalPort() == 0) { conf->setLocalPort(default_local_port); } print_debug(DEBUG_SYSTEM, "Using local port : %i.", conf->getLocalPort()); if (override_remote_port != 0) { conf->setRemotePort(override_remote_port); } else if (conf->getRemotePort() == 0) { conf->setRemotePort(default_remote_port); } print_debug(DEBUG_SYSTEM, "Using target port : %i.", conf->getRemotePort()); conf->setConfigModified( false ); splash->showMessage("Starting Analyzer and Proxy..."); engine = new CEngine(new CRoomManager()); proxy = new Proxy(); /* special init for the mud emulation */ if (mud_emulation) { print_debug(DEBUG_SYSTEM, "Starting in MUD emulation mode..."); engine->initEmulationMode(); } proxy->setMudEmulation( mud_emulation ); print_debug(DEBUG_SYSTEM, "Starting renderer ...\n"); if ( !QGLFormat::hasOpenGL() ) { qWarning( "This system has no OpenGL support. Quiting." ); return -1; } QRect rect = app.desktop()->availableGeometry(-1); if (conf->getWindowRect().x() == 0 || conf->getWindowRect().x() >= rect.width() || conf->getWindowRect().y() >= rect.height() ) { print_debug(DEBUG_SYSTEM && DEBUG_INTERFACE, "Autosettings for window size and position"); int x, y, height, width; x = rect.width() / 3 * 2; y = 0; height = rect.height() / 3; width = rect.width() - x; conf->setWindowRect( x, y, width, height); } QGLFormat f = QGLFormat::defaultFormat(); f.setDoubleBuffer( true ); f.setDirectRendering( true ); f.setRgba( true ); f.setDepth( true ); f.setAlpha( true ); if (conf->getMultisampling()) f.setSampleBuffers( true ); //f.setSamples(4); QGLFormat::setDefaultFormat( f ); renderer_window = new CMainWindow; renderer_window->show(); splash->finish(renderer_window); delete splash; proxy->start(); QObject::connect(proxy, SIGNAL(startEngine()), engine, SLOT(slotRunEngine()), Qt::QueuedConnection ); QObject::connect(proxy, SIGNAL(startRenderer()), renderer_window->renderer, SLOT(display()), Qt::QueuedConnection); // this will be done via mainwindow itself //userland_parser->parse_user_input_line("mload"); return app.exec(); }