[Scummvm-devel] Re: [Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.150,1.151 script_v5.cpp,1.147,1.148 scummvm.cpp,2.323,2.324

Max Horn max at quendi.de
Sat Aug 23 08:37:08 CEST 2003


Am Dienstag, 12.08.03 um 18:43 Uhr schrieb Torbj?rn Andersson:

> Update of /cvsroot/scummvm/scummvm/scumm
> In directory sc8-pr-cvs1:/tmp/cvs-serv4899
>
> Modified Files:
> 	actor.cpp script_v5.cpp scummvm.cpp
> Log Message:
> Allowed derefActor() and derefActorSafe() to treat actor 0 as a valid 
> actor
> since the original interpreters appear to have allowed it. This fixes 
> bug
> #786380 ("FOA - FISTS, script crash in Crete").
>
IMHO that is a far to broad change. I have to look at that bug report 
before I can form my final opinion, but right now I am thinking "gee 
let's undo this change ASAP"

> I do not know what the purpose of actor 0 was in the original. Either 
> it's
> a no-op, or it's used to store actor default values.

I know of exactly one "legal" use of actor 0: the default actor talk 
color is set by the actor-set opcode, specifying actor 0. All other 
occurrences are most likely to be caused by a script bug. Note that in 
the past we discovered several script & ScummVM bugs via this check. 
Each of them had to be fixed separately. One could argue that it's 
easier to just allow actor 0 and hope that by ignoring it, we do the 
right thing. But I think that's a bad idea. In fact, we did just this 
in the past, and it caused lots and lots of headaches with regards to 
save game compatibility, etc..


Max





More information about the Scummvm-devel mailing list