diff options
author | Paul Gilbert | 2014-04-15 23:51:41 -0400 |
---|---|---|
committer | Paul Gilbert | 2014-04-15 23:51:41 -0400 |
commit | 0b340a034330fd5124b1534544a8ef9500349411 (patch) | |
tree | 8d4bf80422ef360a78ecc41d8fc4aa088b449bc6 | |
parent | dea63c9fe8b64c30464119ffbfbc3491e6f158cc (diff) | |
download | scummvm-rg350-0b340a034330fd5124b1534544a8ef9500349411.tar.gz scummvm-rg350-0b340a034330fd5124b1534544a8ef9500349411.tar.bz2 scummvm-rg350-0b340a034330fd5124b1534544a8ef9500349411.zip |
MADS: Fix depth issues with sitting in chair in scene 101
-rw-r--r-- | engines/mads/action.h | 6 | ||||
-rw-r--r-- | engines/mads/animation.cpp | 2 | ||||
-rw-r--r-- | engines/mads/game.cpp | 6 | ||||
-rw-r--r-- | engines/mads/messages.cpp | 2 | ||||
-rw-r--r-- | engines/mads/msurface.cpp | 2 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes1.cpp | 6 | ||||
-rw-r--r-- | engines/mads/nebular/nebular_scenes2.cpp | 8 | ||||
-rw-r--r-- | engines/mads/scene.cpp | 16 | ||||
-rw-r--r-- | engines/mads/scene_data.cpp | 2 | ||||
-rw-r--r-- | engines/mads/sequence.cpp | 20 | ||||
-rw-r--r-- | engines/mads/sequence.h | 2 |
11 files changed, 36 insertions, 36 deletions
diff --git a/engines/mads/action.h b/engines/mads/action.h index 6b3f1ca3c2..599fb0e4f9 100644 --- a/engines/mads/action.h +++ b/engines/mads/action.h @@ -29,9 +29,9 @@ namespace MADS { enum TriggerMode { - KERNEL_TRIGGER_PARSER = 0, // Triggers parser - KERNEL_TRIGGER_DAEMON = 1, // Triggers step/daemon code - KERNEL_TRIGGER_PREPARE = 2 // Triggers preparser + SEQUENCE_TRIGGER_PARSER = 0, // Triggers parser + SEQUENCE_TRIGGER_DAEMON = 1, // Triggers step/daemon code + SEQUENCE_TRIGGER_PREPARE = 2 // Triggers preparser }; enum InterAwaiting { diff --git a/engines/mads/animation.cpp b/engines/mads/animation.cpp index 06eeaf8278..93cc72f613 100644 --- a/engines/mads/animation.cpp +++ b/engines/mads/animation.cpp @@ -590,7 +590,7 @@ void Animation::update() { _vm->_game->_trigger = _trigger; _vm->_game->_triggerMode = _triggerMode; - if (_triggerMode != KERNEL_TRIGGER_DAEMON) { + if (_triggerMode != SEQUENCE_TRIGGER_DAEMON) { // Copy the noun list scene._action._action = _actionDetails; } diff --git a/engines/mads/game.cpp b/engines/mads/game.cpp index a6650555ce..bf3822da09 100644 --- a/engines/mads/game.cpp +++ b/engines/mads/game.cpp @@ -57,8 +57,8 @@ Game::Game(MADSEngine *vm): _vm(vm), _surface(nullptr), _objects(vm), _aaName = "*I0.AA"; _priorFrameTimer = 0; _anyEmergency = false; - _triggerMode = KERNEL_TRIGGER_PARSER; - _triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _triggerMode = SEQUENCE_TRIGGER_PARSER; + _triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _winStatus = 0; _widepipeCtr = 0; @@ -238,7 +238,7 @@ void Game::sectionLoop() { _priorFrameTimer = _scene._frameStartTime; // Call the scene logic for entering the given scene - _triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _scene._sceneLogic->enter(); // Set player data diff --git a/engines/mads/messages.cpp b/engines/mads/messages.cpp index 3903b71766..46b05c1413 100644 --- a/engines/mads/messages.cpp +++ b/engines/mads/messages.cpp @@ -179,7 +179,7 @@ void KernelMessages::processText(int msgIndex) { _vm->_game->_trigger = msg._trigger; _vm->_game->_triggerMode = msg._abortMode; - if (_vm->_game->_triggerMode != KERNEL_TRIGGER_DAEMON) { + if (_vm->_game->_triggerMode != SEQUENCE_TRIGGER_DAEMON) { scene._action._activeAction = msg._actionDetails; } } diff --git a/engines/mads/msurface.cpp b/engines/mads/msurface.cpp index 8f40173f13..2c9d093877 100644 --- a/engines/mads/msurface.cpp +++ b/engines/mads/msurface.cpp @@ -516,7 +516,7 @@ int DepthSurface::getDepth(const Common::Point &pt) { return v >> bits; } else { if (pt.x < 0 || pt.y < 0 || pt.x >= this->w || pt.y >= this->h) - return 8; + return 0; return *getBasePtr(pt.x, pt.y) & 0xF; } diff --git a/engines/mads/nebular/nebular_scenes1.cpp b/engines/mads/nebular/nebular_scenes1.cpp index ec81b5f356..bb5229ef16 100644 --- a/engines/mads/nebular/nebular_scenes1.cpp +++ b/engines/mads/nebular/nebular_scenes1.cpp @@ -106,7 +106,7 @@ void Scene101::setup() { } void Scene101::sayDang() { - _game._triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _game._player._stepEnabled = false; switch (_game._trigger) { @@ -608,7 +608,7 @@ void Scene102::setup() { void Scene102::addRandomMessage() { _scene->_kernelMessages.reset(); - _game._triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; int quoteId = _vm->getRandomNumber(65, 69); _scene->_kernelMessages.add(Common::Point(0, 0), 0x1110, 34, 73, 120, _game.getQuote(quoteId)); _activeMsgFl = true; @@ -838,7 +838,7 @@ void Scene102::actions() { Common::String curQuote = _game.getQuote(quoteId); int width = _vm->_font->getWidth(curQuote, -1); _scene->_kernelMessages.reset(); - _game._triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _scene->_kernelMessages.add(Common::Point(210, 60), 0x1110, 0, 73, 120, curQuote); _scene->_kernelMessages.add(Common::Point(214 + width, 60), 0x1110, 0, 73, 120, _game.getQuote(64)); _activeMsgFl = true; diff --git a/engines/mads/nebular/nebular_scenes2.cpp b/engines/mads/nebular/nebular_scenes2.cpp index 36f291973b..96f6c6d400 100644 --- a/engines/mads/nebular/nebular_scenes2.cpp +++ b/engines/mads/nebular/nebular_scenes2.cpp @@ -455,7 +455,7 @@ void Scene202::enter() { void Scene202::setRandomKernelMessage() { int vocabId = _vm->getRandomNumber(92, 96); _scene->_kernelMessages.reset(); - _game._triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _scene->_kernelMessages.add(Common::Point(0, 0), 0x1110, 34, 70, 120, _game.getQuote(vocabId)); _activeMsgFl = true; } @@ -491,7 +491,7 @@ void Scene202::step() { _action._activeAction._verbId = VERB_LOOK; _action._activeAction._objectNameId = 39; _action._activeAction._indirectObjectId = 438; - _game._triggerSetupMode = KERNEL_TRIGGER_PARSER; + _game._triggerSetupMode = SEQUENCE_TRIGGER_PARSER; _scene->_sequences.addTimer(120, 2); _globals._abortVal = -1; } else if (_globals[kMeteorologistWatch] == 2) { @@ -3087,7 +3087,7 @@ void Scene209::actions() { if ((_action.isAction(NOUN_SHOOT) || _action.isAction(NOUN_HOSE_DOWN)) && _action.isAction(NOUN_MONKEY) && _action.isAction(NOUN_BLOWGUN) && _game._objects.isInInventory(OBJ_BLOWGUN) && _game._objects.isInInventory(OBJ_POISON_DARTS)) { if (_action.isAction(NOUN_SHOOT, NOUN_BLOWGUN, NOUN_MONKEY) && !_startShootingInTimerFl) { - _game._triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _scene->_sequences.addTimer(1, 231); _startShootingInTimerFl = true; _game._player._stepEnabled = false; @@ -3097,7 +3097,7 @@ void Scene209::actions() { } if (_action.isAction(NOUN_HOSE_DOWN, NOUN_BLOWGUN, NOUN_MONKEY) && !_startShootingInTimerFl) { - _game._triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _game._triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _scene->_sequences.addTimer(1, 228); _game._player._stepEnabled = false; _fallFl = true; diff --git a/engines/mads/scene.cpp b/engines/mads/scene.cpp index a112228859..948688e7a2 100644 --- a/engines/mads/scene.cpp +++ b/engines/mads/scene.cpp @@ -313,7 +313,7 @@ void Scene::doFrame() { flag = true; } - if (flag || (_vm->_game->_trigger && _vm->_game->_triggerMode == KERNEL_TRIGGER_PREPARE)) { + if (flag || (_vm->_game->_trigger && _vm->_game->_triggerMode == SEQUENCE_TRIGGER_PREPARE)) { doPreactions(); } @@ -324,7 +324,7 @@ void Scene::doFrame() { // Handle parser actions as well as game triggers if ((_action._inProgress && !player._moving && !player._needToWalk && (player._facing == player._turnToFacing) && !_vm->_game->_trigger) || - (_vm->_game->_trigger && (_vm->_game->_triggerMode == KERNEL_TRIGGER_PARSER))) { + (_vm->_game->_trigger && (_vm->_game->_triggerMode == SEQUENCE_TRIGGER_PARSER))) { doAction(); } @@ -442,11 +442,11 @@ void Scene::drawElements(ScreenTransition transitionType, bool surfaceFlag) { void Scene::doPreactions() { if (_vm->_game->_screenObjects._inputMode == kInputBuildingSentences || _vm->_game->_screenObjects._inputMode == kInputLimitedSentences) { - _vm->_game->_triggerSetupMode = KERNEL_TRIGGER_PREPARE; + _vm->_game->_triggerSetupMode = SEQUENCE_TRIGGER_PREPARE; _action.checkAction(); _sceneLogic->preActions(); - if (_vm->_game->_triggerMode == KERNEL_TRIGGER_PREPARE) + if (_vm->_game->_triggerMode == SEQUENCE_TRIGGER_PREPARE) _vm->_game->_trigger = 0; } } @@ -454,7 +454,7 @@ void Scene::doPreactions() { void Scene::doAction() { bool flag = false; - _vm->_game->_triggerSetupMode = KERNEL_TRIGGER_PARSER; + _vm->_game->_triggerSetupMode = SEQUENCE_TRIGGER_PARSER; if ((_action._inProgress || _vm->_game->_trigger) && !_action._savedFields._commandError) { _sceneLogic->actions(); flag = !_action._inProgress; @@ -491,17 +491,17 @@ void Scene::doAction() { } _action._inProgress = false; - if (_vm->_game->_triggerMode == KERNEL_TRIGGER_PARSER) + if (_vm->_game->_triggerMode == SEQUENCE_TRIGGER_PARSER) _vm->_game->_trigger = 0; } void Scene::doSceneStep() { - _vm->_game->_triggerSetupMode = KERNEL_TRIGGER_DAEMON; + _vm->_game->_triggerSetupMode = SEQUENCE_TRIGGER_DAEMON; _sceneLogic->step(); _vm->_game->_sectionHandler->step(); _vm->_game->step(); - if (_vm->_game->_triggerMode == KERNEL_TRIGGER_DAEMON) + if (_vm->_game->_triggerMode == SEQUENCE_TRIGGER_DAEMON) _vm->_game->_trigger = 0; } diff --git a/engines/mads/scene_data.cpp b/engines/mads/scene_data.cpp index a82f65a6f0..6eb6be2c1e 100644 --- a/engines/mads/scene_data.cpp +++ b/engines/mads/scene_data.cpp @@ -41,7 +41,7 @@ KernelMessage::KernelMessage() { _frameTimer = 0; _timeout = 0; _trigger = 0; - _abortMode = KERNEL_TRIGGER_PARSER; + _abortMode = SEQUENCE_TRIGGER_PARSER; _actionDetails._verbId = VERB_NONE; _actionDetails._objectNameId = 0; _actionDetails._indirectObjectId = 0; diff --git a/engines/mads/sequence.cpp b/engines/mads/sequence.cpp index 601d07d478..3c2bab5329 100644 --- a/engines/mads/sequence.cpp +++ b/engines/mads/sequence.cpp @@ -47,13 +47,13 @@ SequenceEntry::SequenceEntry() { _field22 = 0; _triggerCountdown = 0; _doneFlag = 0; - _triggerMode = KERNEL_TRIGGER_DAEMON; + _triggerMode = SEQUENCE_TRIGGER_DAEMON; _numTicks = 0; _extraTicks = 0; _timeout = 0; _entries._count = 0; - Common::fill(&_entries._mode[0], &_entries._mode[SEQUENCE_ENTRY_SUBSET_MAX], KERNEL_TRIGGER_EXPIRE); + Common::fill(&_entries._mode[0], &_entries._mode[SEQUENCE_ENTRY_SUBSET_MAX], SEQUENCE_TRIGGER_EXPIRE); Common::fill(&_entries._frameIndex[0], &_entries._frameIndex[SEQUENCE_ENTRY_SUBSET_MAX], 0); Common::fill(&_entries._trigger[0], &_entries._trigger[SEQUENCE_ENTRY_SUBSET_MAX], 0); } @@ -93,7 +93,7 @@ bool SequenceList::addSubEntry(int index, SequenceTrigger mode, int frameIndex, } int SequenceList::add(int spriteListIndex, bool flipped, int frameIndex, int triggerCountdown, int delayTicks, int extraTicks, int numTicks, - int msgX, int msgY, bool nonFixed, char scale, uint8 depth, int frameInc, SpriteAnimType animType, int numSprites, + int msgX, int msgY, bool nonFixed, int scale, int depth, int frameInc, SpriteAnimType animType, int numSprites, int frameStart) { Scene &scene = _vm->_game->_scene; @@ -162,7 +162,7 @@ int SequenceList::addTimer(int time, int abortVal) { se._entries._count = 0; se._triggerMode = _vm->_game->_triggerSetupMode; se._actionNouns = _vm->_game->_scene._action._activeAction; - addSubEntry(seqIndex, KERNEL_TRIGGER_EXPIRE, 0, abortVal); + addSubEntry(seqIndex, SEQUENCE_TRIGGER_EXPIRE, 0, abortVal); return seqIndex; } @@ -305,14 +305,14 @@ bool SequenceList::loadSprites(int seqIndex) { for (int i = 0; i < seqEntry._entries._count; ++i) { switch (seqEntry._entries._mode[i]) { - case KERNEL_TRIGGER_EXPIRE: - case KERNEL_TRIGGER_LOOP: - if (((seqEntry._entries._mode[i] == KERNEL_TRIGGER_EXPIRE) && seqEntry._doneFlag) || - ((seqEntry._entries._mode[i] == KERNEL_TRIGGER_LOOP) && result)) + case SEQUENCE_TRIGGER_EXPIRE: + case SEQUENCE_TRIGGER_LOOP: + if (((seqEntry._entries._mode[i] == SEQUENCE_TRIGGER_EXPIRE) && seqEntry._doneFlag) || + ((seqEntry._entries._mode[i] == SEQUENCE_TRIGGER_LOOP) && result)) idx = i; break; - case KERNEL_TRIGGER_SPRITE: { + case SEQUENCE_TRIGGER_SPRITE: { int v = seqEntry._entries._frameIndex[i]; if ((v == seqEntry._frameIndex) || (v == 0)) idx = i; @@ -328,7 +328,7 @@ bool SequenceList::loadSprites(int seqIndex) { _vm->_game->_trigger = seqEntry._entries._trigger[idx]; _vm->_game->_triggerMode = seqEntry._triggerMode; - if (seqEntry._triggerMode != KERNEL_TRIGGER_DAEMON) + if (seqEntry._triggerMode != SEQUENCE_TRIGGER_DAEMON) scene._action._activeAction = seqEntry._actionNouns; } diff --git a/engines/mads/sequence.h b/engines/mads/sequence.h index 53a8afe071..6d59175ba2 100644 --- a/engines/mads/sequence.h +++ b/engines/mads/sequence.h @@ -101,7 +101,7 @@ public: void clear(); bool addSubEntry(int index, SequenceTrigger mode, int frameIndex, int trigger); int add(int spriteListIndex, bool flipped, int frameIndex, int triggerCountdown, int delayTicks, - int extraTicks, int numTicks, int msgX, int msgY, bool nonFixed, char scale, uint8 depth, + 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); |