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

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Thu Apr 24 15:57:55 CEST 2008


Revision: 31690
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31690&view=rev
Author:   lordhoto
Date:     2008-04-24 06:57:55 -0700 (Thu, 24 Apr 2008)

Log Message:
-----------
Implemented opcodes:
 - 15: o3_setCharacterFacing
 - 107: o3_waitForConfirmationClick

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-24 13:27:05 UTC (rev 31689)
+++ scummvm/trunk/engines/kyra/kyra_v3.h	2008-04-24 13:57:55 UTC (rev 31690)
@@ -662,6 +662,7 @@
 	int o3_getMalcolmsMood(ScriptState *script);
 	int o3_trySceneChange(ScriptState *script);
 	int o3_moveCharacter(ScriptState *script);
+	int o3_setCharacterFacing(ScriptState *script);
 	int o3_showSceneFileMessage(ScriptState *script);
 	int o3_showBadConscience(ScriptState *script);
 	int o3_hideBadConscience(ScriptState *script);
@@ -696,6 +697,7 @@
 	int o3_playSoundEffect(ScriptState *script);
 	int o3_blockOutRegion(ScriptState *script);
 	int o3_getRand(ScriptState *script);
+	int o3_waitForConfirmationClick(ScriptState *script);
 	int o3_defineRoomEntrance(ScriptState *script);
 	int o3_runTemporaryScript(ScriptState *script);
 	int o3_setSpecialSceneScriptRunTime(ScriptState *script);

Modified: scummvm/trunk/engines/kyra/script_v3.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-24 13:27:05 UTC (rev 31689)
+++ scummvm/trunk/engines/kyra/script_v3.cpp	2008-04-24 13:57:55 UTC (rev 31690)
@@ -138,6 +138,12 @@
 	return 0;
 }
 
+int KyraEngine_v3::o3_setCharacterFacing(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_setCharacterFacing(%p) (%d)", (const void *)script, stackPos(0));
+	_mainCharacter.facing = stackPos(0);
+	return 0;
+}
+
 int KyraEngine_v3::o3_showSceneFileMessage(ScriptState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_showSceneFileMessage(%p) (%d)", (const void *)script, stackPos(0));
 	showMessage((const char*)getTableEntry(_scenesFile, stackPos(0)), 0xFF, 0xF0);
@@ -646,6 +652,30 @@
 	return _rnd.getRandomNumberRng(stackPos(0), stackPos(1));
 }
 
+int KyraEngine_v3::o3_waitForConfirmationClick(ScriptState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o2_waitForConfirmationClick(%p) (%d)", (const void *)script, stackPos(0));
+	resetSkipFlag();
+	uint32 maxWaitTime = _system->getMillis() + stackPos(0) * _tickLength;
+
+	while (_system->getMillis() < maxWaitTime) {
+		int inputFlag = checkInput(0);
+		removeInputTop();
+
+		if (inputFlag == 198 || inputFlag == 199) {
+			_sceneScriptState.regs[1] = _mouseX;
+			_sceneScriptState.regs[2] = _mouseY;
+			return 0;
+		}
+
+		update();
+		_system->delayMillis(10);
+	}
+
+	_sceneScriptState.regs[1] = _mouseX;
+	_sceneScriptState.regs[2] = _mouseY;
+	return 1;
+}
+
 int KyraEngine_v3::o3_defineRoomEntrance(ScriptState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "KyraEngine_v3::o3_defineRoomEntrance(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
 	switch (stackPos(0)) {
@@ -1011,7 +1041,7 @@
 	OpcodeUnImpl();
 	Opcode(o3_trySceneChange);
 	Opcode(o3_moveCharacter);
-	OpcodeUnImpl();
+	Opcode(o3_setCharacterFacing);
 	// 0x10
 	OpcodeUnImpl();
 	Opcode(o3_showSceneFileMessage);
@@ -1123,10 +1153,10 @@
 	Opcode(o3_dummy);
 	OpcodeUnImpl();
 	// 0x68
-	OpcodeUnImpl();
-	OpcodeUnImpl();
-	OpcodeUnImpl();
-	OpcodeUnImpl();
+	Opcode(o3_dummy);
+	Opcode(o3_dummy);
+	Opcode(o3_dummy);
+	Opcode(o3_waitForConfirmationClick);
 	// 0x6c
 	Opcode(o3_dummy);
 	Opcode(o3_defineRoomEntrance);


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