[Scummvm-cvs-logs] SF.net SVN: scummvm: [23837] scummvm/trunk/engines/sword1

chrilith at users.sourceforge.net chrilith at users.sourceforge.net
Sat Sep 9 11:30:23 CEST 2006


Revision: 23837
          http://svn.sourceforge.net/scummvm/?rev=23837&view=rev
Author:   chrilith
Date:     2006-09-09 02:30:16 -0700 (Sat, 09 Sep 2006)

Log Message:
-----------
Fixed crashes on Zodiac and add support for this device

Modified Paths:
--------------
    scummvm/trunk/engines/sword1/logic.cpp
    scummvm/trunk/engines/sword1/logic.h
    scummvm/trunk/engines/sword1/memman.h

Modified: scummvm/trunk/engines/sword1/logic.cpp
===================================================================
--- scummvm/trunk/engines/sword1/logic.cpp	2006-09-09 09:09:19 UTC (rev 23836)
+++ scummvm/trunk/engines/sword1/logic.cpp	2006-09-09 09:30:16 UTC (rev 23837)
@@ -64,6 +64,8 @@
 	_eventMan = NULL;
 	_system = system;
 	_mixer = mixer;
+	
+	setupMcodeTable();
 }
 
 Logic::~Logic(void) {
@@ -682,108 +684,112 @@
 	}
 }
 
-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) {
 

Modified: scummvm/trunk/engines/sword1/logic.h
===================================================================
--- scummvm/trunk/engines/sword1/logic.h	2006-09-09 09:09:19 UTC (rev 23836)
+++ scummvm/trunk/engines/sword1/logic.h	2006-09-09 09:30:16 UTC (rev 23837)
@@ -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/trunk/engines/sword1/memman.h
===================================================================
--- scummvm/trunk/engines/sword1/memman.h	2006-09-09 09:09:19 UTC (rev 23836)
+++ scummvm/trunk/engines/sword1/memman.h	2006-09-09 09:30:16 UTC (rev 23837)
@@ -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:


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