SnifferDialog::SnifferDialog(QWidget * parent): QDialog(parent), ui(new Ui::SnifferDialog) { ui->setupUi(this); openedSniffersModel = new OpenedSniffersModel; ui->snifferTable->setModel(openedSniffersModel); connect(ui->addButton, SIGNAL(clicked()), this, SLOT(onAddSniffer())); connect(ui->removeButton, SIGNAL(clicked()), this, SLOT(onRemoveSniffer())); connect(ui->browseButton, SIGNAL(clicked()), this, SLOT(onBrowseSniffer())); connect(ui->closeButton, SIGNAL(clicked()), this, SLOT(onCloseDialog())); QFileInfoList captureInterfaces; QDir searchPath; QStringList extensions; extensions << QString("*.so") << QString("*.dylib"); searchPath = QDir("/usr/lib/foren6/interfaces"); if(!searchPath.exists()) searchPath = QDir(QApplication::applicationDirPath() + "/capture"); if(!searchPath.exists()) searchPath = QDir(QApplication::applicationDirPath()); captureInterfaces.append(searchPath.entryInfoList(extensions, QDir::Files, QDir::Name)); QFileInfo captureInterface; foreach(captureInterface, captureInterfaces) { qDebug("Loading %s", captureInterface.absoluteFilePath().toLatin1().constData()); loadInterface(captureInterface.absoluteFilePath().toLatin1().constData()); }
int main(int argc, char** argv) { TApplicationInfo info; info.appTitle = TEXT("GUI test"); info.style = sf::Style::Close | sf::Style::Titlebar; info.windowWidth = 800; info.windowHeight = 600; info.context.majorVersion = 3; info.context.minorVersion = 3; auto& app = TTestApplication::Create(info); loadInterface(); return app.run(); }
Core::Core(CopyEngineManager *copyEngineList) { ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start"); this->copyEngineList=copyEngineList; nextId=0; forUpateInformation.setInterval(ULTRACOPIER_TIME_INTERFACE_UPDATE); loadInterface(); //connect(©EngineList, &CopyEngineManager::newCanDoOnlyCopy, this, &Core::newCanDoOnlyCopy); connect(ThemesManager::themesManager, &ThemesManager::theThemeNeedBeUnloaded, this, &Core::unloadInterface); connect(ThemesManager::themesManager, &ThemesManager::theThemeIsReloaded, this, &Core::loadInterface, Qt::QueuedConnection); connect(&forUpateInformation, &QTimer::timeout, this, &Core::periodicSynchronization); }
void KyraEngine_MR::startup() { _album.wsa = new WSAMovie_v2(this); assert(_album.wsa); _album.leftPage.wsa = new WSAMovie_v2(this); assert(_album.leftPage.wsa); _album.rightPage.wsa = new WSAMovie_v2(this); assert(_album.rightPage.wsa); _gamePlayBuffer = new uint8[64000]; _interface = new uint8[17920]; _interfaceCommandLine = new uint8[3840]; _screen->setFont(Screen::FID_8_FNT); _stringBuffer = new char[500]; allocAnimObjects(1, 16, 50); memset(_sceneShapes, 0, sizeof(_sceneShapes)); _screenBuffer = new uint8[64000]; if (!loadLanguageFile("ITEMS.", _itemFile)) error("Couldn't load ITEMS"); if (!loadLanguageFile("SCORE.", _scoreFile)) error("Couldn't load SCORE"); if (!loadLanguageFile("C_CODE.", _cCodeFile)) error("Couldn't load C_CODE"); if (!loadLanguageFile("SCENES.", _scenesFile)) error("Couldn't load SCENES"); if (!loadLanguageFile("OPTIONS.", _optionsFile)) error("Couldn't load OPTIONS"); if (!loadLanguageFile("_ACTOR.", _actorFile)) error("couldn't load _ACTOR"); openTalkFile(0); _currentTalkFile = 0; openTalkFile(1); loadCostPal(); for (int i = 0; i < 16; ++i) { _sceneAnims[i].flags = 0; _sceneAnimMovie[i] = new WSAMovie_v2(this); assert(_sceneAnimMovie[i]); } _screen->_curPage = 0; _talkObjectList = new TalkObject[88]; memset(_talkObjectList, 0, sizeof(TalkObject)*88); for (int i = 0; i < 88; ++i) _talkObjectList[i].sceneId = 0xFF; _gfxBackUpRect = new uint8[_screen->getRectSize(32, 32)]; initItemList(50); resetItemList(); loadShadowShape(); loadExtrasShapes(); _characterShapeFile = 0; loadCharacterShapes(_characterShapeFile); updateMalcolmShapes(); initMainButtonList(true); loadButtonShapes(); loadInterfaceShapes(); _screen->loadPalette("PALETTE.COL", _screen->getPalette(0)); _paletteOverlay = new uint8[256]; _screen->generateOverlay(_screen->getPalette(0), _paletteOverlay, 0xF0, 0x19); loadInterface(); clearAnimObjects(); _scoreMax = 0; for (int i = 0; i < _scoreTableSize; ++i) { if (_scoreTable[i] > 0) _scoreMax += _scoreTable[i]; } memset(_newSceneDlgState, 0, sizeof(_newSceneDlgState)); memset(_conversationState, -1, sizeof(_conversationState)); _sceneList = new SceneDesc[98]; assert(_sceneList); memset(_sceneList, 0, sizeof(SceneDesc)*98); _sceneListSize = 98; runStartupScript(1, 0); _res->exists("MOODOMTR.WSA", true); _invWsa = new WSAMovie_v2(this); assert(_invWsa); _invWsa->open("MOODOMTR.WSA", 1, 0); _invWsaFrame = 6; saveGameStateIntern(0, "New Game", 0); if (_gameToLoad == -1) enterNewScene(_mainCharacter.sceneId, _mainCharacter.facing, 0, 0, 1); else loadGameStateCheck(_gameToLoad); if (_menuDirectlyToLoad) (*_mainButtonData[0].buttonCallback)(&_mainButtonData[0]); _screen->updateScreen(); _screen->showMouse(); setNextIdleAnimTimer(); setWalkspeed(_configWalkspeed); }
/** * Initialises and loads the data of an animation */ void MadsAnimation::initialise(const Common::String &filename, uint16 flags, M4Surface *surface, M4Surface *depthSurface) { MadsPack anim(filename.c_str(), _vm); bool madsRes = filename[0] == '*'; char buffer[20]; int streamIndex = 1; // Chunk 1: header // header Common::SeekableReadStream *animStream = anim.getItemStream(0); int spriteListCount = animStream->readUint16LE(); int miscEntriesCount = animStream->readUint16LE(); int frameEntryCount = animStream->readUint16LE(); int messagesCount = animStream->readUint16LE(); animStream->skip(1); _flags = animStream->readByte(); animStream->skip(2); _animMode = animStream->readUint16LE(); _roomNumber = animStream->readUint16LE(); animStream->skip(2); _field12 = animStream->readUint16LE() != 0; _spriteListIndex = animStream->readUint16LE(); _scrollX = animStream->readSint16LE(); _scrollY = animStream->readSint16LE(); _scrollTicks = animStream->readUint16LE(); animStream->skip(8); animStream->read(buffer, FILENAME_SIZE); buffer[FILENAME_SIZE] = '\0'; _interfaceFile = Common::String(buffer); for (int i = 0; i < 10; ++i) { animStream->read(buffer, FILENAME_SIZE); buffer[FILENAME_SIZE] = '\0'; _spriteSetNames[i] = Common::String(buffer); } animStream->skip(81); animStream->read(buffer, FILENAME_SIZE); buffer[FILENAME_SIZE] = '\0'; _lbmFilename = Common::String(buffer); animStream->skip(365); animStream->read(buffer, FILENAME_SIZE); buffer[FILENAME_SIZE] = '\0'; _spritesFilename = Common::String(buffer); animStream->skip(48); animStream->read(buffer, FILENAME_SIZE); buffer[FILENAME_SIZE] = '\0'; _soundName = Common::String(buffer); animStream->skip(13); animStream->read(buffer, FILENAME_SIZE); buffer[FILENAME_SIZE] = '\0'; _dsrName = Common::String(buffer); animStream->read(buffer, FILENAME_SIZE); buffer[FILENAME_SIZE] = '\0'; Common::String fontResource(buffer); if (_animMode == 4) flags |= 0x4000; if (flags & 0x100) loadInterface(surface, depthSurface); // Initialise the reference list for (int i = 0; i < spriteListCount; ++i) _spriteListIndexes.push_back(-1); delete animStream; if (messagesCount > 0) { // Chunk 2 // Following is a list of any messages for the animation animStream = anim.getItemStream(streamIndex++); for (int i = 0; i < messagesCount; ++i) { AnimMessage rec; rec.soundId = animStream->readSint16LE(); animStream->read(rec.msg, 64); animStream->skip(4); rec.pos.x = animStream->readSint16LE(); rec.pos.y = animStream->readSint16LE(); rec.flags = animStream->readUint16LE(); rec.rgb1.r = animStream->readByte() << 2; rec.rgb1.g = animStream->readByte() << 2; rec.rgb1.b = animStream->readByte() << 2; rec.rgb2.r = animStream->readByte() << 2; rec.rgb2.g = animStream->readByte() << 2; rec.rgb2.b = animStream->readByte() << 2; animStream->skip(2); // Space for kernelMsgIndex rec.kernelMsgIndex = -1; animStream->skip(6); rec.startFrame = animStream->readUint16LE(); rec.endFrame = animStream->readUint16LE(); animStream->skip(2); _messages.push_back(rec); } delete animStream; } if (frameEntryCount > 0) { // Chunk 3: animation frame info animStream = anim.getItemStream(streamIndex++); for (int i = 0; i < frameEntryCount; i++) { AnimFrameEntry rec; rec.frameNumber = animStream->readUint16LE(); rec.seqIndex = animStream->readByte(); rec.spriteSlot.spriteListIndex = animStream->readByte(); rec.spriteSlot.frameNumber = animStream->readUint16LE(); rec.spriteSlot.xp = animStream->readSint16LE(); rec.spriteSlot.yp = animStream->readSint16LE(); rec.spriteSlot.depth = animStream->readSByte(); rec.spriteSlot.scale = (int8)animStream->readByte(); _frameEntries.push_back(rec); } delete animStream; } if (miscEntriesCount > 0) { // Chunk 4: Misc Data animStream = anim.getItemStream(streamIndex); for (int i = 0; i < miscEntriesCount; ++i) { AnimMiscEntry rec; rec.soundNum = animStream->readByte(); rec.msgIndex = animStream->readSByte(); rec.numTicks = animStream->readUint16LE(); rec.posAdjust.x = animStream->readUint16LE(); rec.posAdjust.y = animStream->readUint16LE(); animStream->readUint16LE(); _miscEntries.push_back(rec); } delete animStream; } // If the animation specifies a font, then load it for access if (_flags & ANIM_CUSTOM_FONT) { Common::String fontName; if (madsRes) fontName += "*"; fontName += fontResource; if (fontName != "") _font = _vm->_font->getFont(fontName.c_str()); else warning("Attempted to set a font with an empty name"); } // If a speech file is specified, then load it if (!_dsrName.empty()) _vm->_sound->loadDSRFile(_dsrName.c_str()); // Load all the sprite sets for the animation for (int i = 0; i < spriteListCount; ++i) { if (_field12 && (i == _spriteListIndex)) // Skip over field, since it's manually loaded continue; _spriteListIndexes[i] = _view->_spriteSlots.addSprites(_spriteSetNames[i].c_str()); } if (_field12) { Common::String resName; if (madsRes) resName += "*"; resName += _spriteSetNames[_spriteListIndex]; _spriteListIndexes[_spriteListIndex] = _view->_spriteSlots.addSprites(resName.c_str()); } // TODO: Unknown section about handling sprite set list combined with messages size // TODO: The original has two separate loops for the loop below based on _animMode == 4. Is it // perhaps that in that mode the sprite frames has a different format..? // Remap the sprite list index fields from the initial value to the indexes of the loaded // sprite sets for the animation for (uint i = 0; i < _frameEntries.size(); ++i) { int idx = _frameEntries[i].spriteSlot.spriteListIndex; _frameEntries[i].spriteSlot.spriteListIndex = _spriteListIndexes[idx]; } if (hasScroll()) _nextScrollTimer = _madsVm->_currentTimer + _scrollTicks; }