aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/titanic/game/chicken_dispensor.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/engines/titanic/game/chicken_dispensor.cpp b/engines/titanic/game/chicken_dispensor.cpp
index dd87848456..8a56f43fff 100644
--- a/engines/titanic/game/chicken_dispensor.cpp
+++ b/engines/titanic/game/chicken_dispensor.cpp
@@ -21,6 +21,7 @@
*/
#include "titanic/game/chicken_dispensor.h"
+#include "titanic/carry/chicken.h"
#include "titanic/core/project_item.h"
#include "titanic/pet_control/pet_control.h"
@@ -92,9 +93,7 @@ bool CChickenDispensor::StatusChangeMsg(CStatusChangeMsg *msg) {
playSound("z#400.wav");
} else {
playMovie(12, 16, MOVIE_NOTIFY_OBJECT | MOVIE_GAMESTATE);
- _dispensed = true;
}
- _dispenseMode = DISPENSE_NONE;
break;
default:
@@ -113,6 +112,17 @@ bool CChickenDispensor::MovieEndMsg(CMovieEndMsg *msg) {
playSound("b#50.wav", 50);
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 {
+ // WORKAROUND: If the fuse for the dispensor is removed in Titania's fusebox,
+ // make the dispensed chicken already cold
+ CChicken::_temperature = 0;
+ }
} else if (_dispensed) {
// Chicken dispensed whilst dispensor is "disabled", which basically
// spits the chicken out at high speed directly into the SuccUBus