diff options
author | Andrew Kurushin | 2005-05-08 14:04:06 +0000 |
---|---|---|
committer | Andrew Kurushin | 2005-05-08 14:04:06 +0000 |
commit | a81b093e65f90ea70c5b07676a1fcc46d3e95a5e (patch) | |
tree | e0fced8f17e32e28fe24a1c948d2a74e6a039699 /saga/actor.cpp | |
parent | 781472641e32d1999660caa54c27b218c5b4298d (diff) | |
download | scummvm-rg350-a81b093e65f90ea70c5b07676a1fcc46d3e95a5e.tar.gz scummvm-rg350-a81b093e65f90ea70c5b07676a1fcc46d3e95a5e.tar.bz2 scummvm-rg350-a81b093e65f90ea70c5b07676a1fcc46d3e95a5e.zip |
fixed sfSceneEq bug
fixed load actors entrance
removed some orphans
svn-id: r17964
Diffstat (limited to 'saga/actor.cpp')
-rw-r--r-- | saga/actor.cpp | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/saga/actor.cpp b/saga/actor.cpp index 1990e1ef5f..73ee425361 100644 --- a/saga/actor.cpp +++ b/saga/actor.cpp @@ -374,7 +374,7 @@ void Actor::takeExit(uint16 actorId, const HitZone *hitZone) { actor = getActor(actorId); actor->lastZone = NULL; - _vm->_scene->changeScene(hitZone->getSceneNumber(), hitZone->getActorsEntrance()); + _vm->_scene->changeScene(hitZone->getSceneNumber(), hitZone->getActorsEntrance(), kTransitionNoFade); _vm->_script->setNoPendingVerb(); } @@ -562,6 +562,10 @@ void Actor::updateActorsScene(int actorsEntrance) { return; } + if (_vm->_scene->currentSceneNumber() == 0) { + error("Actor::updateActorsScene _vm->_scene->currentSceneNumber() == 0"); + } + _activeSpeech.stringsCount = 0; _protagonist = NULL; @@ -597,8 +601,6 @@ void Actor::updateActorsScene(int actorsEntrance) { _protagonist->location.z = sceneEntry->location.z * ACTOR_LMULT; } _protagonist->facingDirection = _protagonist->actionDirection = sceneEntry->facing; - } else { - warning("actorsEntrance < 0"); } _protagonist->currentAction = kActionWait; @@ -1261,7 +1263,11 @@ bool Actor::getSpriteParams(CommonObjectData *commonObjectData, int &frameNumber return true; } -int Actor::drawActors() { +void Actor::drawActors() { + if (_vm->_scene->currentSceneNumber() <= 0) { + return; + } + CommonObjectOrderList::iterator drawOrderIterator; CommonObjectDataPointer drawObject; int frameNumber; @@ -1321,8 +1327,6 @@ int Actor::drawActors() { } } - - return SUCCESS; } bool Actor::followProtagonist(ActorData *actor) { @@ -2295,8 +2299,6 @@ void Actor::drawPathTest() { void Actor::saveState(File& out) { uint16 i; - out.writeSint32LE(_centerActor == NULL ? -1 : _centerActor->index); - out.writeSint32LE(_protagonist == NULL ? -1 : _protagonist->index); out.writeSint16LE(getProtagState()); for (i = 0; i < _actorsCount; i++) { @@ -2304,8 +2306,6 @@ void Actor::saveState(File& out) { a->saveState(out); } - //TODO: save _activeSpeech - for (i = 0; i < _objsCount; i++) { ObjectData *o = _objs[i]; o->saveState(out); @@ -2315,16 +2315,8 @@ void Actor::saveState(File& out) { void Actor::loadState(File& in) { int32 i; - i = in.readSint32LE(); - _centerActor = (i < 0) ? NULL : _actors[i]; - - i = in.readSint32LE(); - _protagonist = (i < 0) ? NULL : _actors[i]; - setProtagState(in.readSint16LE()); - //TODO: load _activeSpeech - for (i = 0; i < _actorsCount; i++) { ActorData *a = _actors[i]; a->loadState(in); |