diff options
-rw-r--r-- | engines/teenagent/teenagent.cpp | 12 | ||||
-rw-r--r-- | engines/teenagent/teenagent.h | 1 |
2 files changed, 11 insertions, 2 deletions
diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp index 05937f987c..42478cfa12 100644 --- a/engines/teenagent/teenagent.cpp +++ b/engines/teenagent/teenagent.cpp @@ -147,7 +147,7 @@ void TeenAgentEngine::examine(const Common::Point &point, Object *object) { if (object->actor_rect.valid()) scene->moveTo(dst, object->actor_orientation); dst_object = object; - } else if (!scene_busy || action == kActionNone) { + } else if (!scene_busy) { //do not reset anything while scene is busy, but allow interrupts while walking. debug(0, "click %d, %d", point.x, point.y); action = kActionNone; @@ -608,7 +608,7 @@ void TeenAgentEngine::displayMessage(const Common::String &str, byte color, uint return; } - { + if (color == 0xd1) { //mark's SceneEvent e(SceneEvent::kPlayAnimation); e.animation = 0; e.slot = 0x80; @@ -796,6 +796,14 @@ void TeenAgentEngine::setLan(byte id, byte value, byte scene_id) { scene->push(event); } +void TeenAgentEngine::setFlag(uint16 addr, byte value) { + SceneEvent event(SceneEvent::kSetFlag); + event.callback = addr; + event.color = value; + scene->push(event); +} + + void TeenAgentEngine::reloadLan() { SceneEvent event(SceneEvent::kSetLan); event.lan = 0; diff --git a/engines/teenagent/teenagent.h b/engines/teenagent/teenagent.h index 545cc68f9b..4a932047b5 100644 --- a/engines/teenagent/teenagent.h +++ b/engines/teenagent/teenagent.h @@ -95,6 +95,7 @@ public: void loadScene(byte id, uint16 x, uint16 y, byte o = 0); void setOns(byte id, byte value, byte scene_id = 0); void setLan(byte id, byte value, byte scene_id = 0); + void setFlag(uint16 addr, byte value); void reloadLan(); void rejectMessage(); |