[Scummvm-cvs-logs] SF.net SVN: scummvm: [31679] scummvm/trunk/engines/kyra

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Wed Apr 23 23:07:58 CEST 2008


Revision: 31679
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31679&view=rev
Author:   lordhoto
Date:     2008-04-23 14:07:58 -0700 (Wed, 23 Apr 2008)

Log Message:
-----------
Cleanup. (and little addition to showInventory)

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/gui_v3.cpp
    scummvm/trunk/engines/kyra/kyra_v3.cpp
    scummvm/trunk/engines/kyra/kyra_v3.h
    scummvm/trunk/engines/kyra/script_v3.cpp

Modified: scummvm/trunk/engines/kyra/gui_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_v3.cpp	2008-04-23 21:07:11 UTC (rev 31678)
+++ scummvm/trunk/engines/kyra/gui_v3.cpp	2008-04-23 21:07:58 UTC (rev 31679)
@@ -25,6 +25,7 @@
 
 #include "kyra/kyra_v3.h"
 #include "kyra/text_v3.h"
+#include "kyra/wsamovie.h"
 
 namespace Kyra {
 
@@ -79,13 +80,13 @@
 		return;
 
 	_screen->copyBlockToPage(3, 0, 0, 320, 56, _interface);
-	updateMalcolmSpiritText();
+	drawMalcolmsMoodText();
 
 	_inventoryState = true;
 	updateCLState();
 
 	redrawInventory(30);
-
+	drawMalcolmsMoodPointer(-1, 30);
 	//XXX
 	
 	if (queryGameFlag(0x97))
@@ -214,14 +215,14 @@
 	_screen->showMouse();
 }
 
-void KyraEngine_v3::updateMalcolmSpiritText() {
-	debugC(9, kDebugLevelMain, "KyraEngine_v3::updateMalcolmSpiritText()");
+void KyraEngine_v3::drawMalcolmsMoodText() {
+	debugC(9, kDebugLevelMain, "KyraEngine_v3::drawMalcolmsMoodText()");
 	static const int stringId[] = { 0x32, 0x37, 0x3C };
 
 	if (queryGameFlag(0x219))
 		return;
 
-	const char *string = (const char*)getTableEntry(_cCodeFile, stringId[_malcolmsSpirit]);
+	const char *string = (const char*)getTableEntry(_cCodeFile, stringId[_malcolmsMood]);
 
 	Screen::FontId oldFont = _screen->setFont(Screen::FID_8_FNT);
 	_screen->_charWidth = -2;
@@ -249,6 +250,33 @@
 	_screen->_curPage = pageBackUp;
 }
 
+void KyraEngine_v3::drawMalcolmsMoodPointer(int frame, int page) {
+	debugC(9, kDebugLevelMain, "KyraEngine_v3::drawMalcolmsMoodPointer(%d, %d)", frame, page);
+	static const int stateTable[] = {
+		1, 6, 11
+	};
+
+	if (frame == -1)
+		frame = stateTable[_malcolmsMood];
+	if (queryGameFlag(0x219))
+		frame = 13;
+
+	if (page == 0) {
+		_invWsa->setX(0);
+		_invWsa->setY(0);
+		_invWsa->setDrawPage(0);
+		_invWsa->displayFrame(frame, 0);
+		_screen->updateScreen();
+	} else if (page == 30) {
+		_invWsa->setX(0);
+		_invWsa->setY(-144);
+		_invWsa->setDrawPage(2);
+		_invWsa->displayFrame(frame, 0);
+	}
+
+	_invWsaFrame = frame;
+}
+
 void KyraEngine_v3::drawJestersStaff(int type, int page) {
 	debugC(9, kDebugLevelMain, "KyraEngine_v3::drawJestersStaff(%d, %d)", type, page);
 	int y = 155;

Modified: scummvm/trunk/engines/kyra/kyra_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v3.cpp	2008-04-23 21:07:11 UTC (rev 31678)
+++ scummvm/trunk/engines/kyra/kyra_v3.cpp	2008-04-23 21:07:58 UTC (rev 31679)
@@ -120,12 +120,14 @@
 	memset(&_dialogScriptData, 0, sizeof(_dialogScriptData));
 	memset(&_dialogScriptState, 0, sizeof(_dialogScriptState));
 	_dialogScriptFuncStart = _dialogScriptFuncProc = _dialogScriptFuncEnd = 0;
-	_malcolmsSpirit = 1;
+	_malcolmsMood = 1;
 	_nextIdleAnim = 0;
 	_nextIdleType = false;
 	_newShapeFlag = -1;
 	_newShapeFiledata = 0;
 	_inventoryScrollSpeed = -1;
+	_invWsa = 0;
+	_invWsaFrame = -1;
 }
 
 KyraEngine_v3::~KyraEngine_v3() {
@@ -183,6 +185,7 @@
 	delete _dlgBuffer;
 	delete [] _stringBuffer;
 	delete [] _newShapeFiledata;
+	delete _invWsa;
 }
 
 int KyraEngine_v3::init() {
@@ -613,7 +616,11 @@
 	_sceneList = new SceneDesc[98];
 	musicUpdate(0);
 	runStartupScript(1, 0);
-	//openMoondomtrWsa();
+	_res->exists("MOODOMTR.WSA", true);
+	_invWsa = new WSAMovieV2(this, _screen);
+	assert(_invWsa);
+	_invWsa->open("MOODOMTR.WSA", 1, 0);
+	_invWsaFrame = 6;
 	_soundDigital->beginFadeOut(_musicSoundChannel, 60);
 	delayWithTicks(60);
 	enterNewScene(_mainCharacter.sceneId, _mainCharacter.facing, 0, 0, 1);

Modified: scummvm/trunk/engines/kyra/kyra_v3.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v3.h	2008-04-23 21:07:11 UTC (rev 31678)
+++ scummvm/trunk/engines/kyra/kyra_v3.h	2008-04-23 21:07:58 UTC (rev 31679)
@@ -257,8 +257,8 @@
 	void showInventory();
 	void hideInventory();
 
-	void updateMalcolmSpiritText();
-	//void updateMalcolmSpiritPtr();
+	void drawMalcolmsMoodText();
+	void drawMalcolmsMoodPointer(int frame, int page);
 	void drawJestersStaff(int type, int page);
 
 	static const uint8 _inventoryX[];
@@ -267,6 +267,9 @@
 	void clearInventorySlot(int slot, int page);
 	void drawInventorySlot(int page, int item, int slot);
 
+	WSAMovieV2 *_invWsa;
+	int _invWsaFrame;
+
 	// localization
 	uint8 *_scoreFile;
 	uint8 *_cCodeFile;
@@ -475,7 +478,7 @@
 
 	bool checkCharCollision(int x, int y);
 
-	int _malcolmsSpirit;
+	int _malcolmsMood;
 
 	// talk object
 	struct TalkObject {
@@ -621,7 +624,7 @@
 	int o3_getCharacterY(ScriptState *script);
 	int o3_getCharacterFacing(ScriptState *script);
 	int o3_getCharacterScene(ScriptState *script);
-	int o3_getMalcolmsSpirit(ScriptState *script);
+	int o3_getMalcolmsMood(ScriptState *script);
 	int o3_trySceneChange(ScriptState *script);
 	int o3_moveCharacter(ScriptState *script);
 	int o3_showSceneFileMessage(ScriptState *script);
@@ -643,7 +646,7 @@
 	int o3_showMouse(ScriptState *script);
 	int o3_badConscienceChat(ScriptState *script);
 	int o3_wipeDownMouseItem(ScriptState *script);
-	int o3_setMalcolmsSpirit(ScriptState *script);
+	int o3_setMalcolmsMood(ScriptState *script);
 	int o3_delay(ScriptState *script);
 	int o3_setSceneFilename(ScriptState *script);
 	int o3_drawSceneShape(ScriptState *script);

Modified: scummvm/trunk/engines/kyra/script_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-23 21:07:11 UTC (rev 31678)
+++ scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-23 21:07:58 UTC (rev 31679)
@@ -108,9 +108,9 @@
 	return _mainCharacter.sceneId;
 }
 
-int KyraEngine_v3::o3_getMalcolmsSpirit(ScriptState *script) {
-	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_getMalcolmsSpirit(%p) ()", (const void *)script);
-	return _malcolmsSpirit;
+int KyraEngine_v3::o3_getMalcolmsMood(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_getMalcolmsMood(%p) ()", (const void *)script);
+	return _malcolmsMood;
 }
 
 int KyraEngine_v3::o3_trySceneChange(ScriptState *script) {
@@ -294,9 +294,9 @@
 	return 0;
 }
 
-int KyraEngine_v3::o3_setMalcolmsSpirit(ScriptState *script) {
-	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_setMalcolmsSpirit(%p) (%d)", (const void *)script, stackPos(0));
-	return (_malcolmsSpirit = stackPos(0));
+int KyraEngine_v3::o3_setMalcolmsMood(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_setMalcolmsMood(%p) (%d)", (const void *)script, stackPos(0));
+	return (_malcolmsMood = stackPos(0));
 }
 
 int KyraEngine_v3::o3_delay(ScriptState *script) {
@@ -537,13 +537,13 @@
 			break;
 		}
 	} else if (_curChapter == 4) {
-		if (_malcolmsSpirit == 0) {
+		if (_malcolmsMood == 0) {
 			convs[0] = _mainCharacter.dlgIndex - 10;
 			convs[1] = _mainCharacter.dlgIndex - 5;
-		} else if (_malcolmsSpirit == 1) {
+		} else if (_malcolmsMood == 1) {
 			convs[0] = _mainCharacter.dlgIndex + 5;
 			convs[1] = _mainCharacter.dlgIndex + 10;
-		} else if (_malcolmsSpirit == 2) {
+		} else if (_malcolmsMood == 2) {
 			convs[0] = _mainCharacter.dlgIndex - 5;
 			convs[1] = _mainCharacter.dlgIndex + 5;
 		}
@@ -1003,7 +1003,7 @@
 	Opcode(o3_getCharacterFacing);
 	Opcode(o3_getCharacterScene);
 	// 0x08
-	Opcode(o3_getMalcolmsSpirit);
+	Opcode(o3_getMalcolmsMood);
 	Opcode(o3_dummy);
 	Opcode(o3_dummy);
 	OpcodeUnImpl();
@@ -1058,7 +1058,7 @@
 	Opcode(o3_wipeDownMouseItem);
 	Opcode(o3_dummy);
 	// 0x34
-	Opcode(o3_setMalcolmsSpirit);
+	Opcode(o3_setMalcolmsMood);
 	OpcodeUnImpl();
 	Opcode(o3_dummy);
 	Opcode(o3_delay);


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