Skip to content

Commit

Permalink
TITANIC: Fix getting chicken after not picking up a previous one
Browse files Browse the repository at this point in the history
When you dispense a chicken, but don't pick it up and leave, the
chicken is returned to the dispensor. But previously you couldn't
then get another chicken, though you should be able to get one.
  • Loading branch information
dreammaster committed Aug 20, 2017
1 parent 8e31ffa commit a21e8b9
Showing 1 changed file with 2 additions and 7 deletions.
9 changes: 2 additions & 7 deletions engines/titanic/game/chicken_dispensor.cpp
Expand Up @@ -104,7 +104,7 @@ bool CChickenDispensor::StatusChangeMsg(CStatusChangeMsg *msg) {
}

bool CChickenDispensor::MovieEndMsg(CMovieEndMsg *msg) {
int movieFrame = getMovieFrame();
int movieFrame = msg->_endFrame;

if (movieFrame == 16) {
// Dispensed a chicken
Expand All @@ -113,12 +113,7 @@ bool CChickenDispensor::MovieEndMsg(CMovieEndMsg *msg) {
CActMsg actMsg("Dispense Chicken");
actMsg.execute("Chicken");

if (_dispenseMode == DISPENSE_HOT) {
// A properly hot chicken is dispensed, no further ones will be
// until the current one is used up, and the fuse in Titania's
// fusebox is removed and replaced
_dispenseMode = DISPENSE_NONE;
} else {
if (_dispenseMode != DISPENSE_HOT) {
// WORKAROUND: If the fuse for the dispensor is removed in Titania's fusebox,
// make the dispensed chicken already cold
CChicken::_temperature = 0;
Expand Down

3 comments on commit a21e8b9

@dafioram
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In scummvm and the original you can get another chicken by resetting the yellow fuse. Even if you leave it in the sgt restaurant.

@dafioram
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although I would consider what you have done an improvement over the original since you don't have to go all the way to the fuse box and back. Can you also have the chicken reset if the succubus or parrot eats it and not just if it gets lost in the sgt restaurant?

@dreammaster
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, this should be likewise the behaviour now. Dispensors have a "dispense mode" for hot, cold, or do not dispense', and was previously, and in my view incorrectly, resetting it when a chicken was dispensed. With the reset removed, it falls back on logic that will allow dispensing a new chicken if the user 1) doesn't have a chicken in their inventory, and 2) there isn't one as in transit mail anywhere. So whether it's been eating by the parrot, the succubus, or wasn't picked up, all in cases you'll be able to get a fresh chicken now without resorting to going to other SGT floors or resetting the fuse.

Please sign in to comment.