I played around with the walk scripts a bit. My suggestion to set the
talk scripts to null during walks seems to work, and it prevents the ego
actor from sliding across the ground.
It's not a very clean solution, however. I am currently searching the
DOTT scripts for the main mouse handler to see how intermingled commands
might be handled there. Does anyone of you know the number of the block?
Scripts 120 and 121 are often set for VERB and SENTENCE, but I couldn't
find anything special in there so far.
Since I'm not yet sure if my quick fix should go into the trunk, I've
attached it as a patch.
--
http://www.fastmail.fm - The professional email service
Index: common.scc
===================================================================
--- common.scc (revision 381)
+++ common.scc (working copy)
@@ -27,6 +27,7 @@
#include "officeroom.sch"
#include "titlescreen.scc"
+#include "zob_anim.sch"
@@ -392,14 +393,18 @@
// if the object is in the room walk there
if(objA <= 0xF || owner == 0xF) {
+ setActorTalkFrame( 0, 0 );
walkActorToObj(VAR_EGO,objA,0);
waitForActor(VAR_EGO);
+ setActorTalkFrame( zob_anim_talkStart, zob_anim_talkStop );
// This is needed when walking to an actor
if(objA <= 0xF)
actorFace(VAR_EGO,objA);
} else if(objB) if(objB <= 0xF || getObjectOwner(objB) == 0xF) {
+ setActorTalkFrame( 0, 0 );
walkActorToObj(VAR_EGO,objB,0);
waitForActor(VAR_EGO);
+ setActorTalkFrame( zob_anim_talkStart, zob_anim_talkStop );
if(objB <= 0xF)
actorFace(VAR_EGO,objB);
}
@@ -526,7 +531,10 @@
if(selVerb) resetSntc(0);
// then go there
+ setActorTalkFrame( 0, 0 );
walkActorTo(VAR_EGO,VAR_VIRT_MOUSE_X,VAR_VIRT_MOUSE_Y);
+ waitForActor(VAR_EGO);
+ setActorTalkFrame( zob_anim_talkStart, zob_anim_talkStop );
}
script setInventoryIcon(int icon, int slot) {
_______________________________________________
ScummC-general mailing list
[email protected]
https://mail.gna.org/listinfo/scummc-general