]> granicus.if.org Git - nethack/commit
Heart of Ahriman hack (trunk only)
authornethack.rankin <nethack.rankin>
Sun, 3 Jun 2007 01:05:43 +0000 (01:05 +0000)
committernethack.rankin <nethack.rankin>
Sun, 3 Jun 2007 01:05:43 +0000 (01:05 +0000)
commit66f95ef37c11bf58ee5bb0ccedccd6f9cd515ce7
tree229e64e80cd96b57ee57e66a980b5a652137cc12
parent9abdff361ba214d5ae6f473c4da562967dbc8c9a
Heart of Ahriman hack (trunk only)

     From a four year old news posting:  hero was levitating via #invoke
on the Heart of Ahriman, then dropping that artifact yielded:
  You drop a gray stone named The Heart of Ahriman.
  You float gently to the floor.
  A gray stone named The Heart of Ahriman hits the floor.
That might be strictly correct, assuming that both hero and stone fall at
the same speed; if the stone was dropped from perhaps waist height then
the hero's feet would touch first.  But it looks strange, like a cartoon
where something hangs in midair until someone notices that it should fall.

     Removing the artifact from inventory causes the #invoke property to
toggle off.  Unfortunately it has to be done here before the object can
be placed at its destination.  Modifying message order seemed unviable;
this fix fiddles with the Levitation property in order to defer hero's
descent until after object handling is finished.  Now same setup gives:
  You drop a gray stone named The Heart of Ahriman.
  A gray stone named The Heart of Ahriman hits the floor.
  You float gently to the floor.
  You see here a gray stone named The Heart of Ahriman.
doc/fixes35.0
include/extern.h
src/artifact.c
src/do.c