                              Bugs Outstanding


Compiling


COMP01. [unknown - no date]:
makefile.sgi for IRIX does not work -- no clue why

COMP02. [unknown - no date]:
DJGPP may puke up a lung on some of the very long functions if
compiled using certain options -- sometimes simply running make
again will work; sometimes changing the options will force compile




Critical Errors


CRIT01. [BCR - 10 Jan 2000]: weird crash bug: trying ctrl-numbers
(for control movement under Linux) from the top of the keyboard and
ctrl-4 apparently kills the program -- ran it in the debugger and
it said it got a SIGQUIT signal in libc_read

CRIT02. [unknown - no date]:
skeletal warrior cast a spell and seg-faulted the game in the Abyss

CRIT03. [unknown - no date]:
sometimes leaving the Abyss through an exit sends game into an
infinite loop -- hard to replicate, though

CRIT04. [unknown - no date]:
using stairs/portals sometimes misplaces the player, either into
solid rock or onto bogus levels -- e.g., level 28 of the dungeon,
level -1 of a sub-dungeon

CRIT06. [jmf - 31 mar 2000]:
Taking down stairs onto new level sometimes hangs the game.
Hard to replicate.

CRIT07. [jmf - 31 mar 2000]:
Dungeons sometimes generated that feature off-the-edge corrodors.
Monsters or player moving too close causes segfault.


Platform Specific


PLAT01. [unknown - no date]:
Linux: various odd effects when playing in term -- may be
terminfo's fault

PLAT02. [DLB - 12 Jan 2000]:
Playing under Linux, I am encountering an atrocious "garbaging" of
the screen in Wizmode -- the screen fails to update properly after
using the wizmode help function (&-?) ... has anyone else
encountered this. Also, keypad support is very spotty under Linux,
or at least mine ...

     [BCR - 12 Jan 2000]:
     Yeah, Linux support is still far from perfect. I've never been able
     to get shift or ctrl numpad keys to work in Linux, and have had
     various display problems. The wizmode help actually uses the same
     function as the regular help, so it should behave the same.

     [DLB - 20 Mar 2000]:
     Still no support under Linux console for keypad when in 'X'-map
     mode

PLAT03. [BWR - 13 Jan 2000]:
The escape key no longer seems to be cancelling my actions (ie.
looking at spell lists, maps, etc.). This is a desired feature
because I typically don't trust space in roguelike games. (This is
under Solaris.)

     [DLB - 13 Jan 2000]:
     I noticed this "feature" under Linux, as well ... guess I am not
     the only one.

     [BWR - 18 Jan 2000]:
     I've looked at the escape problem and the problem is that at some
     point the keypad( stdscr, FALSE ) line turns into a TRUE. This ends
     up cooking escapes (it has to pause for a bit to wait to see if its
     an escape sequence and this screws up all the checks for escape).
     I've moved this into the #ifndef SOLARIS block with the scrollok.
     Everybody here uses roguelike keys except for those people who are
     luck to get terminals that will output the actual numbers in one of
     their modes, or have hacked their xmodmap to handle the keypad (to
     do pretty much the same).

PLAT04. [BWR - 20 Mar 2000]:
There's one other bug that we seem to have here (under Solaris).
Occasionally the game hangs when changing levels. At first it was
only happening to one person, so I thought it had something to do
with his environment (I know he's giving incorrect term types to
get colour, as well as doing some magic with xmodmap to get the
keypad to work on some terminals), but it did happen to me once so
I know its real. Nothing really special about the stairs I used,
they were regular dungeon (I've noticed his games have hanged in
sub-branches) and I had no monsters around me. This could be a
problem with either level generation (I was going to a new level)
or with the save level function. Don't have much time to look at
either... keep your eyes open for it, if it doesn't happen anywhere
else, its probably with the SOLARIS or SAVE_GAME_DIR code.

PLAT05. [BCR - 9 Mar 2000]:
Its not a big deal, but 2 and 8 on the numpad still don't work with
ctrl for disarming traps. We should at least stick it in the
buglist. (This is under Windows NT.)

     [LRH - 13 Mar 2000]:
     Re: the bug with ctrl-2 and -8 not working: IIRC The last time this
     happened it was as a result of the keyin variable in which
     keypresses entered in the main input loop are stored having been
     set either signed or unsigned, I don't remember which (just that it
     was the wrong one). The problem is that the values for ctrl-2/ 8
     are above 127, so when the variable declaration was changed they
     either started or stopped wrapping.
     Of course, it's a while since I've done any coding, so don't
     believe everything I say.

     [BCR - 13 Mar 2000]:
     I spent some time debugging today and it seems that the ctrl-8/2
     problem under NT is a library bug. The external getch() function
     doesn't return when you hit those keys. This maybe be a DJGPP
     thing. I have the borland compiler on this comp too, so if I get
     some time I will try setting it up and seeing if the problem is the
     same there as well...




Display


DISP01. [Graeme Dice <grdice@home.com> - 10 Jan 2000]:
(small, cosmetic) bug with the new, cool XP-left-for-skills
display: when one gains skills such that 3-4 digits of XP are
removed, the right parenthesis is not removed (^R fixes)

DISP02. [unknown - no date]:
missing space when printing gold amounts?

DISP03. [unknown - no date]:
hunger status not redrawn with level change -- happens when
engorged and I think also when full

     [BWR - no date]
     should be fixed now

     [JDJ - no date]
     still not fixed

DISP04. [unknown - no date]:
check for screen length problems and fix them -- e.g., map
centering is still off base, line 12 (should this be shifted for
longer windows?)

DISP05. [BWR - 18 Jan 2000]:
Speaking of the help screen, the help for the fast scroll on the
map screen is still wrong: the commands are +/- not +/& like it
implies.

DISP06. [Tloma Desk - 7 Feb 2000]:
When gaining level during zapping some bolt towards the top of the
screen, part of bolt is drawn at the bottom of the screen.

DISP07. [DLB - 17 Mar 2000]:
the key for list weapons is not displayed after issuing a '?'
command

DISP08. [DLB - 18 Mar 2000]:
The spell "Detect creatures" should be "Detect Creatures" (both
words capitalized) when viewing list of spells known.




Items


ITEM01. [LRH - 12 Jan 2000]:
When you eat a poisonous corpse while poison resistant, it always
makes you ill (ie diseased) -- Should this be fixed?

     [BWR - 12 Jan 2000]:
     Almost certainly. Doesn't make sense to punish players like this.

ITEM02. [unknown - no date]:
"-5 stone" heavily enchanted to do *more* damage and costs 100

ITEM03. [unknown - no date]:
jewelry shop generated "+6", a missile weapon

ITEM04. [unknown - no date]:
found "an amulet of Cekugob" (an unrandart) that should identify as
"the amulet of Cekugob" -- a 'V' check indicated none of its
powers, but at least some of them were being applied to my
character

ITEM05. [unknown - no date]:
an item is cursed if its "iplus" value is "big enough" -- however,
"big enough" is >80 in some places, >130 in others, and perhaps
>120 in others (I'm not sure about the >120; I recall seeing it but
can't find it now). Right now I have an artifact ring that I can't
uncurse since the value used when uncursing is 130 and the value
used when sticking is 80 -- the uncursing code checks against 80 on
one hand and against 130 on the other

ITEM06. [CDL - 18 Mar 2000]:
I had just had a level 7 Spriggan Venom Mage, with all of his 24
HP, die from reading a scroll of immolation. The official cause of
death was listed as "killed by bad targetting".

     [DLB - 18 Mar 2000]:
     Appears that item_use::read_scroll() for
     SCR_IMMOLATION hands off a value of beam.thing_thrown as KILL_YOU
     to bang::explosion() and is eventually handled by these lines:

     if ( beam[0].thing_thrown == KILL_YOU
           || beam[0].thing_thrown == KILL_YOU_MISSILE )
        ouch(hurted, 0, KILLED_BY_TARGETTING);
     else if (beam[0].flavour == BEAM_SPORE) // cdl
        ouch(hurted, 0, KILLED_BY_SPORE);
     else
        ouch(hurted, beam[0].beam_source, KILLED_BY_BEAM);

     Problem is, there is no KILLED_BY_EXPLOSION, so unless someone
     wants to add that case, KILLED_BY_BURNING (now used by "liquid
     flames" in acr.cc only) would be the closest fit ...
     Maybe a better long-term solution would be to add to the KILLER
     enum cases for KILL_YOU_EXPLOSION and KILL_MON_EXPLOSION and work
     from there ??? Right now KILL_YOU and KILL_MON serve double duty
     for both direct (non-missile) and explosion kills -- separate them
     out???

ITEM07. [Tloma Desk - 7 Feb 2000]:
Magical staves are identified by fighting with them.

ITEM08. [Tloma Desk - 7 Feb 2000]:
Weapon descriptions are not complete - "It's ... enchanted to do
more damage." part is missing

ITEM09. [<taran@hotmail.com> - 17 Mar 2000]:
Reading scroll of detect curse discovers artifact names.

ITEM10. [CDL - 19 Mar 2000]:
My current character has a spell staff of destruction with these
spells:

 Spells                      Type            Level
 a - Throw Frost        Ice/Conjuration        2
 b - Bolt of Cold       Ice/Conjuration        5
 c - Lightning Bolt     Air/Conjuration        6

I am unable to cast Throw Frost with it, but can cast the other two
spells. I can't figure out the problem, but when I added enough
print statements, the problem went away. :(
There's something odd going on here, as
dungeon::spellbook_template() gets called once with "spellbook" 13,
rather than with 53 (the above staff).




Monsters


MONS01. [unknown - no date]:
artefact weapons of Holy Wrath wielded by undead

MONS02. [unknown - no date]:
monsters shout upon seeing a player who cannot see them

MONS03. [BWR - 13 Jan 2000]:
Another thing that was noticed in this version. Polymorphing
Sigmund (or any other named monster) resulted in "a giant beetle"
changing its form. My guess is some confusion on which table is
being indexed.

MONS04. [BWR - 27 Jan 2000]:
On the subject of summoning, a little thing (bug) that has been
noticed around here... summoned monsters that die overtop of
corpses, take the corpse with them.

MONS05. [<taran@hotmail.com> - 17 Mar 2000]:
You can use Yedremewhatewer "enslave undead" invocation to enslave
shapeshifter acting as an undead. When it changes, the enslavement
stays. I am not certain if this is a bug or a feature.




Characters


PLYR01. [unknown - no date]:
currently possible to gain zero hp when gaining a level --
safeguards should exist to prevent negative values, if not
guaranteeing at least 1 hp per level

PLYR02. [BWR - 12 Feb 2000]:
calc_hp() and calc_ep() need to be called before you.hp is set so
that race-classes that start with 5 Fighting don't start with 18/19
hps (see Ogre Fighters).




Inventory


INVN01. [unknown - no date]:
full inventory doesn't account for possible item stacking or for
picking up gold

     [DLB - 19 Mar 2000]:
     When a player's pack is full, he/she is unable to pick up gold from
     the ground. This, at least should be allowable, if not also item
     stacking (see parent comment).

INVN02. [unknown - no date]:
inventory count bug: inventory counter occasionally gets out of
sync (should either be moved or fixed)




Combat Related


COMB01. [unknown - no date]:
EV seems to get screwed up after transforms -- it seems to get at
the transform value when the player has no armour (calculated
correctly once armour is on)




Magic


MAGI01. [LRH - 12 Jan 2000]:
The burn_freeze function (which covers the spells burn, freeze,
crush and arc) doesn't set a friendly creature targetted by it to
hostile. It should. And I really should have gotten around to
implementing these spells for monsters, so that ghosts can use
them.

MAGI02. [LRH - 13 Jan 2000]:
Summon Shadow Creatures is now Ice/Summoning -- this seems very
odd.

     [BWR - 13 Jan 2000]:
     Same here.

MAGI03. [CDL - 18 Mar 2000]:
This is in player.cc:

if (you.sure_blade)
{
   if (you.confusing_touch > 15)
      mpr( "You have a strong bond with your blade." );
   else if (you.confusing_touch > 5)
      mpr( "You have a bond with your blade." );
   else
      mpr( "Your bond with your blade is waning." );
}

The "confusing_touch"es in the body should probably be
"sure_blade"s.




Teleportation


TELE01. [unknown - no date]:
if you have teleport control you'll see a prompt that says:
"You may choose your destination (press '.' or delete to select)."
I somehow got into the habit of immediately blowing by this prompt
without ever reading it so I was always flailing around whenever I
tried to teleport. I've changed show_map() so that it accepts '\r'
as well as '.' (which should be much more intuitive) but I don't
see a check for the delete key in show_map() so I think the prompt
is wrong

TELE02. [unknown - no date]:
teleport control is really wacky -- I'd expect to be able to use
the return key to select the square but it seems to key off one of
the keypad keys




Targeting


TARG01. [unknown - no date]:
targeting is off at times (possible rounding errors)

TARG02. [unknown - no date]:
fired beams sometimes take the wrong route and can't hit targets in
LOS




Codebase


CODE01. [unknown - no date]:
in monsters enum, values 250 to 310 should be reserved for Uniques,
but 260 to 280 are occupied by other monsters -- should move them
if it won't mess anything else up (if moved, remember to alter
ouch.cc check for placing 'a' is put in front of the unique's name
in the scores) -- not really a bug.

CODE02. [unknown - no date]:
from the code, it appears that dropping items takes zero time
