ruff@cisden.UUCP (Craig Ruff) (12/18/85)
One of our valiant hackers unconvered this bug. If you are punished and climb the stairs while levetated, the ball and chain are lost to limbo. That is ok until you try to move, when the second bug is flushed in freeobj trying to free an object not on the list for machines that do not like null pointers. *** hack.do.c.orig Tue Dec 17 21:09:51 1985 --- hack.do.c Tue Dec 17 21:10:28 1985 *************** *** 181,188 u.ux = xupstair; /* this will confuse the player! */ u.uy = yupstair; } ! if(Punished && !Levitation){ ! pline("With great effort you climb the stairs."); placebc(1); } } else { --- 181,189 ----- u.ux = xupstair; /* this will confuse the player! */ u.uy = yupstair; } ! if(Punished){ ! if (!Levitation) ! pline("With great effort you climb the stairs."); placebc(1); } } else { *** hack.invent.c.orig Wed Jul 24 16:53:39 1985 --- hack.invent.c Wed Dec 18 10:44:43 1985 *************** *** 132,139 if(obj == fobj) fobj = fobj->nobj; else { ! for(otmp = fobj; otmp->nobj != obj; otmp = otmp->nobj) ! if(!otmp) panic("error in freeobj"); otmp->nobj = obj->nobj; } } --- 132,141 ----- if(obj == fobj) fobj = fobj->nobj; else { ! for(otmp = fobj; otmp && otmp->nobj != obj; otmp = otmp->nobj) ! ; ! if (!otmp) ! panic("error in freeobj"); otmp->nobj = obj->nobj; } }