aboutsummaryrefslogtreecommitdiff
path: root/engines/pegasus/neighborhood/caldoria/caldoria.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2012-09-21 02:18:54 +0200
committerJohannes Schickel2012-09-21 02:35:50 +0200
commit8aceef971106ba35ab234b165dbe6e19c842f336 (patch)
treedc1286a31068872960cd3d5925acba78a2b912a7 /engines/pegasus/neighborhood/caldoria/caldoria.cpp
parentb0079f4fa67099cec2c58e7907bf3fe09d0755cf (diff)
downloadscummvm-rg350-8aceef971106ba35ab234b165dbe6e19c842f336.tar.gz
scummvm-rg350-8aceef971106ba35ab234b165dbe6e19c842f336.tar.bz2
scummvm-rg350-8aceef971106ba35ab234b165dbe6e19c842f336.zip
PEGASUS: Replace FunctionPtr by our Functor code in Common.
This "fixes" a segmentation fault in our buildbot's toolchain for DC. The segmentation fault occured while compiling engines/pegasus/ai/ai_condition.cpp. Thanks to clone2727 for looking over this and testing it.
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);