aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Horn2002-12-15 17:28:46 +0000
committerMax Horn2002-12-15 17:28:46 +0000
commitf4dfa923f7e2fe7e7ec0023c553e235a587d3067 (patch)
tree14926f1fad4e4cc2efe17f08d47858c14655df1b
parent9648ea6f441a44c9c1bf08f013f4066b3408b0ff (diff)
downloadscummvm-rg350-f4dfa923f7e2fe7e7ec0023c553e235a587d3067.tar.gz
scummvm-rg350-f4dfa923f7e2fe7e7ec0023c553e235a587d3067.tar.bz2
scummvm-rg350-f4dfa923f7e2fe7e7ec0023c553e235a587d3067.zip
cleanup - we now know that the frame field in Actor is needed, we just have to figure out how to set it correctly
svn-id: r5978
-rw-r--r--scumm/saveload.cpp1
-rw-r--r--scumm/script_v6.cpp13
2 files changed, 7 insertions, 7 deletions
diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp
index dcdec31657..f7bc0c5911 100644
--- a/scumm/saveload.cpp
+++ b/scumm/saveload.cpp
@@ -263,7 +263,6 @@ void Scumm::saveOrLoad(Serializer *s, uint32 savegameVersion)
MK_OBSOLETE(Actor, mask, sleByte, VER_V8, VER_V9),
MKLINE(Actor, shadow_mode, sleByte, VER_V8),
MKLINE(Actor, visible, sleByte, VER_V8),
- // FIXME - frame is never set and thus always 0! See actor.h comment
MKLINE(Actor, frame, sleByte, VER_V8),
MKLINE(Actor, animSpeed, sleByte, VER_V8),
MKLINE(Actor, animProgress, sleByte, VER_V8),
diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp
index 0536f21da0..233cf6a8eb 100644
--- a/scumm/script_v6.cpp
+++ b/scumm/script_v6.cpp
@@ -1737,9 +1737,6 @@ void Scumm::o6_actorSet()
case 228: /* walk script */
a->walk_script = pop();
break;
- case 235: /* talk_script */
- a->talk_script = pop();
- break;
case 229: /* stand */
a->stopActorMoving();
a->startAnimActor(a->standFrame);
@@ -1757,6 +1754,9 @@ void Scumm::o6_actorSet()
case 234: /* unfreeze actor */
a->moving &= ~0x7f;
break;
+ case 235: /* talk_script */
+ a->talk_script = pop();
+ break;
default:
error("o6_actorset: default case %d", b);
}
@@ -2080,7 +2080,6 @@ void Scumm::o6_wait()
int actnum = pop();
Actor *a = derefActorSafe(actnum, "o6_wait:226");
int offs = (int16)fetchScriptWord();
-
if (a && a->isInCurrentRoom() && a->needRedraw) {
_scriptPointer += offs;
o6_breakHere();
@@ -2088,7 +2087,9 @@ void Scumm::o6_wait()
return;
}
case 232:{ /* wait until actor stops turning */
- Actor *a = derefActorSafe(pop(), "o6_wait:226");
+ int actnum = pop();
+ Actor *a = derefActorSafe(actnum, "o6_wait:232");
+ printf("
int offs = (int16)fetchScriptWord();
if (a && a->isInCurrentRoom() && a->moving & MF_TURN) {
_scriptPointer += offs;
@@ -2788,7 +2789,7 @@ void Scumm::o6_kernelFunction()
break;
case 212:
a = derefActorSafe(args[1], "o6_kernelFunction:212");
- // FIXME - frame is never set and thus always 0! See actor.h comment
+ // This is used by walk scripts
push(a->frame);
break;
case 215: