void AGOSEngine_Simon2::playSpeech(uint16 speech_id, uint16 vgaSpriteId) { if (speech_id == 0xFFFF) { if (_subtitles) return; if (!getBitFlag(14) && !getBitFlag(28)) { setBitFlag(14, true); _variableArray[100] = 5; animate(4, 1, 30, 0, 0, 0); waitForSync(130); } _skipVgaWait = true; } else { if (getGameType() == GType_SIMON2 && _subtitles && _language != Common::HE_ISR) { loadVoice(speech_id); return; } if (_subtitles && _scriptVar2) { animate(4, 2, 5, 0, 0, 0); waitForSync(205); stopAnimateSimon2(2,5); } stopAnimateSimon2(2, vgaSpriteId + 2); loadVoice(speech_id); animate(4, 2, vgaSpriteId + 2, 0, 0, 0); } }
void AGOSEngine_Simon1::playSpeech(uint16 speech_id, uint16 vgaSpriteId) { if (speech_id == 9999) { if (_subtitles) return; if (!getBitFlag(14) && !getBitFlag(28)) { setBitFlag(14, true); _variableArray[100] = 15; animate(4, 1, 130, 0, 0, 0); waitForSync(130); } _skipVgaWait = true; } else { if (_subtitles && _scriptVar2) { animate(4, 2, 204, 0, 0, 0); waitForSync(204); stopAnimate(204); } if (vgaSpriteId < 100) stopAnimate(201 + vgaSpriteId); loadVoice(speech_id); if (vgaSpriteId < 100) animate(4, 2, 201 + vgaSpriteId, 0, 0, 0); } }
void AGOSEngine::o_waitSync() { // 119: wait vga uint var = getVarOrWord(); _scriptVar2 = (var == 200); if (var != 200 || !_skipVgaWait) waitForSync(var); _skipVgaWait = false; }
void AGOSEngine::skipSpeech() { _sound->stopVoice(); if (!getBitFlag(28)) { setBitFlag(14, true); if (getGameType() == GType_FF) { _variableArray[103] = 5; animate(4, 2, 13, 0, 0, 0); waitForSync(213); stopAnimateSimon2(2, 1); } else if (getGameType() == GType_SIMON2) { _variableArray[100] = 5; animate(4, 1, 30, 0, 0, 0); waitForSync(130); stopAnimateSimon2(2, 1); } else { _variableArray[100] = 15; animate(4, 1, 130, 0, 0, 0); waitForSync(130); stopAnimate(1); } } }
void AGOSEngine_Waxworks::printBox() { uint16 BoxSize; *_boxBufferPtr = 0; _linePtrs[0] = _boxBuffer; if (_boxCR == 0) _boxLineCount++; stopAnimate(105); BoxSize = getBoxSize(); _variableArray[53] = BoxSize; animate(3, 1, 100, 0, 0, 0); changeWindow(5); switch (BoxSize) { case 1: _textWindow->x = 10; _textWindow->y = 163; _textWindow->width = 20; _textWindow->height = 1; _textWindow->textMaxLength = 26; break; case 2: _textWindow->x = 8; _textWindow->y = 160; _textWindow->width = 24; _textWindow->height = 2; _textWindow->textMaxLength = 32; break; case 3: _textWindow->x = 6; _textWindow->y = 156; _textWindow->width = 28; _textWindow->height = 3; _textWindow->textMaxLength = 37; break; case 4: _textWindow->x = 4; _textWindow->y = 153; _textWindow->width = 32; _textWindow->height = 4; _textWindow->textMaxLength = 42; break; case 5: _textWindow->x = 2; _textWindow->y = 150; _textWindow->width = 36; _textWindow->height = 5; _textWindow->textMaxLength = 48; break; default:_textWindow->x = 1; _textWindow->y = 147; _textWindow->width = 38; _textWindow->height = 6; _textWindow->textMaxLength = 50; break; } _textWindow->textColumn = 0; _textWindow->textRow = 0; _textWindow->textColumnOffset = 0; _textWindow->textLength = 0; justifyStart(); waitForSync(99); _boxBufferPtr = _boxBuffer; while (*_boxBufferPtr) justifyOutPut(*_boxBufferPtr++); _boxLineCount = 0; _boxBufferPtr = _boxBuffer; _lineCounts[0] = 0; _lineCounts[1] = 0; _lineCounts[2] = 0; _lineCounts[3] = 0; _lineCounts[4] = 0; _lineCounts[5] = 0; changeWindow(0); }