aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/interaction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/fullpipe/interaction.cpp')
-rw-r--r--engines/fullpipe/interaction.cpp34
1 files changed, 17 insertions, 17 deletions
diff --git a/engines/fullpipe/interaction.cpp b/engines/fullpipe/interaction.cpp
index 1d04aa019d..b15ae80150 100644
--- a/engines/fullpipe/interaction.cpp
+++ b/engines/fullpipe/interaction.cpp
@@ -40,8 +40,8 @@ bool canInteractAny(GameObject *obj1, GameObject *obj2, int invId) {
sceneId = g_fp->_currentScene->_sceneId;
InteractionController *intC = getGameLoaderInteractionController();
- for (ObList::iterator i = intC->_interactions.begin(); i != intC->_interactions.end(); ++i) {
- Interaction *intr = (Interaction *)*i;
+ for (InteractionController::InteractionList::iterator i = intC->_interactions.begin(); i != intC->_interactions.end(); ++i) {
+ Interaction *intr = *i;
if (intr->_sceneId > 0 && intr->_sceneId != sceneId)
break;
@@ -69,10 +69,7 @@ bool InteractionController::load(MfcArchive &file) {
int static_compSceneId = 0;
-bool InteractionController::compareInteractions(const void *p1, const void *p2) {
- const Interaction *i1 = (const Interaction *)p1;
- const Interaction *i2 = (const Interaction *)p2;
-
+bool InteractionController::compareInteractions(const Interaction *i1, const Interaction *i2) {
if (i2->_sceneId < i1->_sceneId) {
if (i1->_sceneId != static_compSceneId)
return false;
@@ -118,8 +115,8 @@ bool InteractionController::handleInteraction(StaticANIObject *subj, GameObject
MessageQueue *mq;
ExCommand *ex;
- for (ObList::iterator i = _interactions.begin(); i != _interactions.end(); ++i) {
- Interaction *cinter = (Interaction *)*i;
+ for (InteractionList::iterator i = _interactions.begin(); i != _interactions.end(); ++i) {
+ Interaction *cinter = *i;
if (!cinter->canInteract(subj, obj, invId))
continue;
@@ -134,8 +131,8 @@ bool InteractionController::handleInteraction(StaticANIObject *subj, GameObject
obj->getPicAniInfo(&aniInfo);
- if (cinter->_staticsId1) {
- StaticANIObject *ani = (StaticANIObject *)obj;
+ if (cinter->_staticsId1 && obj->_objtype == kObjTypeStaticANIObject) {
+ StaticANIObject *ani = static_cast<StaticANIObject *>(obj);
ani->_messageQueueId = 0;
ani->changeStatics2(cinter->_staticsId1);
}
@@ -241,7 +238,7 @@ LABEL_38:
if (inter->isOverlapping(subj, obj)) {
if (obj->_objtype == kObjTypeStaticANIObject) {
- StaticANIObject *ani = (StaticANIObject *)obj;
+ StaticANIObject *ani = static_cast<StaticANIObject *>(obj);
ani->queueMessageQueue(0);
@@ -304,7 +301,7 @@ LABEL_38:
obj->getPicAniInfo(&aniInfo);
if (obj->_objtype == kObjTypeStaticANIObject && inter->_staticsId1) {
- StaticANIObject *ani = (StaticANIObject *)obj;
+ StaticANIObject *ani = static_cast<StaticANIObject *>(obj);
ani->_messageQueueId = 0;
ani->changeStatics2(inter->_staticsId1);
@@ -346,7 +343,10 @@ LABEL_38:
if (!inter->_staticsId1 || !(inter->_flags & 1))
return true;
- StaticANIObject *ani = (StaticANIObject *)obj;
+ if (obj->_objtype != kObjTypeStaticANIObject)
+ return false;
+
+ StaticANIObject *ani = static_cast<StaticANIObject *>(obj);
if (!ani->isIdle())
return false;
@@ -407,8 +407,8 @@ LABEL_38:
}
Interaction *InteractionController::getInteractionByObjectIds(int obId, int obId2, int obId3) {
- for (ObList::iterator i = _interactions.begin(); i != _interactions.end(); ++i) {
- Interaction *intr = (Interaction *)*i;
+ for (InteractionList::iterator i = _interactions.begin(); i != _interactions.end(); ++i) {
+ Interaction *intr = *i;
if (intr->_objectId1 == obId && intr->_objectId2 == obId2 && intr->_objectId3 == obId3)
return intr;
@@ -458,7 +458,7 @@ bool Interaction::load(MfcArchive &file) {
_flags = file.readUint32LE();
_actionName = file.readPascalString();
- _messageQueue = (MessageQueue *)file.readClass();
+ _messageQueue = file.readClass<MessageQueue>();
return true;
}
@@ -480,7 +480,7 @@ bool Interaction::canInteract(GameObject *obj1, GameObject *obj2, int invId) {
if (obj2->_objtype != kObjTypeStaticANIObject)
return false;
- StaticANIObject *st = (StaticANIObject *)obj2;
+ StaticANIObject *st = static_cast<StaticANIObject *>(obj2);
if (!st->_statics)
return false;