[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

J.Brown (Ender) ender at scummvm.org
Sat Aug 23 10:15:09 CEST 2003


> > 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.

Yes, but many of these fixes have involved simply ignoring the problem.
The original interpreters, at least until FOA, simply store any requested
value for Actor 0 without complaint. So whilst, yes, these problems are
all script bugs... these bugs are in some cases also present in the
original engine, and are treated as completely valid cases. (All the actor
draw loops operation from 1 > MAX_ACTORS, so actor 0 is just treated as a
dummy case)

I discussed this for some time with him, and after examining this and
several other Actor 0 bugs found over time, this modification was added
with my permission. As long as it's a low-level debug (level 1), than I
see no reason why we should not behave as th original interpreter did...
as at least in some cases (although of course some Actor 0's will be a
valid bug) these conditions are hit with that interpterer as well.

 - Ender





More information about the Scummvm-devel mailing list