[Scummvm-cvs-logs] CVS: scummvm/saga actor.cpp,1.139,1.140 actor.h,1.77,1.78 isomap.cpp,1.49,1.50
Andrew Kurushin
h00ligan at users.sourceforge.net
Sun Jun 12 09:00:52 CEST 2005
Update of /cvsroot/scummvm/scummvm/saga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14052
Modified Files:
actor.cpp actor.h isomap.cpp
Log Message:
fix Hooneyfoot bug
Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.cpp,v
retrieving revision 1.139
retrieving revision 1.140
diff -u -d -r1.139 -r1.140
--- actor.cpp 10 Jun 2005 12:09:01 -0000 1.139
+++ actor.cpp 12 Jun 2005 15:58:35 -0000 1.140
@@ -461,7 +461,7 @@
void Actor::actorFaceTowardsPoint(uint16 actorId, const Location &toLocation) {
ActorData *actor;
Location delta;
- debug (8, "Actor::actorFaceTowardsPoint actorId=%i", actorId);
+ //debug (8, "Actor::actorFaceTowardsPoint actorId=%i", actorId);
actor = getActor(actorId);
toLocation.delta(actor->location, delta);
@@ -576,7 +576,11 @@
_protagonist = NULL;
for (i = 0; i < _actorsCount; i++) {
- actor = _actors[i];
+ actor = _actors[i];
+ actor->inScene = false;
+ if (actor->disabled) {
+ continue;
+ }
if ((actor->flags & (kProtagonist | kFollower)) || (i == 0)) {
if (actor->flags & kProtagonist) {
@@ -591,6 +595,7 @@
actor->sceneNumber = _vm->_scene->currentSceneNumber();
}
if (actor->sceneNumber == _vm->_scene->currentSceneNumber()) {
+ actor->inScene = true;
actor->actionCycle = (_vm->_rnd.getRandomNumber(7) & 0x7) * 4; // 1/8th chance
}
}
@@ -813,10 +818,7 @@
for (i = 0; i < _actorsCount; i++) {
actor = _actors[i];
- if (actor->disabled)
- continue;
-
- if (actor->sceneNumber != _vm->_scene->currentSceneNumber())
+ if (!actor->inScene)
continue;
//todo: dragon stuff
@@ -1255,13 +1257,11 @@
_drawOrderList.clear();
for (i = 0; i < _actorsCount; i++) {
actor = _actors[i];
- if (actor->disabled)
+ if (!actor->inScene)
continue;
- if (i == 0 || actor->flags & (kFollower | kProtagonist) || actor->sceneNumber == _vm->_scene->currentSceneNumber()) {
- _drawOrderList.pushBack(actor, compareFunction);
- calcScreenPosition(actor);
- }
+ _drawOrderList.pushBack(actor, compareFunction);
+ calcScreenPosition(actor);
}
for (i = 0; i < _objsCount; i++) {
@@ -1649,8 +1649,7 @@
for (i = 0; (i < _actorsCount) && (_barrierCount < ACTOR_BARRIERS_MAX); i++) {
anotherActor = _actors[i];
- if (anotherActor->disabled) continue;
- if (anotherActor->sceneNumber != _vm->_scene->currentSceneNumber()) continue;
+ if (!anotherActor->inScene) continue;
if (anotherActor == actor ) continue;
Index: actor.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/actor.h,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- actor.h 5 Jun 2005 16:53:53 -0000 1.77
+++ actor.h 12 Jun 2005 15:58:37 -0000 1.78
@@ -274,7 +274,9 @@
int frameListResourceId; // Actor's frame list resource id
byte speechColor; // Actor dialogue color
-
+ //
+ bool inScene;
+
//variables
uint16 actorFlags; // dynamic flags
int32 currentAction; // ActorActions type
Index: isomap.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/isomap.cpp,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- isomap.cpp 10 Jun 2005 12:09:01 -0000 1.49
+++ isomap.cpp 12 Jun 2005 15:58:37 -0000 1.50
@@ -1151,8 +1151,7 @@
for (i = 0; i < _vm->_actor->_actorsCount; i++) {
actor = _vm->_actor->_actors[i];
- if (actor->disabled) continue;
- if (actor->sceneNumber != _vm->_scene->currentSceneNumber()) continue;
+ if (!actor->inScene) continue;
u = (actor->location.u() >> 4) - uBase;
v = (actor->location.v() >> 4) - vBase;
@@ -1255,8 +1254,7 @@
(_vm->_scene->currentSceneResourceId() != RID_ITE_OVERMAP_SCENE)) {
for (i = 0; i < _vm->_actor->_actorsCount; i++) {
other = _vm->_actor->_actors[i];
- if (other->disabled) continue;
- if (other->sceneNumber != _vm->_scene->currentSceneNumber()) continue;
+ if (!other->inScene) continue;
if (other==actor) continue;
u = (other->location.u() >> 4) - uBase;
More information about the Scummvm-git-logs
mailing list