Mechanical::Mechanical(MohawkEngine_Myst *vm) : MystScriptParser(vm), _state(vm->_gameState->_mechanical) { setupOpcodes(); _mystStaircaseState = false; _fortressPosition = 0; }
AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBase(syst, gameDesc) { // Setup mixer syncSoundSettings(); parseFeatures(); DebugMan.addDebugChannel(kDebugLevelMain, "Main", "Generic debug level"); DebugMan.addDebugChannel(kDebugLevelResources, "Resources", "Resources debugging"); DebugMan.addDebugChannel(kDebugLevelSprites, "Sprites", "Sprites debugging"); DebugMan.addDebugChannel(kDebugLevelInventory, "Inventory", "Inventory debugging"); DebugMan.addDebugChannel(kDebugLevelInput, "Input", "Input events debugging"); DebugMan.addDebugChannel(kDebugLevelMenu, "Menu", "Menu debugging"); DebugMan.addDebugChannel(kDebugLevelScripts, "Scripts", "Scripts debugging"); DebugMan.addDebugChannel(kDebugLevelSound, "Sound", "Sound debugging"); DebugMan.addDebugChannel(kDebugLevelText, "Text", "Text output debugging"); DebugMan.addDebugChannel(kDebugLevelSavegame, "Savegame", "Saving & restoring game debugging"); memset(&_game, 0, sizeof(struct AgiGame)); memset(&_debug, 0, sizeof(struct AgiDebug)); memset(&_mouse, 0, sizeof(struct Mouse)); _game._vm = this; _game.clockEnabled = false; _game.state = STATE_INIT; _keyQueueStart = 0; _keyQueueEnd = 0; _allowSynthetic = false; _intobj = NULL; _menu = NULL; _menuSelected = false; _lastSentence[0] = 0; memset(&_stringdata, 0, sizeof(struct StringData)); _objects = NULL; _restartGame = false; _oldMode = INPUT_NONE; _firstSlot = 0; resetControllers(); setupOpcodes(); _game._curLogic = NULL; _timerHack = 0; }
Mechanical::Mechanical(MohawkEngine_Myst *vm) : MystScriptParser(vm), _state(vm->_gameState->_mechanical) { setupOpcodes(); _elevatorGoingMiddle = false; _mystStaircaseState = false; _fortressPosition = 0; _fortressRotationSpeed = 0; _fortressSimulationSpeed = 0; _gearsWereRunning = false; _fortressRotationShortMovieWorkaround = false; _fortressRotationShortMovieCount = 0; _fortressRotationShortMovieLast = 0; }
void AGOSEngine::setupGame() { allocItemHeap(); allocTablesHeap(); if (getGameType() != GType_SIMON2) initMouse(); _variableArray = (int16 *)calloc(_numVars, sizeof(int16)); _variableArrayPtr = _variableArray; if (getGameType() == GType_FF || getGameType() == GType_PP) { _variableArray2 = (int16 *)calloc(_numVars, sizeof(int16)); } setupOpcodes(); setupVgaOpcodes(); setZoneBuffers(); _currentMouseCursor = 255; _currentMouseAnim = 255; _lastMusicPlayed = -1; _nextMusicToPlay = -1; _noOverWrite = 0xFFFF; _stringIdLocalMin = 1; _agosMenu = 1; _superRoomNumber = 1; for (int i = 0; i < 20; i++) { if (getGameType() == GType_SIMON1 || getGameType() == GType_SIMON2) { _videoWindows[i] = initialVideoWindows_Simon[i]; } else if (getGameType() == GType_PN) { _videoWindows[i] = initialVideoWindows_PN[i]; } else { _videoWindows[i] = initialVideoWindows_Common[i]; } } if (getGameType() == GType_ELVIRA2 && getPlatform() == Common::kPlatformAtariST) { _videoWindows[9] = 75; } }
Stoneship::Stoneship(MohawkEngine_Myst *vm) : MystScriptParser(vm), _state(vm->_gameState->_stoneship) { setupOpcodes(); _tunnelRunning = false; _state.generatorDepletionTime = 0; _state.generatorDuration = 0; _cabinMystBookPresent = 0; _siriusDrawerDrugsOpen = 0; _chestDrawersOpen = 0; _chestAchenarBottomDrawerClosed = 1; // Drop key if (_state.trapdoorKeyState == 1) _state.trapdoorKeyState = 2; // Power is not available when loading if (_state.sideDoorOpened) _state.generatorPowerAvailable = 2; else _state.generatorPowerAvailable = 0; }
Credits::Credits(MohawkEngine_Myst *vm) : MystScriptParser(vm) { setupOpcodes(); _curImage = 0; }
void CineEngine::initialize() { _globalVars.reinit(NUM_MAX_VAR + 1); // Initialize all savegames' descriptions to empty strings memset(currentSaveName, 0, sizeof(currentSaveName)); // Resize object table to its correct size and reset all its elements g_cine->_objectTable.resize(NUM_MAX_OBJECT); resetObjectTable(); // Resize animation data table to its correct size and reset all its elements g_cine->_animDataTable.resize(NUM_MAX_ANIMDATA); freeAnimDataTable(); // Resize zone data table to its correct size and reset all its elements g_cine->_zoneData.resize(NUM_MAX_ZONE); Common::set_to(g_cine->_zoneData.begin(), g_cine->_zoneData.end(), 0); // Resize zone query table to its correct size and reset all its elements g_cine->_zoneQuery.resize(NUM_MAX_ZONE); Common::set_to(g_cine->_zoneQuery.begin(), g_cine->_zoneQuery.end(), 0); _timerDelayMultiplier = 12; // Set default speed setupOpcodes(); initLanguage(getLanguage()); if (getGameType() == Cine::GType_OS) { renderer = new OSRenderer; } else { renderer = new FWRenderer; } renderer->initialize(); collisionPage = new byte[320 * 200]; memset(collisionPage, 0, 320 * 200); // Clear part buffer as there's nothing loaded into it yet. // Its size will change when loading data into it with the loadPart function. g_cine->_partBuffer.clear(); if (getGameType() == Cine::GType_OS) { readVolCnf(); } loadTextData("texte.dat"); if (getGameType() == Cine::GType_OS && !(getFeatures() & GF_DEMO)) { loadPoldatDat("poldat.dat"); loadErrmessDat("errmess.dat"); } // in case ScummVM engines can be restarted in the future g_cine->_scriptTable.clear(); g_cine->_relTable.clear(); g_cine->_objectScripts.clear(); g_cine->_globalScripts.clear(); g_cine->_bgIncrustList.clear(); freeAnimDataTable(); g_cine->_overlayList.clear(); g_cine->_messageTable.clear(); resetObjectTable(); var8 = 0; var2 = var3 = var4 = var5 = 0; musicIsPlaying = 0; currentDatName[0] = 0; _preLoad = false; if (ConfMan.hasKey("save_slot") && !_restartRequested) { char saveNameBuffer[256]; sprintf(saveNameBuffer, "%s.%1d", _targetName.c_str(), ConfMan.getInt("save_slot")); bool res = makeLoad(saveNameBuffer); if (res) _preLoad = true; } if (!_preLoad) { loadPrc(BOOT_PRC_NAME); strcpy(currentPrcName, BOOT_PRC_NAME); setMouseCursor(MOUSE_CURSOR_NORMAL); } }
RivenSimpleCommand::RivenSimpleCommand(MohawkEngine_Riven *vm, RivenCommandType type, const ArgumentArray &arguments) : RivenCommand(vm), _type(type), _arguments(arguments) { setupOpcodes(); }
AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBase(syst, gameDesc) { // Setup mixer syncSoundSettings(); parseFeatures(); _rnd = new Common::RandomSource(); g_eventRec.registerRandomSource(*_rnd, "agi"); DebugMan.addDebugChannel(kDebugLevelMain, "Main", "Generic debug level"); DebugMan.addDebugChannel(kDebugLevelResources, "Resources", "Resources debugging"); DebugMan.addDebugChannel(kDebugLevelSprites, "Sprites", "Sprites debugging"); DebugMan.addDebugChannel(kDebugLevelInventory, "Inventory", "Inventory debugging"); DebugMan.addDebugChannel(kDebugLevelInput, "Input", "Input events debugging"); DebugMan.addDebugChannel(kDebugLevelMenu, "Menu", "Menu debugging"); DebugMan.addDebugChannel(kDebugLevelScripts, "Scripts", "Scripts debugging"); DebugMan.addDebugChannel(kDebugLevelSound, "Sound", "Sound debugging"); DebugMan.addDebugChannel(kDebugLevelText, "Text", "Text output debugging"); DebugMan.addDebugChannel(kDebugLevelSavegame, "Savegame", "Saving & restoring game debugging"); memset(&_game, 0, sizeof(struct AgiGame)); memset(&_debug, 0, sizeof(struct AgiDebug)); memset(&_mouse, 0, sizeof(struct Mouse)); _game.clockEnabled = false; _game.state = STATE_INIT; _keyQueueStart = 0; _keyQueueEnd = 0; _allowSynthetic = false; _tickTimer = 0; _lastTickTimer = 0; _intobj = NULL; _menu = NULL; _menuSelected = false; _lastSentence[0] = 0; memset(&_stringdata, 0, sizeof(struct StringData)); _objects = NULL; _restartGame = false; _oldMode = INPUT_NONE; _predictiveDialogRunning = false; _predictiveDictText = NULL; _predictiveDictLine = NULL; _predictiveDictLineCount = 0; _firstSlot = 0; // NOTE: On game reload the keys do not get set again, // thus it is incorrect to reset it in agiInit(). Fixes bug #2823762 _game.lastController = 0; for (int i = 0; i < MAX_DIRS; i++) _game.controllerOccured[i] = false; setupOpcodes(); _curLogic = NULL; _timerHack = 0; }
Preview::Preview(MohawkEngine_Myst *vm) : Myst(vm) { setupOpcodes(); }
Demo::Demo(MohawkEngine_Myst *vm) : Intro(vm) { setupOpcodes(); _returnToMenuStep = 0; }
MystScriptParser_Channelwood::MystScriptParser_Channelwood(MohawkEngine_Myst *vm) : MystScriptParser(vm), _state(vm->_gameState->_channelwood) { setupOpcodes(); }
MystScriptParser_Slides::MystScriptParser_Slides(MohawkEngine_Myst *vm) : MystScriptParser(vm) { setupOpcodes(); }
Demo::Demo(MohawkEngine_Myst *vm) : Intro(vm) { setupOpcodes(); }
Preview::Preview(MohawkEngine_Myst *vm) : Myst(vm) { setupOpcodes(); _vm->_cursor->hideCursor(); }
MystScriptParser_Dni::MystScriptParser_Dni(MohawkEngine_Myst *vm) : MystScriptParser(vm) { setupOpcodes(); _notSeenAtrus = true; }
Intro::Intro(MohawkEngine_Myst *vm) : MystScriptParser(vm) { setupOpcodes(); }
AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBase(syst, gameDesc) { // Setup mixer syncSoundSettings(); DebugMan.addDebugChannel(kDebugLevelMain, "Main", "Generic debug level"); DebugMan.addDebugChannel(kDebugLevelResources, "Resources", "Resources debugging"); DebugMan.addDebugChannel(kDebugLevelSprites, "Sprites", "Sprites debugging"); DebugMan.addDebugChannel(kDebugLevelInventory, "Inventory", "Inventory debugging"); DebugMan.addDebugChannel(kDebugLevelInput, "Input", "Input events debugging"); DebugMan.addDebugChannel(kDebugLevelMenu, "Menu", "Menu debugging"); DebugMan.addDebugChannel(kDebugLevelScripts, "Scripts", "Scripts debugging"); DebugMan.addDebugChannel(kDebugLevelSound, "Sound", "Sound debugging"); DebugMan.addDebugChannel(kDebugLevelText, "Text", "Text output debugging"); DebugMan.addDebugChannel(kDebugLevelSavegame, "Savegame", "Saving & restoring game debugging"); memset(&_game, 0, sizeof(struct AgiGame)); memset(&_debug, 0, sizeof(struct AgiDebug)); memset(&_mouse, 0, sizeof(struct Mouse)); _game.mouseEnabled = true; _game.mouseHidden = false; // don't check for Amiga, Amiga doesn't allow disabling mouse support. It's mandatory. if (!ConfMan.getBool("mousesupport")) { // we effectively disable the mouse for games, that explicitly do not want mouse support to be enabled _game.mouseEnabled = false; _game.mouseHidden = true; } _game._vm = this; _game.gfxMode = true; _keyQueueStart = 0; _keyQueueEnd = 0; _allowSynthetic = false; _intobj = NULL; memset(&_stringdata, 0, sizeof(struct StringData)); _objects = NULL; _restartGame = false; _firstSlot = 0; resetControllers(); setupOpcodes(); _game._curLogic = NULL; _veryFirstInitialCycle = true; _instructionCounter = 0; resetGetVarSecondsHeuristic(); _setVolumeBrokenFangame = false; // for further study see AgiEngine::setVolumeViaScripts() _lastSaveTime = 0; memset(_keyQueue, 0, sizeof(_keyQueue)); _console = nullptr; _font = nullptr; _gfx = nullptr; _sound = nullptr; _picture = nullptr; _sprites = nullptr; _text = nullptr; _loader = nullptr; _menu = nullptr; _systemUI = nullptr; _inventory = nullptr; _keyHoldMode = false; }
Script_v3::Script_v3(byte *totData, uint32 totSize, ExtTable *extTable) : Script_v2(totData, totSize, extTable) { setupOpcodes(); }
Slides::Slides(MohawkEngine_Myst *vm) : MystScriptParser(vm) { setupOpcodes(); _vm->_cursor->hideCursor(); }