void DreamsEngine::start() { // Global for the legacy refkeen code. gDreamsEngine = this; gpRenderLock = SDL_CreateSemaphore(1); gKeenFiles.setupFilenames(7); setScreenMode(3); dreamsengine_datapath = const_cast<char*>(mDataPath.c_str()); // This function extracts the embedded files. TODO: We should integrate that to our existing system // Load the Resources loadResources(); //RefKeen_Patch_id_ca(); //RefKeen_Patch_id_us(); RefKeen_Patch_id_rf(); setupObjOffset(); // TODO: This seems to be the exe with main cycle. We need to break it into draw and logic routines. //InitGame(); //DemoLoop(); //kdreams_exe_main(); mpScene.reset( new DreamsDosIntro ); gGameState = INTRO_TEXT; mpScene->start(); }
Image* RenderBackendSDL::createMainScreen(const ScreenMode& mode, const std::string& title, const std::string& icon){ if(icon != "") { SDL_Surface *img = IMG_Load(icon.c_str()); if(img != NULL) { SDL_WM_SetIcon(img, 0); } } Image *image = setScreenMode(mode); SDL_WM_SetCaption(title.c_str(), 0); return image; }
static int a_graphix(int index, int subindex) { if (index == M_INIT) { b_graphix(1); b_graphix(2); b_graphix(3); backoff = optionmenu; return 0; } switch (index) { case 1: if (++settings.shadows > 2) settings.shadows = 0; shadow_level(settings.shadows); b_graphix(index); break; case 2: // Screen mode if (++settings.screen_mode > 3) settings.screen_mode = 0; b_graphix(index); //Reset the current screen render.clear(0, 0, 0); render.update(); setScreenMode(settings.screen_mode); //Reset the render render.update(); render.clear(0, 0, 0); //Redraw the menu clearmenu(); buildmenu(graphixmenu); render.update(); break; case 3: // CPU Usage //settings.cpu_usage = !settings.cpu_usage; b_graphix(index); } return 0; }
bool DreamsEngine::start() { CExeFile &ExeFile = gKeenFiles.exeFile; //mLoader.setPermilage(10); // Patch the EXE-File-Data directly in the memory. CPatcher Patcher(ExeFile, gBehaviorEngine.mPatchFname); Patcher.process(); //mLoader.setPermilage(50); extractEmbeddedFilesIntoMemory(g_be_gamever_kdreamse113); // Global for the legacy refkeen code. gDreamsEngine = this; //gpRenderLock = SDL_CreateSemaphore(1); gKeenFiles.setupFilenames(7); setScreenMode(3); dreamsengine_datapath = const_cast<char*>(mDataPath.c_str()); // This function extracts the embedded files. TODO: We should integrate that to our existing system // Load the Resources loadResources(); //RefKeen_Patch_id_ca(); //RefKeen_Patch_id_us(); RefKeen_Patch_id_rf(); setupObjOffset(); mpScene.reset( new DreamsDosIntro ); gGameStateChange = GSS_INTRO_TEXT; mpScene->start(); return true; }
void TMyApp::setVideoMode(unsigned mode) { setScreenMode(mode); unsigned nW=TScreen::getCols(); unsigned nH=TScreen::getRows(); messageBox(mfInformation | mfOKButton,"Successfully changed to %d x %d size",nW,nH); }
CompositionWidget::CompositionWidget(QWidget *parent) : QWidget(parent) { CompositionRenderer *view = new CompositionRenderer(this); QGroupBox *mainGroup = new QGroupBox(parent); mainGroup->setTitle(tr("Composition Modes")); QGroupBox *modesGroup = new QGroupBox(mainGroup); modesGroup->setTitle(tr("Mode")); rbClear = new QRadioButton(tr("Clear"), modesGroup); connect(rbClear, SIGNAL(clicked()), view, SLOT(setClearMode())); rbSource = new QRadioButton(tr("Source"), modesGroup); connect(rbSource, SIGNAL(clicked()), view, SLOT(setSourceMode())); rbDest = new QRadioButton(tr("Destination"), modesGroup); connect(rbDest, SIGNAL(clicked()), view, SLOT(setDestMode())); rbSourceOver = new QRadioButton(tr("Source Over"), modesGroup); connect(rbSourceOver, SIGNAL(clicked()), view, SLOT(setSourceOverMode())); rbDestOver = new QRadioButton(tr("Destination Over"), modesGroup); connect(rbDestOver, SIGNAL(clicked()), view, SLOT(setDestOverMode())); rbSourceIn = new QRadioButton(tr("Source In"), modesGroup); connect(rbSourceIn, SIGNAL(clicked()), view, SLOT(setSourceInMode())); rbDestIn = new QRadioButton(tr("Dest In"), modesGroup); connect(rbDestIn, SIGNAL(clicked()), view, SLOT(setDestInMode())); rbSourceOut = new QRadioButton(tr("Source Out"), modesGroup); connect(rbSourceOut, SIGNAL(clicked()), view, SLOT(setSourceOutMode())); rbDestOut = new QRadioButton(tr("Dest Out"), modesGroup); connect(rbDestOut, SIGNAL(clicked()), view, SLOT(setDestOutMode())); rbSourceAtop = new QRadioButton(tr("Source Atop"), modesGroup); connect(rbSourceAtop, SIGNAL(clicked()), view, SLOT(setSourceAtopMode())); rbDestAtop = new QRadioButton(tr("Dest Atop"), modesGroup); connect(rbDestAtop, SIGNAL(clicked()), view, SLOT(setDestAtopMode())); rbXor = new QRadioButton(tr("Xor"), modesGroup); connect(rbXor, SIGNAL(clicked()), view, SLOT(setXorMode())); rbPlus = new QRadioButton(tr("Plus"), modesGroup); connect(rbPlus, SIGNAL(clicked()), view, SLOT(setPlusMode())); rbMultiply = new QRadioButton(tr("Multiply"), modesGroup); connect(rbMultiply, SIGNAL(clicked()), view, SLOT(setMultiplyMode())); rbScreen = new QRadioButton(tr("Screen"), modesGroup); connect(rbScreen, SIGNAL(clicked()), view, SLOT(setScreenMode())); rbOverlay = new QRadioButton(tr("Overlay"), modesGroup); connect(rbOverlay, SIGNAL(clicked()), view, SLOT(setOverlayMode())); rbDarken = new QRadioButton(tr("Darken"), modesGroup); connect(rbDarken, SIGNAL(clicked()), view, SLOT(setDarkenMode())); rbLighten = new QRadioButton(tr("Lighten"), modesGroup); connect(rbLighten, SIGNAL(clicked()), view, SLOT(setLightenMode())); rbColorDodge = new QRadioButton(tr("Color Dodge"), modesGroup); connect(rbColorDodge, SIGNAL(clicked()), view, SLOT(setColorDodgeMode())); rbColorBurn = new QRadioButton(tr("Color Burn"), modesGroup); connect(rbColorBurn, SIGNAL(clicked()), view, SLOT(setColorBurnMode())); rbHardLight = new QRadioButton(tr("Hard Light"), modesGroup); connect(rbHardLight, SIGNAL(clicked()), view, SLOT(setHardLightMode())); rbSoftLight = new QRadioButton(tr("Soft Light"), modesGroup); connect(rbSoftLight, SIGNAL(clicked()), view, SLOT(setSoftLightMode())); rbDifference = new QRadioButton(tr("Difference"), modesGroup); connect(rbDifference, SIGNAL(clicked()), view, SLOT(setDifferenceMode())); rbExclusion = new QRadioButton(tr("Exclusion"), modesGroup); connect(rbExclusion, SIGNAL(clicked()), view, SLOT(setExclusionMode())); QGroupBox *circleColorGroup = new QGroupBox(mainGroup); circleColorGroup->setTitle(tr("Circle color")); QSlider *circleColorSlider = new QSlider(Qt::Horizontal, circleColorGroup); circleColorSlider->setRange(0, 359); circleColorSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); connect(circleColorSlider, SIGNAL(valueChanged(int)), view, SLOT(setCircleColor(int))); QGroupBox *circleAlphaGroup = new QGroupBox(mainGroup); circleAlphaGroup->setTitle(tr("Circle alpha")); QSlider *circleAlphaSlider = new QSlider(Qt::Horizontal, circleAlphaGroup); circleAlphaSlider->setRange(0, 255); circleAlphaSlider->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); connect(circleAlphaSlider, SIGNAL(valueChanged(int)), view, SLOT(setCircleAlpha(int))); QPushButton *showSourceButton = new QPushButton(mainGroup); showSourceButton->setText(tr("Show Source")); #if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES) QPushButton *enableOpenGLButton = new QPushButton(mainGroup); enableOpenGLButton->setText(tr("Use OpenGL")); enableOpenGLButton->setCheckable(true); enableOpenGLButton->setChecked(view->usesOpenGL()); if (!QGLFormat::hasOpenGL() || !QGLPixelBuffer::hasOpenGLPbuffers()) enableOpenGLButton->hide(); #endif QPushButton *whatsThisButton = new QPushButton(mainGroup); whatsThisButton->setText(tr("What's This?")); whatsThisButton->setCheckable(true); QPushButton *animateButton = new QPushButton(mainGroup); animateButton->setText(tr("Animated")); animateButton->setCheckable(true); animateButton->setChecked(true); QHBoxLayout *viewLayout = new QHBoxLayout(this); viewLayout->addWidget(view); viewLayout->addWidget(mainGroup); QVBoxLayout *mainGroupLayout = new QVBoxLayout(mainGroup); mainGroupLayout->addWidget(circleColorGroup); mainGroupLayout->addWidget(circleAlphaGroup); mainGroupLayout->addWidget(modesGroup); mainGroupLayout->addStretch(); mainGroupLayout->addWidget(animateButton); mainGroupLayout->addWidget(whatsThisButton); mainGroupLayout->addWidget(showSourceButton); #if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES) mainGroupLayout->addWidget(enableOpenGLButton); #endif QGridLayout *modesLayout = new QGridLayout(modesGroup); modesLayout->addWidget(rbClear, 0, 0); modesLayout->addWidget(rbSource, 1, 0); modesLayout->addWidget(rbDest, 2, 0); modesLayout->addWidget(rbSourceOver, 3, 0); modesLayout->addWidget(rbDestOver, 4, 0); modesLayout->addWidget(rbSourceIn, 5, 0); modesLayout->addWidget(rbDestIn, 6, 0); modesLayout->addWidget(rbSourceOut, 7, 0); modesLayout->addWidget(rbDestOut, 8, 0); modesLayout->addWidget(rbSourceAtop, 9, 0); modesLayout->addWidget(rbDestAtop, 10, 0); modesLayout->addWidget(rbXor, 11, 0); modesLayout->addWidget(rbPlus, 0, 1); modesLayout->addWidget(rbMultiply, 1, 1); modesLayout->addWidget(rbScreen, 2, 1); modesLayout->addWidget(rbOverlay, 3, 1); modesLayout->addWidget(rbDarken, 4, 1); modesLayout->addWidget(rbLighten, 5, 1); modesLayout->addWidget(rbColorDodge, 6, 1); modesLayout->addWidget(rbColorBurn, 7, 1); modesLayout->addWidget(rbHardLight, 8, 1); modesLayout->addWidget(rbSoftLight, 9, 1); modesLayout->addWidget(rbDifference, 10, 1); modesLayout->addWidget(rbExclusion, 11, 1); QVBoxLayout *circleColorLayout = new QVBoxLayout(circleColorGroup); circleColorLayout->addWidget(circleColorSlider); QVBoxLayout *circleAlphaLayout = new QVBoxLayout(circleAlphaGroup); circleAlphaLayout->addWidget(circleAlphaSlider); view->loadDescription(":res/composition/composition.html"); view->loadSourceFile(":res/composition/composition.cpp"); connect(whatsThisButton, SIGNAL(clicked(bool)), view, SLOT(setDescriptionEnabled(bool))); connect(view, SIGNAL(descriptionEnabledChanged(bool)), whatsThisButton, SLOT(setChecked(bool))); connect(showSourceButton, SIGNAL(clicked()), view, SLOT(showSource())); #if defined(QT_OPENGL_SUPPORT) && !defined(QT_OPENGL_ES) connect(enableOpenGLButton, SIGNAL(clicked(bool)), view, SLOT(enableOpenGL(bool))); #endif connect(animateButton, SIGNAL(toggled(bool)), view, SLOT(setAnimationEnabled(bool))); circleColorSlider->setValue(270); circleAlphaSlider->setValue(200); rbSourceOut->animateClick(); setWindowTitle(tr("Composition Modes")); }
int main(void) { // Run in screen mode 4 setScreenMode(MODE_4 | BG2_ENABLE); }