Common::Error KyraEngine_MR::init() { _screen = new Screen_MR(this, _system); assert(_screen); _screen->setResolution(); KyraEngine_v1::init(); initStaticResource(); _debugger = new Debugger_v2(this); assert(_debugger); _soundDigital = new SoundDigital(this, _mixer); assert(_soundDigital); if (!_soundDigital->init()) error("_soundDigital->init() failed"); KyraEngine_v1::_text = _text = new TextDisplayer_MR(this, _screen); assert(_text); _gui = new GUI_MR(this); assert(_gui); _gui->initStaticData(); _screen->loadFont(Screen::FID_6_FNT, "6.FNT"); _screen->loadFont(Screen::FID_8_FNT, "8FAT.FNT"); _screen->loadFont(Screen::FID_BOOKFONT_FNT, "BOOKFONT.FNT"); _screen->setFont(Screen::FID_8_FNT); _screen->setAnimBlockPtr(3500); _screen->setScreenDim(0); _screen->loadPalette("PALETTE.COL", _screen->getPalette(0)); _screen->setScreenPalette(_screen->getPalette(0)); return Common::kNoError; }
Common::Error KyraEngine_HoF::init() { _screen = new Screen_HoF(this, _system); assert(_screen); _screen->setResolution(); _debugger = new Debugger_HoF(this); assert(_debugger); KyraEngine_v1::init(); initStaticResource(); _text = new TextDisplayer_HoF(this, _screen); assert(_text); _gui = new GUI_HoF(this); assert(_gui); _gui->initStaticData(); _tim = new TIMInterpreter(this, _screen, _system); assert(_tim); if (_flags.isDemo && !_flags.isTalkie) { _screen->loadFont(_screen->FID_8_FNT, "FONT9P.FNT"); } else { _screen->loadFont(_screen->FID_6_FNT, "6.FNT"); _screen->loadFont(_screen->FID_8_FNT, "8FAT.FNT"); _screen->loadFont(_screen->FID_BOOKFONT_FNT, "BOOKFONT.FNT"); } _screen->loadFont(_screen->FID_GOLDFONT_FNT, "GOLDFONT.FNT"); _screen->setFont(_flags.lang == Common::JA_JPN ? Screen::FID_SJIS_FNT : _screen->FID_8_FNT); _screen->setAnimBlockPtr(3504); _screen->setScreenDim(0); if (!_sound->init()) error("Couldn't init sound"); _abortIntroFlag = false; if (_sequenceStrings) { for (int i = 0; i < MIN(33, _sequenceStringsSize); i++) _sequenceStringsDuration[i] = (int) strlen(_sequenceStrings[i]) * 8; } // No mouse display in demo if (_flags.isDemo && !_flags.isTalkie) return Common::kNoError; _res->exists("PWGMOUSE.SHP", true); uint8 *shapes = _res->fileData("PWGMOUSE.SHP", 0); assert(shapes); for (int i = 0; i < 2; i++) addShapeToPool(shapes, i, i); delete[] shapes; _screen->setMouseCursor(0, 0, getShapePtr(0)); return Common::kNoError; }
Common::Error DarkMoonEngine::init() { Common::Error err = EoBCoreEngine::init(); if (err.getCode() != Common::kNoError) return err; initStaticResource(); _monsterProps = new EoBMonsterProperty[10]; if (_configRenderMode == Common::kRenderEGA) { Palette pal(16); _screen->loadPalette(_egaDefaultPalette, pal, 16); _screen->setScreenPalette(pal); } _screen->loadPalette("PALETTE.COL", _screen->getPalette(0)); _screen->setScreenPalette(_screen->getPalette(0)); return Common::kNoError; }
Common::Error KyraEngine_LoK::init() { if (Common::parseRenderMode(ConfMan.get("render_mode")) == Common::kRenderPC9801) _screen = new Screen_LoK_16(this, _system); else _screen = new Screen_LoK(this, _system); assert(_screen); _screen->setResolution(); _debugger = new Debugger_LoK(this); assert(_debugger); KyraEngine_v1::init(); _sprites = new Sprites(this, _system); assert(_sprites); _seq = new SeqPlayer(this, _system); assert(_seq); _animator = new Animator_LoK(this, _system); assert(_animator); _animator->init(5, 11, 12); assert(*_animator); _text = new TextDisplayer(this, screen()); assert(_text); _gui = new GUI_LoK(this, _screen); assert(_gui); initStaticResource(); _sound->selectAudioResourceSet(kMusicIntro); if (_flags.platform == Common::kPlatformAmiga) { _trackMap = _amigaTrackMap; _trackMapSize = _amigaTrackMapSize; } else { _trackMap = _dosTrackMap; _trackMapSize = _dosTrackMapSize; } if (!_sound->init()) error("Couldn't init sound"); _sound->loadSoundFile(0); setupButtonData(); _paletteChanged = 1; _currentCharacter = 0; _characterList = new Character[11]; assert(_characterList); memset(_characterList, 0, sizeof(Character) * 11); for (int i = 0; i < 11; ++i) memset(_characterList[i].inventoryItems, 0xFF, sizeof(_characterList[i].inventoryItems)); _characterList[0].sceneId = 5; _characterList[0].height = 48; _characterList[0].facing = 3; _characterList[0].currentAnimFrame = 7; memset(&_npcScriptData, 0, sizeof(EMCData)); memset(&_scriptClickData, 0, sizeof(EMCData)); memset(&_npcScript, 0, sizeof(EMCState)); memset(&_scriptMain, 0, sizeof(EMCState)); memset(&_scriptClick, 0, sizeof(EMCState)); memset(_shapes, 0, sizeof(_shapes)); for (int i = 0; i < ARRAYSIZE(_movieObjects); ++i) _movieObjects[i] = createWSAMovie(); memset(_flagsTable, 0, sizeof(_flagsTable)); _talkingCharNum = -1; _charSayUnk3 = -1; _disabledTalkAnimObject = _enabledTalkAnimObject = 0; memset(_currSentenceColor, 0, 3); _startSentencePalIndex = -1; _fadeText = false; _cauldronState = 0; _crystalState[0] = _crystalState[1] = -1; _brandonStatusBit = 0; _brandonStatusBit0x02Flag = _brandonStatusBit0x20Flag = 10; _brandonPosX = _brandonPosY = -1; _poisonDeathCounter = 0; memset(_itemHtDat, 0, sizeof(_itemHtDat)); memset(_exitList, 0xFF, sizeof(_exitList)); _exitListPtr = 0; _pathfinderFlag = _pathfinderFlag2 = 0; _lastFindWayRet = 0; _sceneChangeState = _loopFlag2 = 0; _movFacingTable = new int[150]; assert(_movFacingTable); _movFacingTable[0] = 8; _marbleVaseItem = -1; memset(_foyerItemTable, -1, sizeof(_foyerItemTable)); _itemInHand = kItemNone; _currentRoom = 0xFFFF; _scenePhasingFlag = 0; _lastProcessedItem = 0; _lastProcessedItemHeight = 16; _unkScreenVar1 = 1; _unkScreenVar2 = 0; _unkScreenVar3 = 0; _unkAmuletVar = 0; _endSequenceNeedLoading = 1; _malcolmFlag = 0; _beadStateVar = 0; _endSequenceSkipFlag = 0; _unkEndSeqVar2 = 0; _endSequenceBackUpRect = 0; _unkEndSeqVar4 = 0; _unkEndSeqVar5 = 0; _lastDisplayedPanPage = 0; memset(_panPagesTable, 0, sizeof(_panPagesTable)); _finalA = _finalB = _finalC = 0; memset(&_kyragemFadingState, 0, sizeof(_kyragemFadingState)); _kyragemFadingState.gOffset = 0x13; _kyragemFadingState.bOffset = 0x13; _menuDirectlyToLoad = false; _lastMusicCommand = 0; return Common::kNoError; }