aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Menshakov2010-02-07 17:13:39 +0000
committerVladimir Menshakov2010-02-07 17:13:39 +0000
commitae938dbef8d77bd8778d6e46992c1207d961bf9f (patch)
treee0d8727370c337426d66da3a8f96ee8ce942cf70
parent00d00f9cdcd0279e3e3014080508e571abd7795f (diff)
downloadscummvm-rg350-ae938dbef8d77bd8778d6e46992c1207d961bf9f.tar.gz
scummvm-rg350-ae938dbef8d77bd8778d6e46992c1207d961bf9f.tar.bz2
scummvm-rg350-ae938dbef8d77bd8778d6e46992c1207d961bf9f.zip
added setFlag, fixed non-mark's messages
svn-id: r47969
-rw-r--r--engines/teenagent/teenagent.cpp12
-rw-r--r--engines/teenagent/teenagent.h1
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();