Skip to content

Commit

Permalink
shop gold vs hangup
Browse files Browse the repository at this point in the history
     From the newsgroup:  hangup save while picking up gold from the
floor in a shop would duplicate that gold in the save file.  First the
gold amount was being added to hero's gold, then two messages were given
[pline() or prinv() about pickup followed by one from costly_gold() about
shop credit], and lastly the floor gold would be removed.  The second
message could trigger --More-- and provide a controllable interruption
point between giving the gold to the hero and removing it from the floor.
Change this to do the removal step before feedback.
  • Loading branch information
nethack.rankin committed Nov 18, 2007
1 parent 44c1677 commit 645461d
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 4 deletions.
1 change: 1 addition & 0 deletions doc/fixes34.4
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,7 @@ could get "suddenly you cannot see the <mon>" while invisible mon remained
cutting a long worm in half would trigger segfault/accvio crash if the hit
took parent down to 1 hit point or if long worms had become extinct
blinded invisible hero can't see self as invisible via ';' or '/'
a hangup save while picking up gold from shop floor could duplicate that gold


Platform- and/or Interface-Specific Fixes
Expand Down
8 changes: 4 additions & 4 deletions src/pickup.c
Original file line number Diff line number Diff line change
Expand Up @@ -1281,6 +1281,10 @@ boolean telekinesis; /* not picking it up directly by hand */
costly_gold(obj->ox, obj->oy, gold_capacity);
} else {
u.ugold += count;
if (count == obj->quan)
delobj(obj);
else
obj->quan -= count;
if ((nearload = near_capacity()) != 0)
pline("%s %ld gold piece%s.",
nearload < MOD_ENCUMBER ?
Expand All @@ -1289,10 +1293,6 @@ boolean telekinesis; /* not picking it up directly by hand */
else
prinv((char *) 0, obj, count);
costly_gold(obj->ox, obj->oy, count);
if (count == obj->quan)
delobj(obj);
else
obj->quan -= count;
}
context.botl = 1;
if (context.run) nomul(0);
Expand Down

0 comments on commit 645461d

Please sign in to comment.