[Scummvm-cvs-logs] SF.net SVN: scummvm: [23847] scummvm/branches/branch-0-9-0/engines
chrilith at users.sourceforge.net
chrilith at users.sourceforge.net
Sat Sep 9 16:36:35 CEST 2006
Revision: 23847
http://svn.sourceforge.net/scummvm/?rev=23847&view=rev
Author: chrilith
Date: 2006-09-09 07:36:20 -0700 (Sat, 09 Sep 2006)
Log Message:
-----------
backport lastest PalmOS related fixes
Modified Paths:
--------------
scummvm/branches/branch-0-9-0/engines/gob/scenery_v1.cpp
scummvm/branches/branch-0-9-0/engines/sword1/control.cpp
scummvm/branches/branch-0-9-0/engines/sword1/logic.cpp
scummvm/branches/branch-0-9-0/engines/sword1/logic.h
scummvm/branches/branch-0-9-0/engines/sword1/memman.h
scummvm/branches/branch-0-9-0/engines/sword2/interpreter.cpp
scummvm/branches/branch-0-9-0/engines/sword2/logic.cpp
scummvm/branches/branch-0-9-0/engines/sword2/logic.h
scummvm/branches/branch-0-9-0/engines/sword2/resman.h
Modified: scummvm/branches/branch-0-9-0/engines/gob/scenery_v1.cpp
===================================================================
--- scummvm/branches/branch-0-9-0/engines/gob/scenery_v1.cpp 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/gob/scenery_v1.cpp 2006-09-09 14:36:20 UTC (rev 23847)
@@ -146,10 +146,10 @@
pictIndex = (pictIndex & 15) - 1;
- left = FROM_LE_16(pictPtr[pictIndex][pieceIndex].left);
- right = FROM_LE_16(pictPtr[pictIndex][pieceIndex].right);
- top = FROM_LE_16(pictPtr[pictIndex][pieceIndex].top);
- bottom = FROM_LE_16(pictPtr[pictIndex][pieceIndex].bottom);
+ left = READ_LE_UINT16(&pictPtr[pictIndex][pieceIndex].left);
+ right = READ_LE_UINT16(&pictPtr[pictIndex][pieceIndex].right);
+ top = READ_LE_UINT16(&pictPtr[pictIndex][pieceIndex].top);
+ bottom = READ_LE_UINT16(&pictPtr[pictIndex][pieceIndex].bottom);
if (flags & 2) {
if (destX < _vm->_anim->_areaLeft) {
Modified: scummvm/branches/branch-0-9-0/engines/sword1/control.cpp
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword1/control.cpp 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword1/control.cpp 2006-09-09 14:36:20 UTC (rev 23847)
@@ -140,12 +140,12 @@
FrameHeader *fHead = _resMan->fetchFrame(_resMan->fetchRes(_resId), _frameIdx);
uint8 *src = (uint8*)fHead + sizeof(FrameHeader);
uint8 *dst = _dstBuf;
- for (uint16 cnt = 0; cnt < FROM_LE_16(fHead->height); cnt++) {
- for (uint16 cntx = 0; cntx < FROM_LE_16(fHead->width); cntx++)
+ for (uint16 cnt = 0; cnt < READ_LE_UINT16(&fHead->height); cnt++) {
+ for (uint16 cntx = 0; cntx < READ_LE_UINT16(&fHead->width); cntx++)
if (src[cntx])
dst[cntx] = src[cntx];
dst += SCREEN_WIDTH;
- src += FROM_LE_16(fHead->width);
+ src += READ_LE_UINT16(&fHead->width);
}
_system->copyRectToScreen(_dstBuf, SCREEN_WIDTH, _x, _y, _width, _height);
}
Modified: scummvm/branches/branch-0-9-0/engines/sword1/logic.cpp
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword1/logic.cpp 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword1/logic.cpp 2006-09-09 14:36:20 UTC (rev 23847)
@@ -64,6 +64,8 @@
_eventMan = NULL;
_system = system;
_mixer = mixer;
+
+ setupMcodeTable();
}
Logic::~Logic(void) {
@@ -682,109 +684,113 @@
}
}
-BSMcodeTable Logic::_mcodeTable[100] = {
- &Logic::fnBackground,
- &Logic::fnForeground,
- &Logic::fnSort,
- &Logic::fnNoSprite,
- &Logic::fnMegaSet,
- &Logic::fnAnim,
- &Logic::fnSetFrame,
- &Logic::fnFullAnim,
- &Logic::fnFullSetFrame,
- &Logic::fnFadeDown,
- &Logic::fnFadeUp,
- &Logic::fnCheckFade,
- &Logic::fnSetSpritePalette,
- &Logic::fnSetWholePalette,
- &Logic::fnSetFadeTargetPalette,
- &Logic::fnSetPaletteToFade,
- &Logic::fnSetPaletteToCut,
- &Logic::fnPlaySequence,
- &Logic::fnIdle,
- &Logic::fnPause,
- &Logic::fnPauseSeconds,
- &Logic::fnQuit,
- &Logic::fnKillId,
- &Logic::fnSuicide,
- &Logic::fnNewScript,
- &Logic::fnSubScript,
- &Logic::fnRestartScript,
- &Logic::fnSetBookmark,
- &Logic::fnGotoBookmark,
- &Logic::fnSendSync,
- &Logic::fnWaitSync,
- &Logic::cfnClickInteract,
- &Logic::cfnSetScript,
- &Logic::cfnPresetScript,
- &Logic::fnInteract,
- &Logic::fnIssueEvent,
- &Logic::fnCheckForEvent,
- &Logic::fnWipeHands,
- &Logic::fnISpeak,
- &Logic::fnTheyDo,
- &Logic::fnTheyDoWeWait,
- &Logic::fnWeWait,
- &Logic::fnChangeSpeechText,
- &Logic::fnTalkError,
- &Logic::fnStartTalk,
- &Logic::fnCheckForTextLine,
- &Logic::fnAddTalkWaitStatusBit,
- &Logic::fnRemoveTalkWaitStatusBit,
- &Logic::fnNoHuman,
- &Logic::fnAddHuman,
- &Logic::fnBlankMouse,
- &Logic::fnNormalMouse,
- &Logic::fnLockMouse,
- &Logic::fnUnlockMouse,
- &Logic::fnSetMousePointer,
- &Logic::fnSetMouseLuggage,
- &Logic::fnMouseOn,
- &Logic::fnMouseOff,
- &Logic::fnChooser,
- &Logic::fnEndChooser,
- &Logic::fnStartMenu,
- &Logic::fnEndMenu,
- &Logic::cfnReleaseMenu,
- &Logic::fnAddSubject,
- &Logic::fnAddObject,
- &Logic::fnRemoveObject,
- &Logic::fnEnterSection,
- &Logic::fnLeaveSection,
- &Logic::fnChangeFloor,
- &Logic::fnWalk,
- &Logic::fnTurn,
- &Logic::fnStand,
- &Logic::fnStandAt,
- &Logic::fnFace,
- &Logic::fnFaceXy,
- &Logic::fnIsFacing,
- &Logic::fnGetTo,
- &Logic::fnGetToError,
- &Logic::fnGetPos,
- &Logic::fnGetGamepadXy,
- &Logic::fnPlayFx,
- &Logic::fnStopFx,
- &Logic::fnPlayMusic,
- &Logic::fnStopMusic,
- &Logic::fnInnerSpace,
- &Logic::fnRandom,
- &Logic::fnSetScreen,
- &Logic::fnPreload,
- &Logic::fnCheckCD,
- &Logic::fnRestartGame,
- &Logic::fnQuitGame,
- &Logic::fnDeathScreen,
- &Logic::fnSetParallax,
- &Logic::fnTdebug,
- &Logic::fnRedFlash,
- &Logic::fnBlueFlash,
- &Logic::fnYellow,
- &Logic::fnGreen,
- &Logic::fnPurple,
- &Logic::fnBlack
-};
+void Logic::setupMcodeTable() {
+ static const BSMcodeTable mcodeTable[100] = {
+ &Logic::fnBackground,
+ &Logic::fnForeground,
+ &Logic::fnSort,
+ &Logic::fnNoSprite,
+ &Logic::fnMegaSet,
+ &Logic::fnAnim,
+ &Logic::fnSetFrame,
+ &Logic::fnFullAnim,
+ &Logic::fnFullSetFrame,
+ &Logic::fnFadeDown,
+ &Logic::fnFadeUp,
+ &Logic::fnCheckFade,
+ &Logic::fnSetSpritePalette,
+ &Logic::fnSetWholePalette,
+ &Logic::fnSetFadeTargetPalette,
+ &Logic::fnSetPaletteToFade,
+ &Logic::fnSetPaletteToCut,
+ &Logic::fnPlaySequence,
+ &Logic::fnIdle,
+ &Logic::fnPause,
+ &Logic::fnPauseSeconds,
+ &Logic::fnQuit,
+ &Logic::fnKillId,
+ &Logic::fnSuicide,
+ &Logic::fnNewScript,
+ &Logic::fnSubScript,
+ &Logic::fnRestartScript,
+ &Logic::fnSetBookmark,
+ &Logic::fnGotoBookmark,
+ &Logic::fnSendSync,
+ &Logic::fnWaitSync,
+ &Logic::cfnClickInteract,
+ &Logic::cfnSetScript,
+ &Logic::cfnPresetScript,
+ &Logic::fnInteract,
+ &Logic::fnIssueEvent,
+ &Logic::fnCheckForEvent,
+ &Logic::fnWipeHands,
+ &Logic::fnISpeak,
+ &Logic::fnTheyDo,
+ &Logic::fnTheyDoWeWait,
+ &Logic::fnWeWait,
+ &Logic::fnChangeSpeechText,
+ &Logic::fnTalkError,
+ &Logic::fnStartTalk,
+ &Logic::fnCheckForTextLine,
+ &Logic::fnAddTalkWaitStatusBit,
+ &Logic::fnRemoveTalkWaitStatusBit,
+ &Logic::fnNoHuman,
+ &Logic::fnAddHuman,
+ &Logic::fnBlankMouse,
+ &Logic::fnNormalMouse,
+ &Logic::fnLockMouse,
+ &Logic::fnUnlockMouse,
+ &Logic::fnSetMousePointer,
+ &Logic::fnSetMouseLuggage,
+ &Logic::fnMouseOn,
+ &Logic::fnMouseOff,
+ &Logic::fnChooser,
+ &Logic::fnEndChooser,
+ &Logic::fnStartMenu,
+ &Logic::fnEndMenu,
+ &Logic::cfnReleaseMenu,
+ &Logic::fnAddSubject,
+ &Logic::fnAddObject,
+ &Logic::fnRemoveObject,
+ &Logic::fnEnterSection,
+ &Logic::fnLeaveSection,
+ &Logic::fnChangeFloor,
+ &Logic::fnWalk,
+ &Logic::fnTurn,
+ &Logic::fnStand,
+ &Logic::fnStandAt,
+ &Logic::fnFace,
+ &Logic::fnFaceXy,
+ &Logic::fnIsFacing,
+ &Logic::fnGetTo,
+ &Logic::fnGetToError,
+ &Logic::fnGetPos,
+ &Logic::fnGetGamepadXy,
+ &Logic::fnPlayFx,
+ &Logic::fnStopFx,
+ &Logic::fnPlayMusic,
+ &Logic::fnStopMusic,
+ &Logic::fnInnerSpace,
+ &Logic::fnRandom,
+ &Logic::fnSetScreen,
+ &Logic::fnPreload,
+ &Logic::fnCheckCD,
+ &Logic::fnRestartGame,
+ &Logic::fnQuitGame,
+ &Logic::fnDeathScreen,
+ &Logic::fnSetParallax,
+ &Logic::fnTdebug,
+ &Logic::fnRedFlash,
+ &Logic::fnBlueFlash,
+ &Logic::fnYellow,
+ &Logic::fnGreen,
+ &Logic::fnPurple,
+ &Logic::fnBlack
+ };
+ _mcodeTable = mcodeTable;
+}
+
int Logic::fnBackground(Object *cpt, int32 id, int32 c, int32 d, int32 e, int32 f, int32 z, int32 x) {
cpt->o_status &= ~(STAT_FORE | STAT_SORT);
Modified: scummvm/branches/branch-0-9-0/engines/sword1/logic.h
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword1/logic.h 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword1/logic.h 2006-09-09 14:36:20 UTC (rev 23847)
@@ -89,7 +89,8 @@
int fullAnimDriver(Object *compact);
int animDriver(Object *compact);
- static BSMcodeTable _mcodeTable[100];
+ void setupMcodeTable();
+ const BSMcodeTable *_mcodeTable;
uint16 inRange(uint16 a, uint16 b, uint16 c);
Modified: scummvm/branches/branch-0-9-0/engines/sword1/memman.h
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword1/memman.h 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword1/memman.h 2006-09-09 14:36:20 UTC (rev 23847)
@@ -39,7 +39,11 @@
#define MEM_CAN_FREE 1
#define MEM_DONT_FREE 2
+#ifdef PALMOS_MODE
+#define MAX_ALLOC (3*1024*1024) // max amount of mem we want to alloc().
+#else
#define MAX_ALLOC (6*1024*1024) // max amount of mem we want to alloc().
+#endif
class MemMan {
public:
Modified: scummvm/branches/branch-0-9-0/engines/sword2/interpreter.cpp
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword2/interpreter.cpp 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword2/interpreter.cpp 2006-09-09 14:36:20 UTC (rev 23847)
@@ -42,162 +42,161 @@
# define OPCODE(x) { &Logic::x, "" }
#endif
-typedef int32 (Logic::*OpcodeProc)(int32 *);
-struct OpcodeEntry {
- OpcodeProc proc;
- const char *desc;
-};
+void Logic::setupOpcodes() {
+ static const OpcodeEntry opcodes[] = {
+ /* 00 */
+ OPCODE(fnTestFunction),
+ OPCODE(fnTestFlags),
+ OPCODE(fnRegisterStartPoint),
+ OPCODE(fnInitBackground),
+ /* 04 */
+ OPCODE(fnSetSession),
+ OPCODE(fnBackSprite),
+ OPCODE(fnSortSprite),
+ OPCODE(fnForeSprite),
+ /* 08 */
+ OPCODE(fnRegisterMouse),
+ OPCODE(fnAnim),
+ OPCODE(fnRandom),
+ OPCODE(fnPreLoad),
+ /* 0C */
+ OPCODE(fnAddSubject),
+ OPCODE(fnInteract),
+ OPCODE(fnChoose),
+ OPCODE(fnWalk),
+ /* 10 */
+ OPCODE(fnWalkToAnim),
+ OPCODE(fnTurn),
+ OPCODE(fnStandAt),
+ OPCODE(fnStand),
+ /* 14 */
+ OPCODE(fnStandAfterAnim),
+ OPCODE(fnPause),
+ OPCODE(fnMegaTableAnim),
+ OPCODE(fnAddMenuObject),
+ /* 18 */
+ OPCODE(fnStartConversation),
+ OPCODE(fnEndConversation),
+ OPCODE(fnSetFrame),
+ OPCODE(fnRandomPause),
+ /* 1C */
+ OPCODE(fnRegisterFrame),
+ OPCODE(fnNoSprite),
+ OPCODE(fnSendSync),
+ OPCODE(fnUpdatePlayerStats),
+ /* 20 */
+ OPCODE(fnPassGraph),
+ OPCODE(fnInitFloorMouse),
+ OPCODE(fnPassMega),
+ OPCODE(fnFaceXY),
+ /* 24 */
+ OPCODE(fnEndSession),
+ OPCODE(fnNoHuman),
+ OPCODE(fnAddHuman),
+ OPCODE(fnWeWait),
+ /* 28 */
+ OPCODE(fnTheyDoWeWait),
+ OPCODE(fnTheyDo),
+ OPCODE(fnWalkToTalkToMega),
+ OPCODE(fnFadeDown),
+ /* 2C */
+ OPCODE(fnISpeak),
+ OPCODE(fnTotalRestart),
+ OPCODE(fnSetWalkGrid),
+ OPCODE(fnSpeechProcess),
+ /* 30 */
+ OPCODE(fnSetScaling),
+ OPCODE(fnStartEvent),
+ OPCODE(fnCheckEventWaiting),
+ OPCODE(fnRequestSpeech),
+ /* 34 */
+ OPCODE(fnGosub),
+ OPCODE(fnTimedWait),
+ OPCODE(fnPlayFx),
+ OPCODE(fnStopFx),
+ /* 38 */
+ OPCODE(fnPlayMusic),
+ OPCODE(fnStopMusic),
+ OPCODE(fnSetValue),
+ OPCODE(fnNewScript),
+ /* 3C */
+ OPCODE(fnGetSync),
+ OPCODE(fnWaitSync),
+ OPCODE(fnRegisterWalkGrid),
+ OPCODE(fnReverseMegaTableAnim),
+ /* 40 */
+ OPCODE(fnReverseAnim),
+ OPCODE(fnAddToKillList),
+ OPCODE(fnSetStandbyCoords),
+ OPCODE(fnBackPar0Sprite),
+ /* 44 */
+ OPCODE(fnBackPar1Sprite),
+ OPCODE(fnForePar0Sprite),
+ OPCODE(fnForePar1Sprite),
+ OPCODE(fnSetPlayerActionEvent),
+ /* 48 */
+ OPCODE(fnSetScrollCoordinate),
+ OPCODE(fnStandAtAnim),
+ OPCODE(fnSetScrollLeftMouse),
+ OPCODE(fnSetScrollRightMouse),
+ /* 4C */
+ OPCODE(fnColour),
+ OPCODE(fnFlash),
+ OPCODE(fnPreFetch),
+ OPCODE(fnGetPlayerSaveData),
+ /* 50 */
+ OPCODE(fnPassPlayerSaveData),
+ OPCODE(fnSendEvent),
+ OPCODE(fnAddWalkGrid),
+ OPCODE(fnRemoveWalkGrid),
+ /* 54 */
+ OPCODE(fnCheckForEvent),
+ OPCODE(fnPauseForEvent),
+ OPCODE(fnClearEvent),
+ OPCODE(fnFaceMega),
+ /* 58 */
+ OPCODE(fnPlaySequence),
+ OPCODE(fnShadedSprite),
+ OPCODE(fnUnshadedSprite),
+ OPCODE(fnFadeUp),
+ /* 5C */
+ OPCODE(fnDisplayMsg),
+ OPCODE(fnSetObjectHeld),
+ OPCODE(fnAddSequenceText),
+ OPCODE(fnResetGlobals),
+ /* 60 */
+ OPCODE(fnSetPalette),
+ OPCODE(fnRegisterPointerText),
+ OPCODE(fnFetchWait),
+ OPCODE(fnRelease),
+ /* 64 */
+ OPCODE(fnPrepareMusic),
+ OPCODE(fnSoundFetch),
+ OPCODE(fnPrepareMusic), // Again, apparently
+ OPCODE(fnSmackerLeadIn),
+ /* 68 */
+ OPCODE(fnSmackerLeadOut),
+ OPCODE(fnStopAllFx),
+ OPCODE(fnCheckPlayerActivity),
+ OPCODE(fnResetPlayerActivityDelay),
+ /* 6C */
+ OPCODE(fnCheckMusicPlaying),
+ OPCODE(fnPlayCredits),
+ OPCODE(fnSetScrollSpeedNormal),
+ OPCODE(fnSetScrollSpeedSlow),
+ /* 70 */
+ OPCODE(fnRemoveChooser),
+ OPCODE(fnSetFxVolAndPan),
+ OPCODE(fnSetFxVol),
+ OPCODE(fnRestoreGame),
+ /* 74 */
+ OPCODE(fnRefreshInventory),
+ OPCODE(fnChangeShadows)
+ };
-static const OpcodeEntry opcodes[] = {
- /* 00 */
- OPCODE(fnTestFunction),
- OPCODE(fnTestFlags),
- OPCODE(fnRegisterStartPoint),
- OPCODE(fnInitBackground),
- /* 04 */
- OPCODE(fnSetSession),
- OPCODE(fnBackSprite),
- OPCODE(fnSortSprite),
- OPCODE(fnForeSprite),
- /* 08 */
- OPCODE(fnRegisterMouse),
- OPCODE(fnAnim),
- OPCODE(fnRandom),
- OPCODE(fnPreLoad),
- /* 0C */
- OPCODE(fnAddSubject),
- OPCODE(fnInteract),
- OPCODE(fnChoose),
- OPCODE(fnWalk),
- /* 10 */
- OPCODE(fnWalkToAnim),
- OPCODE(fnTurn),
- OPCODE(fnStandAt),
- OPCODE(fnStand),
- /* 14 */
- OPCODE(fnStandAfterAnim),
- OPCODE(fnPause),
- OPCODE(fnMegaTableAnim),
- OPCODE(fnAddMenuObject),
- /* 18 */
- OPCODE(fnStartConversation),
- OPCODE(fnEndConversation),
- OPCODE(fnSetFrame),
- OPCODE(fnRandomPause),
- /* 1C */
- OPCODE(fnRegisterFrame),
- OPCODE(fnNoSprite),
- OPCODE(fnSendSync),
- OPCODE(fnUpdatePlayerStats),
- /* 20 */
- OPCODE(fnPassGraph),
- OPCODE(fnInitFloorMouse),
- OPCODE(fnPassMega),
- OPCODE(fnFaceXY),
- /* 24 */
- OPCODE(fnEndSession),
- OPCODE(fnNoHuman),
- OPCODE(fnAddHuman),
- OPCODE(fnWeWait),
- /* 28 */
- OPCODE(fnTheyDoWeWait),
- OPCODE(fnTheyDo),
- OPCODE(fnWalkToTalkToMega),
- OPCODE(fnFadeDown),
- /* 2C */
- OPCODE(fnISpeak),
- OPCODE(fnTotalRestart),
- OPCODE(fnSetWalkGrid),
- OPCODE(fnSpeechProcess),
- /* 30 */
- OPCODE(fnSetScaling),
- OPCODE(fnStartEvent),
- OPCODE(fnCheckEventWaiting),
- OPCODE(fnRequestSpeech),
- /* 34 */
- OPCODE(fnGosub),
- OPCODE(fnTimedWait),
- OPCODE(fnPlayFx),
- OPCODE(fnStopFx),
- /* 38 */
- OPCODE(fnPlayMusic),
- OPCODE(fnStopMusic),
- OPCODE(fnSetValue),
- OPCODE(fnNewScript),
- /* 3C */
- OPCODE(fnGetSync),
- OPCODE(fnWaitSync),
- OPCODE(fnRegisterWalkGrid),
- OPCODE(fnReverseMegaTableAnim),
- /* 40 */
- OPCODE(fnReverseAnim),
- OPCODE(fnAddToKillList),
- OPCODE(fnSetStandbyCoords),
- OPCODE(fnBackPar0Sprite),
- /* 44 */
- OPCODE(fnBackPar1Sprite),
- OPCODE(fnForePar0Sprite),
- OPCODE(fnForePar1Sprite),
- OPCODE(fnSetPlayerActionEvent),
- /* 48 */
- OPCODE(fnSetScrollCoordinate),
- OPCODE(fnStandAtAnim),
- OPCODE(fnSetScrollLeftMouse),
- OPCODE(fnSetScrollRightMouse),
- /* 4C */
- OPCODE(fnColour),
- OPCODE(fnFlash),
- OPCODE(fnPreFetch),
- OPCODE(fnGetPlayerSaveData),
- /* 50 */
- OPCODE(fnPassPlayerSaveData),
- OPCODE(fnSendEvent),
- OPCODE(fnAddWalkGrid),
- OPCODE(fnRemoveWalkGrid),
- /* 54 */
- OPCODE(fnCheckForEvent),
- OPCODE(fnPauseForEvent),
- OPCODE(fnClearEvent),
- OPCODE(fnFaceMega),
- /* 58 */
- OPCODE(fnPlaySequence),
- OPCODE(fnShadedSprite),
- OPCODE(fnUnshadedSprite),
- OPCODE(fnFadeUp),
- /* 5C */
- OPCODE(fnDisplayMsg),
- OPCODE(fnSetObjectHeld),
- OPCODE(fnAddSequenceText),
- OPCODE(fnResetGlobals),
- /* 60 */
- OPCODE(fnSetPalette),
- OPCODE(fnRegisterPointerText),
- OPCODE(fnFetchWait),
- OPCODE(fnRelease),
- /* 64 */
- OPCODE(fnPrepareMusic),
- OPCODE(fnSoundFetch),
- OPCODE(fnPrepareMusic), // Again, apparently
- OPCODE(fnSmackerLeadIn),
- /* 68 */
- OPCODE(fnSmackerLeadOut),
- OPCODE(fnStopAllFx),
- OPCODE(fnCheckPlayerActivity),
- OPCODE(fnResetPlayerActivityDelay),
- /* 6C */
- OPCODE(fnCheckMusicPlaying),
- OPCODE(fnPlayCredits),
- OPCODE(fnSetScrollSpeedNormal),
- OPCODE(fnSetScrollSpeedSlow),
- /* 70 */
- OPCODE(fnRemoveChooser),
- OPCODE(fnSetFxVolAndPan),
- OPCODE(fnSetFxVol),
- OPCODE(fnRestoreGame),
- /* 74 */
- OPCODE(fnRefreshInventory),
- OPCODE(fnChangeShadows)
-};
+ _numOpcodes = ARRAYSIZE(opcodes);
+ _opcodes = opcodes;
+}
#define push(value) \
do { \
@@ -611,13 +610,13 @@
case CP_CALL_MCODE:
// Call an mcode routine
Read16ip(parameter);
- assert(parameter < ARRAYSIZE(opcodes));
+ assert(parameter < _numOpcodes);
// amount to adjust stack by (no of parameters)
Read8ip(value);
- debug(9, "CP_CALL_MCODE: '%s', %d", opcodes[parameter].desc, value);
+ debug(9, "CP_CALL_MCODE: '%s', %d", _opcodes[parameter].desc, value);
stackPtr -= value;
assert(stackPtr >= 0);
- retVal = (this->*opcodes[parameter].proc)(&stack[stackPtr]);
+ retVal = (this->*_opcodes[parameter].proc)(&stack[stackPtr]);
switch (retVal & 7) {
case IR_STOP:
@@ -640,7 +639,7 @@
WRITE_LE_UINT32(offsetPtr, ip);
return 2;
default:
- error("Bad return code (%d) from '%s'", retVal & 7, opcodes[parameter].desc);
+ error("Bad return code (%d) from '%s'", retVal & 7, _opcodes[parameter].desc);
}
parameterReturnedFromMcodeFunction = retVal >> 3;
break;
Modified: scummvm/branches/branch-0-9-0/engines/sword2/logic.cpp
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword2/logic.cpp 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword2/logic.cpp 2006-09-09 14:36:20 UTC (rev 23847)
@@ -41,6 +41,8 @@
memset(_eventList, 0, sizeof(_eventList));
memset(_syncList, 0, sizeof(_syncList));
_router = new Router(_vm);
+
+ setupOpcodes();
}
Logic::~Logic() {
Modified: scummvm/branches/branch-0-9-0/engines/sword2/logic.h
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword2/logic.h 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword2/logic.h 2006-09-09 14:36:20 UTC (rev 23847)
@@ -178,6 +178,15 @@
Router *_router;
+ typedef int32 (Logic::*OpcodeProc)(int32 *);
+ struct OpcodeEntry {
+ OpcodeProc proc;
+ const char *desc;
+ };
+ const OpcodeEntry *_opcodes;
+ int _numOpcodes;
+ void setupOpcodes();
+
int32 fnTestFunction(int32 *params);
int32 fnTestFlags(int32 *params);
int32 fnRegisterStartPoint(int32 *params);
Modified: scummvm/branches/branch-0-9-0/engines/sword2/resman.h
===================================================================
--- scummvm/branches/branch-0-9-0/engines/sword2/resman.h 2006-09-09 14:19:33 UTC (rev 23846)
+++ scummvm/branches/branch-0-9-0/engines/sword2/resman.h 2006-09-09 14:36:20 UTC (rev 23847)
@@ -26,7 +26,11 @@
class File;
}
+#ifdef PALMOS_MODE
+#define MAX_MEM_CACHE (4 * 1024 * 1024) // 4 seems to be enough, 8 = out of memory
+#else
#define MAX_MEM_CACHE (8 * 1024 * 1024) // we keep up to 8 megs of resource data files in memory
+#endif
#define MAX_res_files 20
namespace Sword2 {
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