cjs@moncsbruce.oz (Chris Stuart) (04/04/88)
There is a bug in the file generate.c, in the procedure vault_trap. The fourth argument in the call to place_trap should be between 0 and MAX_TRAP-1. You should subtract 1 from the result of the randint call. Original source extract: do { y1 = y - yd - 1 + randint(2*yd+1); x1 = x - xd - 1 + randint(2*xd+1); c_ptr = &cave[y1][x1]; if ((c_ptr->fval > 0) && (c_ptr->fval < 8) && (c_ptr->fval != 3)) if (c_ptr->tptr == 0) { place_trap(y1, x1, 1, randint(MAX_TRAPA)); flag = TRUE; } count++; } while ((!flag) && (count <= 5)); Correction: do { y1 = y - yd - 1 + randint(2*yd+1); x1 = x - xd - 1 + randint(2*xd+1); c_ptr = &cave[y1][x1]; if ((c_ptr->fval > 0) && (c_ptr->fval < 8) && (c_ptr->fval != 3)) if (c_ptr->tptr == 0) { place_trap(y1, x1, 1, randint(MAX_TRAPA)-1); flag = TRUE; } count++; } while ((!flag) && (count <= 5));