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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Fri Apr 25 19:43:41 CEST 2008


Revision: 31726
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31726&view=rev
Author:   lordhoto
Date:     2008-04-25 10:43:40 -0700 (Fri, 25 Apr 2008)

Log Message:
-----------
Implemented opcodes:
 - 152: o3_customChat
 - 153: o3_customChatFinish

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

Modified: scummvm/trunk/engines/kyra/kyra_v3.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v3.h	2008-04-25 17:36:43 UTC (rev 31725)
+++ scummvm/trunk/engines/kyra/kyra_v3.h	2008-04-25 17:43:40 UTC (rev 31726)
@@ -741,6 +741,8 @@
 	int o3_querySpecialSceneScriptState(ScriptState *script);
 	int o3_setHiddenItemsEntry(ScriptState *script);
 	int o3_getHiddenItemsEntry(ScriptState *script);
+	int o3_customChat(ScriptState *script);
+	int o3_customChatFinish(ScriptState *script);
 	int o3_setupSceneAnimObject(ScriptState *script);
 	int o3_removeSceneAnimObject(ScriptState *script);
 	int o3_disableTimer(ScriptState *script);

Modified: scummvm/trunk/engines/kyra/script_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-25 17:36:43 UTC (rev 31725)
+++ scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-25 17:43:40 UTC (rev 31726)
@@ -26,6 +26,7 @@
 #include "kyra/kyra_v3.h"
 #include "kyra/script.h"
 #include "kyra/screen_v3.h"
+#include "kyra/text_v3.h"
 #include "kyra/wsamovie.h"
 #include "kyra/timer.h"
 
@@ -1025,6 +1026,32 @@
 	return (int16)_hiddenItems[stackPos(0)];
 }
 
+int KyraEngine_v3::o3_customChat(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_customChat(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
+	const int id = stackPos(0);
+	const int object = stackPos(1);
+	const char *str = (const char *)getTableEntry(_sceneStrings, id);
+
+	if (!str)
+		return 0;
+
+	strcpy(_stringBuffer, str);
+	_chatText = _stringBuffer;
+	_chatObject = object;
+	_chatVocHigh = _chatVocLow = -1;
+	objectChatInit(_stringBuffer, object, _vocHigh, id);
+	playVoice(_vocHigh, id);
+	return 0;
+}
+
+int KyraEngine_v3::o3_customChatFinish(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_customChatFinish(%p) ()", (const void *)script);
+	_text->restoreScreen();
+	_chatText = 0;
+	_chatObject = -1;
+	return 0;
+}
+
 int KyraEngine_v3::o3_setupSceneAnimObject(ScriptState *script) {
 	debugC(9, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_setupSceneAnimObject(%p) (%d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, '%s')", (const void *)script,
 			stackPos(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5), stackPos(6), stackPos(7), stackPos(8), stackPos(9),
@@ -1333,8 +1360,8 @@
 	Opcode(o3_dummy);
 	OpcodeUnImpl();
 	// 0x98
-	OpcodeUnImpl();
-	OpcodeUnImpl();
+	Opcode(o3_customChat);
+	Opcode(o3_customChatFinish);
 	Opcode(o3_setupSceneAnimObject);
 	Opcode(o3_removeSceneAnimObject);
 	// 0x9c


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