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

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Sun Apr 5 14:13:21 CEST 2009


Revision: 39860
          http://scummvm.svn.sourceforge.net/scummvm/?rev=39860&view=rev
Author:   athrxx
Date:     2009-04-05 12:13:21 +0000 (Sun, 05 Apr 2009)

Log Message:
-----------
LOL: implemented two more opcodes (for roland's house and for the sequence where the king gets poisoned)

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/lol.h
    scummvm/trunk/engines/kyra/script_lol.cpp

Modified: scummvm/trunk/engines/kyra/lol.h
===================================================================
--- scummvm/trunk/engines/kyra/lol.h	2009-04-05 12:11:20 UTC (rev 39859)
+++ scummvm/trunk/engines/kyra/lol.h	2009-04-05 12:13:21 UTC (rev 39860)
@@ -628,6 +628,7 @@
 	int olol_countBlockItems(EMCState *script);
 	int olol_stopCharacterSpeech(EMCState *script);
 	int olol_setPaletteBrightness(EMCState *script);
+	int olol_checkForCertainPartyMember(EMCState *script);
 	int olol_printMessage(EMCState *script);
 	int olol_deleteLevelItem(EMCState *script);
 	int olol_objectLeavesLevel(EMCState *script);
@@ -677,6 +678,7 @@
 	int tlol_characterChat(const TIM *tim, const uint16 *param);
 	int tlol_drawScene(const TIM *tim, const uint16 *param);
 	int tlol_update(const TIM *tim, const uint16 *param);
+	int tlol_clearTextField(const TIM *tim, const uint16 *param);
 	int tlol_loadSoundFile(const TIM *tim, const uint16 *param);
 	int tlol_playMusicTrack(const TIM *tim, const uint16 *param);
 	int tlol_playDialogueTalkText(const TIM *tim, const uint16 *param);

Modified: scummvm/trunk/engines/kyra/script_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_lol.cpp	2009-04-05 12:11:20 UTC (rev 39859)
+++ scummvm/trunk/engines/kyra/script_lol.cpp	2009-04-05 12:13:21 UTC (rev 39860)
@@ -1164,6 +1164,15 @@
 	return old;
 }
 
+int LoLEngine::olol_checkForCertainPartyMember(EMCState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_checkForCertainPartyMember(%p) (%d)", (const void *)script, stackPos(0));
+	for (int i = 0; i < 4; i++) {
+		if (_characters[i].flags & 9 && _characters[i].id == stackPos(0))
+			return true;
+	}
+	return 0;
+}
+
 int LoLEngine::olol_printMessage(EMCState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_printMessage(%p) (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5), stackPos(6), stackPos(7), stackPos(8), stackPos(9));
 	int snd = stackPos(2);
@@ -1581,6 +1590,18 @@
 	return 1;
 }
 
+int LoLEngine::tlol_clearTextField(const TIM *tim, const uint16 *param) {
+	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::tlol_clearTextField(%p, %p)", (const void*)tim, (const void*)param);
+	if (_currentControlMode && !textEnabled())
+		return 1;
+	_screen->setScreenDim(5);
+	const ScreenDim *d = _screen->_curDim;
+	_screen->fillRect(d->sx, d->sy, d->sx + d->w - 2, d->sy + d->h - 2, d->unkA);
+	_txt->clearDim(4);
+	_txt->resetDimTextPositions(4);
+	return 1;
+}
+
 int LoLEngine::tlol_loadSoundFile(const TIM *tim, const uint16 *param) {
 	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::tlol_loadSoundFile(%p, %p) (%d)", (const void*)tim, (const void*)param, param[0]);
 	snd_loadSoundFile(param[0]);
@@ -1799,7 +1820,7 @@
 	// 0x6C
 	OpcodeUnImpl();
 	OpcodeUnImpl();
-	OpcodeUnImpl();
+	Opcode(olol_checkForCertainPartyMember);
 	Opcode(olol_printMessage);
 
 	// 0x70
@@ -1954,7 +1975,7 @@
 	// 0x08
 	OpcodeTim(tlol_drawScene);
 	OpcodeTim(tlol_update);
-	OpcodeTimUnImpl();
+	OpcodeTim(tlol_clearTextField);
 	OpcodeTim(tlol_loadSoundFile);
 
 	// 0x0C


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