aboutsummaryrefslogtreecommitdiff
path: root/engines/lure
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lure')
-rw-r--r--engines/lure/hotspots.cpp14
-rw-r--r--engines/lure/hotspots.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp
index 14df5ce2dc..e7c1b5020e 100644
--- a/engines/lure/hotspots.cpp
+++ b/engines/lure/hotspots.cpp
@@ -1951,6 +1951,8 @@ HandlerMethodPtr HotspotTickHandlers::getHandler(uint16 procOffset) {
return fireAnimHandler;
case 0x81B3:
return prisonerAnimHandler;
+ case 0x81F3:
+ return catrionaAnimHandler;
case 0x8241:
return headAnimHandler;
case 0x882A:
@@ -2707,6 +2709,18 @@ void HotspotTickHandlers::prisonerAnimHandler(Hotspot &h) {
}
}
+void HotspotTickHandlers::catrionaAnimHandler(Hotspot &h) {
+ h.handleTalkDialog();
+ if (h.frameCtr() > 0)
+ {
+ h.decrFrameCtr();
+ }
+ else
+ {
+ h.executeScript();
+ h.setFrameCtr(h.actionCtr());
+ }
+}
// Special variables used across multiple calls to talkAnimHandler
static TalkEntryData *_talkResponse;
diff --git a/engines/lure/hotspots.h b/engines/lure/hotspots.h
index b8a3f56d87..91d2190796 100644
--- a/engines/lure/hotspots.h
+++ b/engines/lure/hotspots.h
@@ -68,6 +68,7 @@ private:
static void playerSewerExitAnimHandler(Hotspot &h);
static void fireAnimHandler(Hotspot &h);
static void prisonerAnimHandler(Hotspot &h);
+ static void catrionaAnimHandler(Hotspot &h);
static void talkAnimHandler(Hotspot &h);
static void headAnimHandler(Hotspot &h);
static void rackSerfAnimHandler(Hotspot &h);