void AGOSEngine_Feeble::timerProc() { if (_videoLockOut & 0x80E9 || _videoLockOut & 2) return; _syncCount++; _videoLockOut |= 2; if (!(_videoLockOut & 0x10)) { _syncFlag2 = !_syncFlag2; if (!_syncFlag2) { processVgaEvents(); } else { // Double speed on Oracle if (getGameType() == GType_FF && getBitFlag(99)) { processVgaEvents(); } else if (_scrollCount == 0) { _videoLockOut &= ~2; return; } } if (getGameType() == GType_FF && _interactiveVideo) { // Controls Omni TV videos if (getBitFlag(42)) { stopInteractiveVideo(); } else { _moviePlayer->nextFrame(); } } animateSprites(); } if (_displayFlag) { if (getGameType() == GType_FF && !(getFeatures() & GF_DEMO)) { if (!getBitFlag(78)) { oracleLogo(); } if (getBitFlag(76)) { swapCharacterLogo(); } } handleMouseMoved(); displayScreen(); _displayFlag = 0; } _videoLockOut &= ~2; }
void AGOSEngine_FeebleDemo::handleWobble() { if (_lastClickRem == _currentBox) return; stopInteractiveVideo(); if (_currentBox && (_currentBox->id >= 11 && _currentBox->id <= 19)) { char filename[15]; sprintf(filename, "wobble%d.smk", _currentBox->id - 10); startInteractiveVideo(filename); } _lastClickRem = _currentBox; }
void AGOSEngine_FeebleDemo::mainMenu() { for (int i = 1; i <= 6; i++) enableBox(i); for (int i = 11; i <= 19; i++) disableBox(i); playVideo("mmfadein.smk", true); startInteractiveVideo("mainmenu.smk"); HitArea *ha = 0; do { _lastHitArea = NULL; _lastHitArea3 = NULL; while (_lastHitArea3 == 0) { if (shouldQuit()) return; handleText(); delay(1); } ha = _lastHitArea; } while (ha == NULL || !(ha->id >= 1 && ha->id <= 6)); if (shouldQuit()) return; stopInteractiveVideo(); if (ha->id == 1) { // Feeble Files Data playVideo("ffade5.smk"); playVideo("ftext0.smk"); playVideo("ftext1.smk", true); waitForSpace(); playVideo("ftext2.smk", true); waitForSpace(); playVideo("ftext3.smk", true); waitForSpace(); playVideo("ftext4.smk", true); waitForSpace(); playVideo("ftext5.smk", true); waitForSpace(); } else if (ha->id == 2) { // Opening Sequence playVideo("ffade1.smk"); playVideo("musosp1.smk"); playVideo("newcred.smk"); playVideo("fasall.smk"); playVideo("mus5p2.smk"); playVideo("coach.smk"); playVideo("outmin.smk"); } else if (ha->id == 3) { // Technical Information playVideo("ffade3.smk"); playVideo("idfx4a.smk"); playVideo("idfx4b.smk"); playVideo("idfx4c.smk"); playVideo("idfx4d.smk"); playVideo("idfx4e.smk"); playVideo("idfx4f.smk"); playVideo("idfx4g.smk"); } else if (ha->id == 4) { // About AdventureSoft playVideo("ffade2.smk"); playVideo("fscene3b.smk"); playVideo("fscene3a.smk"); playVideo("fscene3c.smk"); playVideo("fscene3g.smk"); } else if (ha->id == 5) { // Video Clips playVideo("ffade4.smk"); filmMenu(); } else if (ha->id == 6) { // Exit InfoDisk playVideo("ffade6.smk"); exitMenu(); } }
void AGOSEngine_FeebleDemo::filmMenu() { for (int i = 1; i <= 6; i++) disableBox(i); for (int i = 11; i <= 19; i++) enableBox(i); if (!_filmMenuUsed) { playVideo("fclipsin.smk", true); } else { playVideo("fclipin2.smk", true); } _filmMenuUsed = true; HitArea *ha; while (!shouldQuit()) { _lastHitArea = NULL; _lastHitArea3 = NULL; while (!shouldQuit() && _lastHitArea3 == 0) { handleWobble(); delay(1); } ha = _lastHitArea; if (ha == NULL) continue; stopInteractiveVideo(); if (ha->id == 11) { playVideo("fgo1.smk"); playVideo("maze.smk"); } else if (ha->id == 12) { playVideo("fgo2.smk"); playVideo("radioin.smk"); } else if (ha->id == 13) { playVideo("fgo3.smk"); playVideo("pad.smk"); } else if (ha->id == 14) { playVideo("fgo4.smk"); playVideo("bridge.smk"); } else if (ha->id == 15) { playVideo("fgo5.smk"); playVideo("pilldie.smk"); } else if (ha->id == 16) { playVideo("fgo6.smk"); playVideo("bikebust.smk"); } else if (ha->id == 17) { playVideo("fgo7.smk"); playVideo("statue.smk"); } else if (ha->id == 18) { playVideo("fgo8.smk"); playVideo("junkout.smk"); } else if (ha->id == 19) { playVideo("fgo9.smk"); break; } playVideo("fclipin2.smk", true); } }