Bugfix: bird starts caged in endgame.

Turns out the code of put() had been modified ibcorrectly, but
the bug was masked in all but a few cases, noe of which would be
encountered in normal gameplay.

A test to ensure this bug does noit recur has been added.
This commit is contained in:
Eric S. Raymond 2023-03-11 09:35:26 -05:00
parent fe8a82927c
commit 71f05c4567
7 changed files with 2445 additions and 17 deletions

2
misc.c
View file

@ -602,7 +602,7 @@ loc_t put(obj_t object, loc_t where, int pval)
* negated game.prop values for the repository objects. */
{
move(object, where);
return STASHED(pval);
return (-1) - pval;;
}
void carry(obj_t object, loc_t where)

View file

@ -69,10 +69,6 @@ Bug fixes:
* Under odd circumstances (dropping rug or vase outdoors) the game could
formerly say "floor" when it should say "ground" (or "dirt", or something).
Bugs (accidental changes that don't seem worth the effort to fix):
* Bird starts uncaged in the endgame.
Enhancements:
By default, advent issues "> " as a command prompt. This feature

View file

@ -2930,7 +2930,7 @@ OK
> take bird
OK
You are already carrying it!
> free bird

View file

@ -2435,11 +2435,12 @@ OK
You are currently holding the following:
Wicker cage
Little bird in cage
Small bottle
> get bird
OK
You are already carrying it!
> inven

View file

@ -10,19 +10,15 @@ down a gully.
> resume
Can't open file y, try again.
You're at sw end.
The grate is locked.
You're in front of building.
> blast
There is a loud explosion, and a twenty-foot hole appears in the far
wall, burying the dwarves in the rubble. You march through the hole
and find yourself in the main office, where a cheering band of
friendly elves carry the conquering adventurer off into the sunset.
Blasting requires dynamite.
You scored 423 out of a possible 430, using 468 turns.
Your score puts you in Master Adventurer Class A.
You scored 32 out of a possible 430, using 2 turns.
To achieve the next higher rating, you need 4 more points.
You are obviously a rank amateur. Better luck next time.
To achieve the next higher rating, you need 14 more points.

2084
tests/takebird.chk Normal file

File diff suppressed because it is too large Load diff

351
tests/takebird.log Normal file
View file

@ -0,0 +1,351 @@
## Verify that bird starts caged in endgame
no
seed 1318612053
e
plugh
plove
get emerald
w
drop emerald
e
ne
get pyramid
s
plove
plugh
drop pyramid
get lamp
get water
plugh
on
s
d
bedquilt
w
e
take pillow
w
oriental
take vase
n
w
take emerald
nw
s
se
w
w
d
water plant
u
e
d
fill bottle
u
e
ne
e
u
e
u
n
plugh
drop pillow
drop vase
drop bottle
drop emerald
xyzzy
take rod
e
take cage
pit
drop rod
e
take bird
w
drop bird
take rod
wave rod
take necklace
drop rod
take bird
d
s
take nugget
n
n
drop bird
take bird
sw
w
kill dragon
yes
drink blood
take rug
e
e
n
take bars
n
plugh
drop cage
drop necklace
drop nugget
drop bars
drop rug
xyzzy
pit
take rod
d
w
wave rod
w
take diamonds
w
w
w
s
s
e
s
hit machine
s
s
kill ogre
n
take ruby
s
w
n
n
sw
w
d
n
e
take coins
e
s
take jewelry
n
e
w
w
w
s
e
s
s
s
n
e
e
nw
drop rod
take jewelry
take chest
take ruby
take diamonds
take coins
se
w
s
d
debris
xyzzy
off
drop coins
drop diamonds
drop jewelry
drop chest
drop lamp
take rug
take emerald
take cage
take bottle
w
s
w
drop bird
listen
drop cage
n
take appendage
n
e
n
n
fill urn
light urn
rub urn
drop rug
take amber
drop emerald
fly
take sapphire
fly
take emerald
drop ruby
take rug
take ruby
e
s
e
e
e
drop emerald
drop ruby
drop amber
drop rug
drop sapphire
fill bottle
take lamp
plugh
on
s
s
sw
w
n
reservoir
n'beh
n
n
u
u
u
u
u
ne
take statuette
sw
d
d
d
d
d
s
s
s
s
d
s
d
water plant
u
e
d
fill bottle
u
w
d
climb
w
take eggs
n
oil door
drop bottle
n
take trident
w
d
bedquilt
e
n
open clam
d
d
take pearl
shell
s
u
e
u
n
plugh
drop trident
drop pearl
drop statuette
drop appendage
take keys
take food
plugh
s
d
bedquilt
w
oriental
w
sw
u
throw eggs
ne
barren
e
throw food
unlock chain
take chain
take bear
fork
ne
fee
fie
foe
foo
e
take spices
fork
w
w
sw
release bear
sw
sw
d
se
se
w
w
d
climb
w
take eggs
n
n
w
d
bedquilt
e
u
e
u
n
plugh
drop eggs
drop chain
drop spices
plugh
s
look
look
n
plugh
s
d
w
d
e
take magazine
e
drop magazine
look
look
look
look
look
look
look
sw
# Good response "OK".
# Buggy response: "You can catch the bird, but you cannot carry it."
take bird