[Scummvm-cvs-logs] SF.net SVN: scummvm: [30672] scummvm/trunk/engines/lure/hotspots.cpp
dreammaster at users.sourceforge.net
dreammaster at users.sourceforge.net
Mon Jan 28 12:28:49 CET 2008
Revision: 30672
http://scummvm.svn.sourceforge.net/scummvm/?rev=30672&view=rev
Author: dreammaster
Date: 2008-01-28 03:28:49 -0800 (Mon, 28 Jan 2008)
Log Message:
-----------
Changed array of method pointers to case statement to fix compiler error in earlier versions of gcc
Modified Paths:
--------------
scummvm/trunk/engines/lure/hotspots.cpp
Modified: scummvm/trunk/engines/lure/hotspots.cpp
===================================================================
--- scummvm/trunk/engines/lure/hotspots.cpp 2008-01-28 11:14:34 UTC (rev 30671)
+++ scummvm/trunk/engines/lure/hotspots.cpp 2008-01-28 11:28:49 UTC (rev 30672)
@@ -1254,49 +1254,112 @@
fields.setField(USE_HOTSPOT_ID, hotspot->hotspotId);
}
- ActionProcPtr actionProcList[NPC_JUMP_ADDRESS + 1] = {
- &Hotspot::doNothing,
- &Hotspot::doGet,
- NULL,
- &Hotspot::doOperate,
- &Hotspot::doOperate,
- &Hotspot::doOperate,
- &Hotspot::doOpen,
- &Hotspot::doClose,
- &Hotspot::doLockUnlock,
- &Hotspot::doLockUnlock,
- &Hotspot::doUse,
- &Hotspot::doGive,
- &Hotspot::doTalkTo,
- &Hotspot::doTell,
- NULL,
- &Hotspot::doLook,
- &Hotspot::doLookAt,
- &Hotspot::doLookThrough,
- &Hotspot::doAsk,
- NULL,
- &Hotspot::doDrink,
- &Hotspot::doStatus,
- &Hotspot::doGoto,
- &Hotspot::doReturn,
- &Hotspot::doBribe,
- &Hotspot::doExamine,
- NULL, NULL,
- &Hotspot::npcSetRoomAndBlockedOffset,
- &Hotspot::npcHeySir,
- &Hotspot::npcExecScript,
- &Hotspot::npcResetPausedList,
- &Hotspot::npcSetRandomDest,
- &Hotspot::npcWalkingCheck,
- &Hotspot::npcSetSupportOffset,
- &Hotspot::npcSupportOffsetConditional,
- &Hotspot::npcDispatchAction,
- &Hotspot::npcTalkNpcToNpc,
- &Hotspot::npcPause,
- &Hotspot::npcStartTalking,
- &Hotspot::npcJumpAddress};
+ // Call the appropriate action method
+ switch (action) {
+ case GET:
+ doGet(hotspot);
+ break;
+ case PUSH:
+ case PULL:
+ case OPERATE:
+ doOperate(hotspot);
+ break;
+ case OPEN:
+ doOpen(hotspot);
+ break;
+ case CLOSE:
+ doClose(hotspot);
+ break;
+ case LOCK:
+ case UNLOCK:
+ doLockUnlock(hotspot);
+ break;
+ case USE:
+ doUse(hotspot);
+ break;
+ case GIVE:
+ doGive(hotspot);
+ break;
+ case TALK_TO:
+ doTalkTo(hotspot);
+ break;
+ case TELL:
+ doTell(hotspot);
+ break;
+ case LOOK:
+ doLook(hotspot);
+ break;
+ case LOOK_AT:
+ doLookAt(hotspot);
+ break;
+ case LOOK_THROUGH:
+ doLookThrough(hotspot);
+ break;
+ case ASK:
+ doAsk(hotspot);
+ break;
+ case DRINK:
+ doDrink(hotspot);
+ break;
+ case STATUS:
+ doStatus(hotspot);
+ break;
+ case GO_TO:
+ doGoto(hotspot);
+ break;
+ case RETURN:
+ doReturn(hotspot);
+ break;
+ case BRIBE:
+ doBribe(hotspot);
+ break;
+ case EXAMINE:
+ doExamine(hotspot);
+ break;
+ case NPC_SET_ROOM_AND_OFFSET:
+ npcSetRoomAndBlockedOffset(hotspot);
+ break;
+ case NPC_TALK_TO_PLAYER:
+ npcHeySir(hotspot);
+ break;
+ case NPC_EXEC_SCRIPT:
+ npcExecScript(hotspot);
+ break;
+ case NPC_RESET_PAUSED_LIST:
+ npcResetPausedList(hotspot);
+ break;
+ case NPC_SET_RAND_DEST:
+ npcSetRandomDest(hotspot);
+ break;
+ case NPC_WALKING_CHECK:
+ npcWalkingCheck(hotspot);
+ break;
+ case NPC_SET_SUPPORT_OFFSET:
+ npcSetSupportOffset(hotspot);
+ break;
+ case NPC_SUPPORT_OFFSET_COND:
+ npcSupportOffsetConditional(hotspot);
+ break;
+ case NPC_DISPATCH_ACTION:
+ npcDispatchAction(hotspot);
+ break;
+ case NPC_TALK_NPC_TO_NPC:
+ npcTalkNpcToNpc(hotspot);
+ break;
+ case NPC_PAUSE:
+ npcPause(hotspot);
+ break;
+ case NPC_START_TALKING:
+ npcStartTalking(hotspot);
+ break;
+ case NPC_JUMP_ADDRESS:
+ npcJumpAddress(hotspot);
+ break;
+ default:
+ doNothing(hotspot);
+ break;
+ }
- (this->*actionProcList[action])(hotspot);
debugC(ERROR_DETAILED, kLureDebugHotspots, "Action charId=%xh Action=%d/%s Complete",
_hotspotId, (int)action, (action > EXAMINE) ? NULL : stringList.getString((int)action));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list