Fix for GitLab issue #40: Inconsistant inventory space
This commit is contained in:
parent
782c5c3f29
commit
6de0149f9e
3 changed files with 562 additions and 2 deletions
9
misc.c
9
misc.c
|
@ -585,6 +585,8 @@ void carry(obj_t object, loc_t where)
|
||||||
if (game.place[object] == CARRIED)
|
if (game.place[object] == CARRIED)
|
||||||
return;
|
return;
|
||||||
game.place[object] = CARRIED;
|
game.place[object] = CARRIED;
|
||||||
|
|
||||||
|
if (object!= BIRD)
|
||||||
++game.holdng;
|
++game.holdng;
|
||||||
}
|
}
|
||||||
if (game.atloc[where] == object) {
|
if (game.atloc[where] == object) {
|
||||||
|
@ -606,6 +608,13 @@ void drop(obj_t object, loc_t where)
|
||||||
game.fixed[object - NOBJECTS] = where;
|
game.fixed[object - NOBJECTS] = where;
|
||||||
else {
|
else {
|
||||||
if (game.place[object] == CARRIED)
|
if (game.place[object] == CARRIED)
|
||||||
|
if (object != BIRD)
|
||||||
|
/* The bird has to be weightless. This ugly hack (and the
|
||||||
|
* corresponding code in the drop function) brought to you
|
||||||
|
* by the fact that when the bird is caged, we need to be able
|
||||||
|
* to either 'take bird' or 'take cage' and have the right thing
|
||||||
|
* happen.
|
||||||
|
*/
|
||||||
--game.holdng;
|
--game.holdng;
|
||||||
game.place[object] = where;
|
game.place[object] = where;
|
||||||
}
|
}
|
||||||
|
|
464
tests/birdweight.chk
Normal file
464
tests/birdweight.chk
Normal file
|
@ -0,0 +1,464 @@
|
||||||
|
|
||||||
|
Welcome to Adventure!! Would you like instructions?
|
||||||
|
|
||||||
|
> n
|
||||||
|
|
||||||
|
You are standing at the end of a road before a small brick building.
|
||||||
|
Around you is a forest. A small stream flows out of the building and
|
||||||
|
down a gully.
|
||||||
|
|
||||||
|
> seed 976729036
|
||||||
|
|
||||||
|
Seed set to 976729036
|
||||||
|
|
||||||
|
You're in front of building.
|
||||||
|
|
||||||
|
> in
|
||||||
|
|
||||||
|
You are inside a building, a well house for a large spring.
|
||||||
|
|
||||||
|
There are some keys on the ground here.
|
||||||
|
|
||||||
|
There is a shiny brass lamp nearby.
|
||||||
|
|
||||||
|
There is food here.
|
||||||
|
|
||||||
|
There is a bottle of water here.
|
||||||
|
|
||||||
|
> take lamp
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> take food
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> take bottle
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> inventory
|
||||||
|
|
||||||
|
You are currently holding the following:
|
||||||
|
Brass lantern
|
||||||
|
Tasty food
|
||||||
|
Small bottle
|
||||||
|
Water in the bottle
|
||||||
|
|
||||||
|
> out
|
||||||
|
|
||||||
|
You're in front of building.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are in a valley in the forest beside a stream tumbling along a
|
||||||
|
rocky bed.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are wandering aimlessly through the forest.
|
||||||
|
|
||||||
|
> n
|
||||||
|
|
||||||
|
You are wandering aimlessly through the forest.
|
||||||
|
|
||||||
|
Your keen eye spots a severed leporine appendage lying on the ground.
|
||||||
|
|
||||||
|
> take appendage
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are wandering aimlessly through the forest.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You're in valley.
|
||||||
|
|
||||||
|
> n
|
||||||
|
|
||||||
|
You're in front of building.
|
||||||
|
|
||||||
|
> in
|
||||||
|
|
||||||
|
You're inside building.
|
||||||
|
|
||||||
|
There are some keys on the ground here.
|
||||||
|
|
||||||
|
> xyzzy
|
||||||
|
|
||||||
|
>>Foof!<<
|
||||||
|
|
||||||
|
It is now pitch dark. If you proceed you will likely fall into a pit.
|
||||||
|
|
||||||
|
> on
|
||||||
|
|
||||||
|
Your lamp is now on.
|
||||||
|
|
||||||
|
You are in a debris room filled with stuff washed in from the surface.
|
||||||
|
A low wide passage with cobbles becomes plugged with mud and debris
|
||||||
|
here, but an awkward canyon leads upward and west. In the mud someone
|
||||||
|
has scrawled, "MAGIC WORD XYZZY".
|
||||||
|
|
||||||
|
A three foot black rod with a rusty star on an end lies nearby.
|
||||||
|
|
||||||
|
> e
|
||||||
|
|
||||||
|
You are crawling over cobbles in a low passage. There is a dim light
|
||||||
|
at the east end of the passage.
|
||||||
|
|
||||||
|
There is a small wicker cage discarded nearby.
|
||||||
|
|
||||||
|
> take cage
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You're in debris room.
|
||||||
|
|
||||||
|
A three foot black rod with a rusty star on an end lies nearby.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are in an awkward sloping east/west canyon.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are in a splendid chamber thirty feet high. The walls are frozen
|
||||||
|
rivers of orange stone. An awkward canyon and a good passage exit
|
||||||
|
from east and west sides of the chamber.
|
||||||
|
|
||||||
|
A cheerful little bird is sitting here singing.
|
||||||
|
|
||||||
|
> take bird
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> e
|
||||||
|
|
||||||
|
You are in an awkward sloping east/west canyon.
|
||||||
|
|
||||||
|
> e
|
||||||
|
|
||||||
|
You're in debris room.
|
||||||
|
|
||||||
|
A three foot black rod with a rusty star on an end lies nearby.
|
||||||
|
|
||||||
|
> take rod
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are in an awkward sloping east/west canyon.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You're in bird chamber.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
At your feet is a small pit breathing traces of white mist. An east
|
||||||
|
passage ends here except for a small crack leading on.
|
||||||
|
|
||||||
|
Rough stone steps lead down the pit.
|
||||||
|
|
||||||
|
> d
|
||||||
|
|
||||||
|
You are at one end of a vast hall stretching forward out of sight to
|
||||||
|
the west. There are openings to either side. Nearby, a wide stone
|
||||||
|
staircase leads downward. The hall is filled with wisps of white mist
|
||||||
|
swaying to and fro almost as if alive. A cold wind blows up the
|
||||||
|
staircase. There is a passage at the top of a dome behind you.
|
||||||
|
|
||||||
|
Rough stone steps lead up the dome.
|
||||||
|
|
||||||
|
> inventory
|
||||||
|
|
||||||
|
You are currently holding the following:
|
||||||
|
Brass lantern
|
||||||
|
Wicker cage
|
||||||
|
Black rod
|
||||||
|
Little bird in cage
|
||||||
|
Tasty food
|
||||||
|
Small bottle
|
||||||
|
Water in the bottle
|
||||||
|
Leporine appendage
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are on the east bank of a fissure slicing clear across the hall.
|
||||||
|
The mist is quite thick here, and the fissure is too wide to jump.
|
||||||
|
|
||||||
|
> wave rod
|
||||||
|
|
||||||
|
The bird flies agitatedly about the cage.
|
||||||
|
|
||||||
|
A crystal bridge now spans the fissure.
|
||||||
|
|
||||||
|
> drop rod
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> e
|
||||||
|
|
||||||
|
You're in Hall of Mists.
|
||||||
|
|
||||||
|
Rough stone steps lead up the dome.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
This is a low room with a crude note on the wall. The note says,
|
||||||
|
"You won't get it up the steps".
|
||||||
|
|
||||||
|
There is a large sparkling nugget of gold here!
|
||||||
|
|
||||||
|
> take gold
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> n
|
||||||
|
|
||||||
|
You're in Hall of Mists.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You're on east bank of fissure.
|
||||||
|
|
||||||
|
A three foot black rod with a rusty star on an end lies nearby.
|
||||||
|
|
||||||
|
A crystal bridge spans the fissure.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are on the west side of the fissure in the Hall of Mists.
|
||||||
|
|
||||||
|
There are diamonds here!
|
||||||
|
|
||||||
|
A crystal bridge spans the fissure.
|
||||||
|
|
||||||
|
> drop gold
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> take diamonds
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are at the west end of the Hall of Mists. A low wide crawl
|
||||||
|
continues west and another goes north. To the south is a little
|
||||||
|
passage 6 feet off the floor.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are at the east end of a very long hall apparently without side
|
||||||
|
chambers. To the east a low wide crawl slants up. To the north a
|
||||||
|
round two foot hole slants down.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are at the west end of a very long featureless hall. The hall
|
||||||
|
joins up with a narrow north/south passage.
|
||||||
|
|
||||||
|
> inventory
|
||||||
|
|
||||||
|
You are currently holding the following:
|
||||||
|
Brass lantern
|
||||||
|
Wicker cage
|
||||||
|
Little bird in cage
|
||||||
|
Tasty food
|
||||||
|
Small bottle
|
||||||
|
Water in the bottle
|
||||||
|
Leporine appendage
|
||||||
|
Several diamonds
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are in a maze of twisty little passages, all different.
|
||||||
|
|
||||||
|
> sw
|
||||||
|
|
||||||
|
You are in a little maze of twisty passages, all different.
|
||||||
|
|
||||||
|
> se
|
||||||
|
|
||||||
|
You are in a little maze of twisting passages, all different.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
A little dwarf just walked around a corner, saw you, threw a little
|
||||||
|
axe at you which missed, cursed, and ran away.
|
||||||
|
|
||||||
|
Dead end
|
||||||
|
|
||||||
|
There is a little axe here.
|
||||||
|
|
||||||
|
There is a massive and somewhat battered vending machine here. The
|
||||||
|
instructions on it read: "Drop coins here to receive fresh batteries."
|
||||||
|
|
||||||
|
> drop food
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> drop water
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> take axe
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> kill machine
|
||||||
|
|
||||||
|
As you strike the vending machine, it pivots backward along with a
|
||||||
|
section of wall, revealing a dark passage leading south.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are in a long, rough-hewn, north/south corridor.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are in a large chamber with passages to the west and north.
|
||||||
|
|
||||||
|
A formidable ogre bars the northern exit.
|
||||||
|
|
||||||
|
> drop diamonds
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You are in a long, rough-hewn, north/south corridor.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
There is no way to go that direction.
|
||||||
|
|
||||||
|
You are in a long, rough-hewn, north/south corridor.
|
||||||
|
|
||||||
|
> n
|
||||||
|
|
||||||
|
Dead end
|
||||||
|
|
||||||
|
There is a bottle of water here.
|
||||||
|
|
||||||
|
There is food here.
|
||||||
|
|
||||||
|
There is a massive vending machine here, swung back to reveal a
|
||||||
|
southward passage.
|
||||||
|
|
||||||
|
> n
|
||||||
|
|
||||||
|
You are in a little maze of twisting passages, all different.
|
||||||
|
|
||||||
|
> n
|
||||||
|
|
||||||
|
You are in a little maze of twisty passages, all different.
|
||||||
|
|
||||||
|
> nw
|
||||||
|
|
||||||
|
You are in a maze of twisty little passages, all different.
|
||||||
|
|
||||||
|
> d
|
||||||
|
|
||||||
|
You're at west end of long hall.
|
||||||
|
|
||||||
|
> e
|
||||||
|
|
||||||
|
You're at east end of long hall.
|
||||||
|
|
||||||
|
> e
|
||||||
|
|
||||||
|
You're at west end of Hall of Mists.
|
||||||
|
|
||||||
|
> e
|
||||||
|
|
||||||
|
You're on west bank of fissure.
|
||||||
|
|
||||||
|
There is a large sparkling nugget of gold here!
|
||||||
|
|
||||||
|
A crystal bridge spans the fissure.
|
||||||
|
|
||||||
|
> take gold
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You're at west end of Hall of Mists.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You're at east end of long hall.
|
||||||
|
|
||||||
|
> w
|
||||||
|
|
||||||
|
You're at west end of long hall.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are in a maze of twisty little passages, all different.
|
||||||
|
|
||||||
|
> sw
|
||||||
|
|
||||||
|
You are in a little maze of twisty passages, all different.
|
||||||
|
|
||||||
|
> se
|
||||||
|
|
||||||
|
You are in a little maze of twisting passages, all different.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
Dead end
|
||||||
|
|
||||||
|
There is a bottle of water here.
|
||||||
|
|
||||||
|
There is food here.
|
||||||
|
|
||||||
|
There is a massive vending machine here, swung back to reveal a
|
||||||
|
southward passage.
|
||||||
|
|
||||||
|
> take bottle
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> take food
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are in a long, rough-hewn, north/south corridor.
|
||||||
|
|
||||||
|
> s
|
||||||
|
|
||||||
|
You are in a large chamber with passages to the west and north.
|
||||||
|
|
||||||
|
There are diamonds here!
|
||||||
|
|
||||||
|
A formidable ogre bars the northern exit.
|
||||||
|
|
||||||
|
> throw appendage
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
> kill ogre
|
||||||
|
|
||||||
|
The ogre, who despite his bulk is quite agile, easily dodges your
|
||||||
|
attack. He seems almost amused by your puny effort.
|
||||||
|
|
||||||
|
> take appendage
|
||||||
|
|
||||||
|
OK
|
||||||
|
|
||||||
|
|
||||||
|
You scored 61 out of a possible 430, using 81 turns.
|
||||||
|
|
||||||
|
Your score qualifies you as a novice class adventurer.
|
||||||
|
|
||||||
|
To achieve the next higher rating, you need 60 more points.
|
87
tests/birdweight.log
Normal file
87
tests/birdweight.log
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
## Verify that the bird is weightless in inventory
|
||||||
|
# Checks fix for GitLab issue #40
|
||||||
|
n
|
||||||
|
#seed 687800971
|
||||||
|
seed 976729036
|
||||||
|
in
|
||||||
|
take lamp
|
||||||
|
take food
|
||||||
|
take bottle
|
||||||
|
inventory
|
||||||
|
out
|
||||||
|
s
|
||||||
|
w
|
||||||
|
n
|
||||||
|
take appendage
|
||||||
|
s
|
||||||
|
s
|
||||||
|
n
|
||||||
|
in
|
||||||
|
xyzzy
|
||||||
|
on
|
||||||
|
e
|
||||||
|
take cage
|
||||||
|
w
|
||||||
|
w
|
||||||
|
w
|
||||||
|
take bird
|
||||||
|
e
|
||||||
|
e
|
||||||
|
take rod
|
||||||
|
w
|
||||||
|
w
|
||||||
|
w
|
||||||
|
d
|
||||||
|
inventory
|
||||||
|
w
|
||||||
|
wave rod
|
||||||
|
drop rod
|
||||||
|
e
|
||||||
|
s
|
||||||
|
take gold
|
||||||
|
n
|
||||||
|
w
|
||||||
|
w
|
||||||
|
drop gold
|
||||||
|
take diamonds
|
||||||
|
w
|
||||||
|
w
|
||||||
|
w
|
||||||
|
inventory
|
||||||
|
s
|
||||||
|
sw
|
||||||
|
se
|
||||||
|
s
|
||||||
|
drop food
|
||||||
|
drop water
|
||||||
|
take axe
|
||||||
|
kill machine
|
||||||
|
s
|
||||||
|
s
|
||||||
|
drop diamonds
|
||||||
|
w
|
||||||
|
w
|
||||||
|
n
|
||||||
|
# Back at vending machine
|
||||||
|
n
|
||||||
|
n
|
||||||
|
nw
|
||||||
|
d
|
||||||
|
e
|
||||||
|
e
|
||||||
|
e
|
||||||
|
take gold
|
||||||
|
w
|
||||||
|
w
|
||||||
|
w
|
||||||
|
s
|
||||||
|
sw
|
||||||
|
se
|
||||||
|
s
|
||||||
|
take bottle
|
||||||
|
take food
|
||||||
|
s
|
||||||
|
s
|
||||||
|
throw appendage
|
||||||
|
kill ogre
|
||||||
|
take appendage
|
Loading…
Add table
Add a link
Reference in a new issue