MADS: Implement scene 318, some renaming

This commit is contained in:
Strangerke 2014-04-21 20:00:32 +02:00
parent ed4cedd816
commit 034773fda7
5 changed files with 632 additions and 7 deletions

View File

@ -125,6 +125,8 @@ SceneLogic *SceneFactory::createScene(MADSEngine *vm) {
return new Scene313(vm);
case 316:
return new Scene316(vm);
case 318:
return new Scene318(vm);
// Scene group #8
case 804:

View File

@ -485,7 +485,7 @@ void Scene307::handlePrisonerEncounter() {
}
}
void Scene307::handlePrisonerSpeech(int firstQuoteId, int number, long time) {
void Scene307::handlePrisonerSpeech(int firstQuoteId, int number, long timeout) {
int height = number * 14;
int posY;
@ -500,7 +500,7 @@ void Scene307::handlePrisonerSpeech(int firstQuoteId, int number, long time) {
int quoteId = firstQuoteId;
for (int count = 0; count < number; count++) {
_game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON;
_scene->_kernelMessages.add(Common::Point(5, posY), 0xFDFC, 0, 81, time, _game.getQuote(quoteId));
_scene->_kernelMessages.add(Common::Point(5, posY), 0xFDFC, 0, 81, timeout, _game.getQuote(quoteId));
posY += 14;
quoteId++;
}
@ -2282,6 +2282,592 @@ void Scene316::actions() {
}
/*------------------------------------------------------------------------*/
void Scene318::setup() {
setPlayerSpritesPrefix();
setAAName();
}
void Scene318::handleDialog() {
int temp;
if (!_game._trigger) {
_game._player._stepEnabled = false;
handleRexDialogs(_action._activeAction._verbId);
} else if (_game._trigger == 2) {
temp = _globals._sequenceIndexes[2];
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, 1);
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 1);
_scene->_sequences.setMsgPosition(_globals._sequenceIndexes[2], Common::Point(142, 121));
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[2], temp);
_vm->_sound->command(3);
_scene->_userInterface.setup(kInputLimitedSentences);
_game._player._stepEnabled = true;
} else {
if (_action._activeAction._verbId < 0x19C)
warning("TODO: sub71B9E(&dialog1, _action._activeAction._verbId, false);");
switch (_action._activeAction._verbId) {
case 0x191:
handleInternDialog(0x19E, 2, 9999999);
warning("TODO: sub71B9E(&dialog1, 0x192, true);");
break;
case 0x192:
handleInternDialog(0x1A0, 5, 9999999);
warning("TODO: sub71B9E(&dialog1, 0x193, true);");
break;
case 0x193:
handleInternDialog(0x1A5, 4, 9999999);
warning("TODO: sub71B9E(&dialog1, 0x194, true);");
break;
case 0x194:
handleInternDialog(0x1A9, 6, 9999999);
warning("TODO: sub71B9E(&dialog1, 0x195, true);");
warning("TODO: sub71B9E(&dialog1, 0x196, true);");
warning("TODO: sub71B9E(&dialog1, 0x19D, false);");
break;
case 0x195:
handleInternDialog(0x1AF, 7, 9999999);
warning("TODO: if (!sub71C16(&_dialog1, 0x196))");
warning("TODO: \tsub71B9E(&dialog1, 0x197, true);");
break;
case 0x196:
handleInternDialog(0x1B6, 5, 9999999);
warning("TODO: if (!sub71C16(&_dialog1, 0x195))");
warning("TODO: \tsub71B9E(&dialog1, 0x197, true);");
break;
case 0x197:
handleInternDialog(0x1BB, 5, 9999999);
break;
case 0x198:
handleInternDialog(0x1C0, 5, 9999999);
warning("TODO: sub71B9E(&dialog1, 0x19A, true);");
break;
case 0x199:
handleInternDialog(0x1C5, 3, 9999999);
break;
case 0x19A:
handleInternDialog(0x1C8, 5, 9999999);
warning("TODO: sub71B9E(&dialog1, 0x19B, true);");
break;
case 0x19B:
handleInternDialog(0x1CD, 3, 9999999);
break;
case 0x19C:
case 0x19D:
_scene->_sequences.remove(_globals._sequenceIndexes[2]);
_globals._sequenceIndexes[2] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[2], false, 8, 1, 0, 0);
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 1);
_scene->_sequences.setMsgPosition(_globals._sequenceIndexes[2], Common::Point(142, 121));
_scene->_sequences.setAnimRange(_globals._sequenceIndexes[2], 6, 8);
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[2], SEQUENCE_TRIGGER_EXPIRE, 0, 2);
_dialogFl = false;
handleInternDialog(0x1D0, 1, 120);
warning("TODO: if ((sub71C16(&_dialog1, 0) == 1) || (_action._activeAction._verbId == 0x19D)) {");
_explosionFl = true;
_internCounter = 3420;
// }
break;
}
if (_action._activeAction._verbId < 0x19C) {
warning("TODO: talk_init(&dialog1);");
_game._player._stepEnabled = true;
}
}
}
void Scene318::handleRexDialogs(int quote) {
_scene->_kernelMessages.reset();
Common::String curQuote = _game.getQuote(quote);
if (_vm->_font->getWidth(curQuote, _scene->_textSpacing) > 200) {
Common::String subQuote1;
_game.splitQuote(curQuote, subQuote1, _subQuote2);
_scene->_kernelMessages.add(Common::Point(138, 59), 0x1110, 32, 0, 240, subQuote1);
_scene->_kernelMessages.add(Common::Point(138, 73), 0x1110, 32, 1, 180, _subQuote2);
} else
_scene->_kernelMessages.add(Common::Point(138, 73), 0x1110, 32, 1, 120, curQuote);
}
void Scene318::handleInternDialog(int quoteId, int quoteNum, uint32 timeout) {
int height = quoteNum * 14;
int posY;
if (height < 85)
posY = 87 - height;
else
posY = 2;
int curQuoteId= quoteId;
int maxWidth = 0;
for (int i = 0; i < quoteNum; i++) {
maxWidth = MAX(maxWidth, _vm->_font->getWidth(_game.getQuote(curQuoteId), -1));
curQuoteId++;
}
int posX = MIN(319 - maxWidth, 178 - (maxWidth >> 1));
curQuoteId = quoteId;
_scene->_kernelMessages.reset();
_internTalkingFl = true;
for (int i = 0; i < quoteNum; i++) {
_game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON;
_scene->_sequences.addTimer(180, 63);
_scene->_kernelMessages.add(Common::Point(posX, posY), 0xFDFC, 0, 0, timeout, _game.getQuote(curQuoteId));
posY += 14;
curQuoteId++;
}
}
void Scene318::enter() {
_globals._spriteIndexes[1] = _scene->_sprites.addSprites(formAnimName('x', 0));
_globals._spriteIndexes[3] = _scene->_sprites.addSprites(formAnimName('k', -1));
if (_globals[kAfterHavoc]) {
_scene->loadAnimation(formAnimName('f', -1));
_scene->_activeAnimation->_resetFlag = true;
} else if (!_globals[kHasSeenProfPyro]) {
_scene->_hotspots.activate(0x3A2, false);
_scene->_hotspots.activate(0x3A1, false);
_scene->_hotspots.activate(0x165, false);
}
if (_game._objects.isInRoom(OBJ_SCALPEL)) {
_globals._sequenceIndexes[3] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[3], false, 6, 0, 0, 120);
_scene->_sequences.setDepth(_globals._sequenceIndexes[3], 4);
_scene->_dynamicHotspots.add(0x12C, VERB_TAKE, _globals._sequenceIndexes[3], Common::Rect(0, 0, 0, 0));
}
if (_scene->_priorSceneId == 357)
_game._player._playerPos = Common::Point(15, 110);
else if (_scene->_priorSceneId != -2)
_game._player._playerPos = Common::Point(214, 152);
warning("TODO: sub71A50(&dialog1, 0x47, 0x191, 0x192, 0x193, 0x194, 0x195, 0x196, 0x197, 0x198, 0x199, 0x19A, 0x19B, 0x19C, 0x19D, 0);");
if (!_game._visitedScenes._sceneRevisited) {
warning("TODO: sub71B18(&dialog1, 0x191, 0x198, 0x199, 0x19C, 0);");
warning("TODO: if (Debugger_widepipe_ctr >= 2)");
warning("TODO: \tsub71B9E(&dialog1, 0x19D, -1);");
}
if (_scene->_priorSceneId == 307) {
_game._player._visible = false;
_game._player._stepEnabled = false;
_scene->loadAnimation(formAnimName('a', -1), 60);
_animMode = 1;
}
_lastFrame = 0;
_scene->_hotspots.activate(0x307, false);
if (_scene->_priorSceneId != -2) {
_dialogFl = false;
_internWalkingFl = false;
_counter= 0;
_internCounter= 0;
_internVisibleFl = true;
_explosionFl = false;
}
_game.loadQuoteSet(0x18C, 0x18D, 0x18E, 0x18F, 0x191, 0x192, 0x193, 0x194, 0x195, 0x196,
0x197, 0x198, 0x199, 0x19A, 0x19B, 0x19C, 0x19E, 0x19E, 0x1A0, 0x1A1, 0x1A2, 0x1A3,
0x1A4, 0x1A5, 0x1A6, 0x1A7, 0x1A8, 0x1A9, 0x1AA, 0x1AB, 0x1AC, 0x1AD, 0x1AE, 0x1AF,
0x1B0, 0x1B1, 0x1B2, 0x1B3, 0x1B4, 0x1B5, 0x1B6, 0x1B7, 0x1B8, 0x1B9, 0x1BA, 0x1BB,
0x1BC, 0x1BD, 0x1BE, 0x1BF, 0x1C0, 0x1C1, 0x1C2, 0x1C3, 0x1C4, 0x1C5, 0x1C6, 0x1C7,
0x1C8, 0x1C9, 0x1CA, 0x1CB, 0x1CC, 0x1CD, 0x1CE, 0x1CF, 0x1D0, 0x1D1, 0x1D2, 0x1D3,
0x190, 0x19D, 0);
if ((_scene->_priorSceneId== -2) || (((_scene->_priorSceneId == 318) || (_scene->_priorSceneId == -1)) && (!_globals[kAfterHavoc]))) {
if (!_globals[kAfterHavoc]) {
_game._player._visible = false;
_globals._spriteIndexes[2] = _scene->_sprites.addSprites(formAnimName('g', -1));
_animMode = 2;
if (_game._visitedScenes.exists(319) || !_internVisibleFl) {
_internVisibleFl = false;
_dialogFl = false;
} else {
_scene->loadAnimation(formAnimName('b', -1), 61);
_scene->_hotspots.activate(0x307, true);
}
if (_dialogFl) {
warning("TODO: talk_init(&dialog1);");
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, 8);
} else
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, 1);
_scene->_sequences.setMsgPosition(_globals._sequenceIndexes[2], Common::Point(142, 121));
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 1);
}
}
if (_scene->_priorSceneId == 319) {
_game._player._stepEnabled = false;
_game._player._visible = false;
_animMode = 4;
if (!_globals[kHasSeenProfPyro]) {
_scene->loadAnimation(formAnimName('d', -1), 64);
_globals[kHasSeenProfPyro] = true;
} else {
_scene->loadAnimation(formAnimName('e', -1), 64);
}
}
_internTalkingFl = false;
_vm->_palette->setEntry(252, 63, 63, 10);
_vm->_palette->setEntry(253, 45, 45, 05);
_dropTimer = _globals._frameTime;
sceneEntrySound();
if (_dialogFl)
_vm->_sound->command(15);
}
void Scene318::step() {
if ((_scene->_activeAnimation != nullptr) && (_animMode == 2)) {
if (_lastFrame != _scene->_activeAnimation->getCurrentFrame()) {
_lastFrame = _scene->_activeAnimation->getCurrentFrame();
int nextFrame = -1;
switch (_lastFrame) {
case 20:
case 30:
case 40:
case 50:
case 60:
case 70:
case 80:
case 90:
case 100:
case 110:
case 120:
case 130:
case 140:
case 149:
if (_internWalkingFl) {
nextFrame = 149;
} else if (_internTalkingFl) {
nextFrame = 149;
} else if (_lastFrame == 149) {
nextFrame = 4;
}
break;
case 151:
if (_internWalkingFl)
nextFrame = 183;
break;
case 167:
case 184:
if (_internWalkingFl) {
nextFrame = 184;
} else if (!_internTalkingFl) {
nextFrame = 0;
} else if (_vm->getRandomNumber(1, 100) <= 50) {
nextFrame = 151;
} else {
nextFrame = 167;
}
if (nextFrame == 184) {
handleInternDialog(0x1D1, 3, 240);
_scene->_hotspots.activate(0x307, false);
_internVisibleFl = false;
}
break;
}
if ((nextFrame >= 0) && (nextFrame != _scene->_activeAnimation->getCurrentFrame())) {
_scene->_activeAnimation->setCurrentFrame(nextFrame);
_lastFrame = nextFrame;
}
}
}
switch (_game._trigger) {
case 60:
_vm->_sound->command(3);
_animMode = 2;
_scene->_reloadSceneFlag= true;
break;
case 61:
_counter = 0;
break;
case 62:
_scene->_nextSceneId = 319;
break;
case 63:
_internTalkingFl = false;
break;
case 64:
_vm->_sound->command(3);
_scene->_nextSceneId = 307;
break;
}
uint32 tmpFrame = _vm->_events->getFrameCounter();
uint32 diffFrame = tmpFrame - _lastFrameCounter;
_lastFrameCounter = tmpFrame;
if ((_animMode == 2) && !_internVisibleFl && _game._player._stepEnabled) {
if ((diffFrame >= 0) && (diffFrame <= 4))
_counter += diffFrame;
else
_counter++;
int extraCounter = _game._objects.isInInventory(OBJ_SCALPEL) ? 900 : 0;
if (_counter + extraCounter >= 1800) {
_scene->freeAnimation();
_game._player._stepEnabled = false;
_scene->loadAnimation(formAnimName('c', -1), 62);
_animMode = 3;
}
} else if ((_animMode == 2) && _explosionFl && _internVisibleFl && !_dialogFl
&& !_internWalkingFl && (_game._screenObjects._inputMode != 1)) {
if ((diffFrame >= 0) && (diffFrame <= 4))
_internCounter += diffFrame;
else
_internCounter++;
if (_internCounter >= 3600) {
_vm->_sound->command(59);
warning("TODO: shake_countdown = 20;");
_internWalkingFl = true;
}
}
if ((_globals._frameTime - _dropTimer) > 600) {
_vm->_sound->command(51);
_globals._sequenceIndexes[1] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[1], false, 14, 1, 0, 0);
_scene->_sequences.setDepth(_globals._sequenceIndexes[1], 10);
_dropTimer = _globals._frameTime;
}
}
void Scene318::preActions() {
if (_game._player._needToWalk)
_game._player._needToWalk = _game._player._visible;
if (_action.isAction(0x1AD, 0x2BA))
_game._player._walkOffScreenSceneId = 357;
}
void Scene318::actions() {
if (_game._screenObjects._inputMode == 1) {
handleDialog();
_action._inProgress = false;
return;
}
if (_action.isAction(VERB_TALKTO, 0x307)) {
switch (_game._trigger) {
case 0: {
_dialogFl = true;
_vm->_sound->command(15);
_game._player._stepEnabled = false;
handleRexDialogs(_vm->getRandomNumber(0x18C, 0x18E));
_scene->_sequences.remove(_globals._sequenceIndexes[2]);
_globals._sequenceIndexes[2] = _scene->_sequences.addSpriteCycle(_globals._spriteIndexes[2], false, 8, 1, 0, 80);
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 1);
_scene->_sequences.setMsgPosition(_globals._sequenceIndexes[2], Common::Point(142, 121));
_scene->_sequences.setAnimRange(_globals._sequenceIndexes[2], 6, 8);
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[2], SEQUENCE_TRIGGER_EXPIRE, 0, 2);
}
break;
case 1:
_game._player._stepEnabled = true;
handleInternDialog(0x18F, 1, 9999999);
warning("TODO: talk_init(&dialog1);");
break;
case 2: {
int oldIdx = _globals._sequenceIndexes[2];
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, 8);
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 1);
_scene->_sequences.setMsgPosition(_globals._sequenceIndexes[2], Common::Point(142, 121));
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[2], oldIdx);
}
break;
default:
break;
}
_action._inProgress = false;
return;
}
if (_action.isAction(VERB_TAKE, 0x12C) && (_game._objects.isInRoom(OBJ_SCALPEL) || _game._trigger)) {
switch (_game._trigger) {
case 0:
_game._player._stepEnabled = false;
_scene->_sequences.remove(_globals._sequenceIndexes[2]);
_globals._sequenceIndexes[2] = _scene->_sequences.startReverseCycle(_globals._spriteIndexes[2], false, 8, 2, 0, 80);
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 1);
_scene->_sequences.setMsgPosition(_globals._sequenceIndexes[2], Common::Point(142, 121));
_scene->_sequences.setAnimRange(_globals._sequenceIndexes[2], 2, 5);
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[2], SEQUENCE_TRIGGER_SPRITE, 5, 1);
_scene->_sequences.addSubEntry(_globals._sequenceIndexes[2], SEQUENCE_TRIGGER_EXPIRE, 0, 2);
break;
case 1:
if (_internVisibleFl)
handleInternDialog(0x190, 1, 120);
else {
_game._objects.addToInventory(OBJ_SCALPEL);
_vm->_dialogs->showItem(OBJ_SCALPEL, 0x7C5D);
_scene->_sequences.remove(_globals._sequenceIndexes[3]);
}
break;
case 2: {
int oldIdx = _globals._sequenceIndexes[2];
_globals._sequenceIndexes[2] = _scene->_sequences.startCycle(_globals._spriteIndexes[2], false, 1);
_scene->_sequences.setDepth(_globals._sequenceIndexes[2], 1);
_scene->_sequences.setMsgPosition(_globals._sequenceIndexes[2], Common::Point(142, 121));
_scene->_sequences.updateTimeout(_globals._sequenceIndexes[2], oldIdx);
_scene->_sequences.addTimer(60, 3);
}
break;
case 3:
_game._player._stepEnabled = true;
break;
}
_action._inProgress = false;
return;
}
if (_game._player._visible) {
if (_action.isAction(0x1AD, 0x2B3)) {
_scene->_nextSceneId = 407;
_action._inProgress = false;
return;
}
if (_action.isAction(VERB_TAKE, 0x165)) {
if (_game._objects.isInRoom(OBJ_AUDIO_TAPE)) {
_vm->_dialogs->showItem(OBJ_AUDIO_TAPE, 0x7C5B);
_game._objects.addToInventory(OBJ_AUDIO_TAPE);
} else
_vm->_dialogs->show(0x7C5A);
_action._inProgress = false;
return;
}
if (_action.isAction(VERB_LOOK, 0x165)) {
if (_game._objects.isInRoom(OBJ_AUDIO_TAPE))
_vm->_dialogs->show(0x7C59);
else
_vm->_dialogs->show(0x7C5A);
_action._inProgress = false;
return;
}
if (_action.isAction(0x242, 0x488)) {
_vm->_dialogs->show(0x7C57);
_action._inProgress = false;
return;
}
if (_action.isAction(VERB_LOOK, 0x2D9)) {
_vm->_dialogs->show(0x7C4F);
_action._inProgress = false;
return;
}
if (_action.isAction(VERB_LOOK, 0x308)) {
_vm->_dialogs->show(0x7C51);
_action._inProgress = false;
return;
}
} else { // Not visible
if (_action.isAction(VERB_LOOK, 0x2D9)) {
_vm->_dialogs->show(0x7C4E);
_action._inProgress = false;
return;
}
if (_action.isAction(VERB_LOOK, 0x308)) {
_vm->_dialogs->show(0x7C50);
_action._inProgress = false;
return;
}
}
if (_action.isAction(VERB_LOOK, 0x18D))
_vm->_dialogs->show(0x7C42);
else if (_action.isAction(VERB_LOOK, 0x89))
_vm->_dialogs->show(0x7C43);
else if (_action.isAction(VERB_LOOK, 0x2BA))
_vm->_dialogs->show(0x7C44);
else if (_action.isAction(VERB_LOOK, 0x2B3))
_vm->_dialogs->show(0x7C45);
else if (_action.isAction(VERB_LOOK, 0x2CB))
_vm->_dialogs->show(0x7C46);
else if (_action.isAction(VERB_LOOK, 0x216))
_vm->_dialogs->show(0x7C47);
else if (_action.isAction(VERB_LOOK, 0x319))
_vm->_dialogs->show(0x7C48);
else if (_action.isAction(VERB_LOOK, 0x477))
_vm->_dialogs->show(0x7C49);
else if (_action.isAction(VERB_LOOK, 0xE2))
_vm->_dialogs->show(0x7C4A);
else if (_action.isAction(VERB_LOOK, 0x2C9))
_vm->_dialogs->show(0x7C4B);
else if (_action.isAction(VERB_LOOK, 0x2C7))
_vm->_dialogs->show(0x7C4C);
else if (_action.isAction(VERB_LOOK, 0x2C8))
_vm->_dialogs->show(0x7C4D);
else if (_action.isAction(VERB_OPEN, 0x2C9))
_vm->_dialogs->show(0x7C55);
else if (_action.isAction(VERB_LOOK, 0x307))
_vm->_dialogs->show(0x7C56);
else if (_action.isAction(VERB_LOOK, 0x3A1))
_vm->_dialogs->show(0x7C58);
else if (_action.isAction(VERB_LOOK, 0x3A2))
_vm->_dialogs->show(0x7C5C);
else if (_action._lookFlag) {
if (_game._player._visible || _game._objects.isInInventory(OBJ_SCALPEL))
_vm->_dialogs->show(0x7C54);
else if (_internVisibleFl)
_vm->_dialogs->show(0x7C52);
else
_vm->_dialogs->show(0x7C53);
} else
return;
_action._inProgress = false;
}
/*------------------------------------------------------------------------*/
} // End of namespace Nebular

View File

@ -142,7 +142,7 @@ private:
void handlePrisonerDialog();
void handlePrisonerEncounter();
void setDialogNode(int node);
void handlePrisonerSpeech(int firstQuoteId, int number, long time);
void handlePrisonerSpeech(int firstQuoteId, int number, long timeout);
public:
Scene307(MADSEngine *vm) : Scene3xx(vm) {}
@ -245,6 +245,43 @@ public:
virtual void actions();
virtual void postActions() {};
};
class Scene318: public Scene3xx {
private:
uint32 _dropTimer;
int _lastFrame;
int _animMode;
int _internCounter;
int _counter;
bool _dialogFl;
bool _internTalkingFl;
bool _internWalkingFl;
bool _internVisibleFl;
bool _explosionFl;
uint32 _lastFrameCounter;
Common::String _subQuote2;
// dialog1
void handleDialog();
void handleRexDialogs(int quote);
void handleInternDialog(int quoteId, int quoteNum, uint32 timeout);
public:
Scene318(MADSEngine *vm) : Scene3xx(vm) {}
virtual void setup();
virtual void enter();
virtual void step();
virtual void preActions();
virtual void actions();
virtual void postActions() {};
};
} // End of namespace Nebular
} // End of namespace MADS

View File

@ -142,7 +142,7 @@ int SequenceList::add(int spriteListIndex, bool flipped, int frameIndex, int tri
return seqIndex;
}
int SequenceList::addTimer(int time, int abortVal) {
int SequenceList::addTimer(int timeout, int abortVal) {
Scene &scene = _vm->_game->_scene;
uint seqIndex;
for (seqIndex = 0; seqIndex < _entries.size(); ++seqIndex) {
@ -154,9 +154,9 @@ int SequenceList::addTimer(int time, int abortVal) {
SequenceEntry &se = _entries[seqIndex];
se._active = true;
se._spritesIndex = -1;
se._numTicks = time;
se._numTicks = timeout;
se._extraTicks = 0;
se._timeout = scene._frameStartTime + time;
se._timeout = scene._frameStartTime + timeout;
se._triggerCountdown = true;
se._doneFlag = false;
se._entries._count = 0;

View File

@ -104,7 +104,7 @@ public:
int extraTicks, int numTicks, int msgX, int msgY, bool nonFixed, int scale, int depth,
int frameInc, SpriteAnimType animType, int numSprites, int frameStart);
int addTimer(int time, int abortVal);
int addTimer(int timeout, int abortVal);
void remove(int seqIndex);
void setSpriteSlot(int seqIndex, SpriteSlot &spriteSlot);
bool loadSprites(int seqIndex);