[comp.sources.games.bugs] Display Bug in Castle

djenner%arthur@Sun.COM (Doug Jenner) (03/02/90)

An nasty bug where you suddenly go blind-

Because of the scheme (albiet, a clever one) for indexing the 'screens' using
a 7 character id string (e.g. "1011101" is a straight corridor) it is possible
to go suddenly blind.  Since the above string is built from indiviual chars,
there is no terminating null.  Therefore, the atoi(walls) call generates a
completely bogus index value as it runs right past the end of the description
string.  

The fix is simple:

Make "walls" terminate in a null by adding the line:    

      walls[wall] = '\0';

right after the loop which sets all the initial characters of walls to '0'.

The code segment will then look like this:

      for(wall=0;wall<=6;wall++)
	      walls[wall] = '0';

      walls[wall] = '\0';

      switch (p->face){