I have one line that is supposed to set dialogue. It is different than all the other places that I set dialogue, because I (for some reason in 2004, but not intentionally) had an extra space character in the call. The calls look like this:
Code: Select all
SetQuip(11, 7,1)
SetQuip(11, 8,1)
Code: Select all
routine SetQuip (char, line, onoff)
{
local x, y, z, n
for (x=0; x<char; x++)
{
n=(n + quips[x])
}
n = (n + line)
y = (n / 8)
z = Mod(n,8)
z = Power(2,z)
if (onoff = 1)
{
qflag[y] = ((qflag[y]) | (z))
}
if (onoff = 0)
{
qflag[y] = ((qflag[y]) & (~z))
}
}
The save game I have shows the bug. I can load it with a copy of ndrift.hex and see the problem.
If I play the game through a walkthrough and try to reproduce the bug, I can't. So it works in some conditions. I would imagine the space before the numbers 7 and 8 up there don't matter. But could it?