aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/neighborhood/caldoria/caldoria.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/pegasus/neighborhood/caldoria/caldoria.cpp')
-rw-r--r--engines/pegasus/neighborhood/caldoria/caldoria.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/engines/pegasus/neighborhood/caldoria/caldoria.cpp b/engines/pegasus/neighborhood/caldoria/caldoria.cpp
index 8c31debf1c..8d46300d9a 100644
--- a/engines/pegasus/neighborhood/caldoria/caldoria.cpp
+++ b/engines/pegasus/neighborhood/caldoria/caldoria.cpp
@@ -150,14 +150,6 @@ static const TimeValue k5To3Time = 41280;
const NotificationFlags kSinclairLoopDoneFlag = kLastNeighborhoodNotificationFlag << 1;
-void doorBombTimerExpiredFunction(FunctionPtr *, void *caldoria) {
- ((Caldoria *)caldoria)->doorBombTimerExpired();
-}
-
-void sinclairTimerExpiredFunction(FunctionPtr *, void *caldoria) {
- ((Caldoria *)caldoria)->sinclairTimerExpired();
-}
-
SinclairCallBack::SinclairCallBack(Caldoria *caldoria) {
_caldoria = caldoria;
}
@@ -941,7 +933,7 @@ void Caldoria::setUpRoofTop() {
} else if (GameState.getCaldoriaDoorBombed()) {
// Long enough for AI hints...?
_utilityFuse.primeFuse(kCardBombCountDownTime);
- _utilityFuse.setFunctionPtr(&doorBombTimerExpiredFunction, (void *)this);
+ _utilityFuse.setFunctor(new Common::Functor0Mem<void, Caldoria>(this, &Caldoria::doorBombTimerExpired));
_utilityFuse.lightFuse();
loopCroppedMovie("Images/Caldoria/A48 Bomb Loop", kCaldoria48CardBombLoopLeft, kCaldoria48CardBombLoopTop);
@@ -965,7 +957,7 @@ void Caldoria::setUpRoofTop() {
if (!GameState.getCaldoriaSinclairShot()) {
if (GameState.getCaldoriaSawVoiceAnalysis() && !_utilityFuse.isFuseLit()) {
_utilityFuse.primeFuse(GameState.getCaldoriaFuseTimeLimit());
- _utilityFuse.setFunctionPtr(&sinclairTimerExpiredFunction, (void *)this);
+ _utilityFuse.setFunctor(new Common::Functor0Mem<void, Caldoria>(this, &Caldoria::sinclairTimerExpired));
_utilityFuse.lightFuse();
}
} else {
@@ -1198,7 +1190,7 @@ void Caldoria::receiveNotification(Notification *notification, const Notificatio
break;
case kCa49NorthVoiceAnalysis:
_utilityFuse.primeFuse(kSinclairShootsTimeLimit);
- _utilityFuse.setFunctionPtr(&sinclairTimerExpiredFunction, (void*) this);
+ _utilityFuse.setFunctor(new Common::Functor0Mem<void, Caldoria>(this, &Caldoria::sinclairTimerExpired));
_utilityFuse.lightFuse();
GameState.setCaldoriaSawVoiceAnalysis(true);
break;
@@ -1614,7 +1606,7 @@ void Caldoria::dropItemIntoRoom(Item *item, Hotspot *dropSpot) {
Neighborhood::dropItemIntoRoom(item, dropSpot);
// Long enough for AI hints...?
_utilityFuse.primeFuse(kCardBombCountDownTime);
- _utilityFuse.setFunctionPtr(&doorBombTimerExpiredFunction, (void *)this);
+ _utilityFuse.setFunctor(new Common::Functor0Mem<void, Caldoria>(this, &Caldoria::doorBombTimerExpired));
_utilityFuse.lightFuse();
GameState.setCaldoriaFuseTimeLimit(kCardBombCountDownTime);
loopCroppedMovie("Images/Caldoria/A48 Bomb Loop", kCaldoria48CardBombLoopLeft, kCaldoria48CardBombLoopTop);