> I don't know about all the places which initialize a gradient, but if
> gradients are really initiallized with different values, I think this
> is a bug. (listedAddr would no more be guaranteed to be big enough
> because fields could be listed more than once)
Ok. I now I'm sure.
I have changed Map.cpp to print out errors when former and present g
differ two much.
in updateGlobalGradientVersionSimple:
Uint8 oldg=0;
while ( ... )
{
...
Uint8 g = gradient[(y << wDec) | x] - 1;
if ( (oldg != 0) && (oldg != g) && (oldg != g+1))
std::cerr << "oldg: " << (int) oldg << "g: " << (int) g << std::endl;
oldg = g;
...
}
Then I started A Big Pond with one AI in my team and one in the other,
saved the game and started glob2 again with -nox and this saved game.
After a minute or so I got a lot of output like:
...
oldg: 137g: 138
oldg: 138g: 136
oldg: 136g: 137
...
I attach this change as a patch and copy this mail to the bug tracker.
2199a2200
> Uint8 oldg = 0;
2213a2215,2218
> if ( (oldg != 0) && (oldg != g) && (oldg != g+1))
> std::cerr << "oldg: " << (int) oldg << "g: " << (int) g << std::endl;
> oldg = g;
>
--
Kai Antweiler
_______________________________________________
glob2-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/glob2-devel