[Scummvm-cvs-logs] scummvm-tools master -> ef52427b6f48340d64ec1910b6afc13c8db40783

DrMcCoy drmccoy at drmccoy.de
Sat Aug 27 19:09:40 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm-tools' repo located at https://github.com/scummvm/scummvm-tools .

Summary:
ef52427b6f TOOLS: Update degob with Geisha's "GobFunc" opcodes


Commit: ef52427b6f48340d64ec1910b6afc13c8db40783
    https://github.com/scummvm/scummvm-tools/commit/ef52427b6f48340d64ec1910b6afc13c8db40783
Author: Sven Hesse (drmccoy at users.sourceforge.net)
Date: 2011-08-27T10:07:50-07:00

Commit Message:
TOOLS: Update degob with Geisha's "GobFunc" opcodes

Changed paths:
    engines/gob/degob_script.h
    engines/gob/degob_script_geisha.cpp



diff --git a/engines/gob/degob_script.h b/engines/gob/degob_script.h
index 93beb16..e6411da 100644
--- a/engines/gob/degob_script.h
+++ b/engines/gob/degob_script.h
@@ -343,6 +343,8 @@ protected:
 	virtual void drawOpcode(byte i, FuncParams &params);
 	virtual void funcOpcode(byte i, byte j, FuncParams &params);
 	virtual void goblinOpcode(int i, FuncParams &params);
+
+	void oGeisha_goblinFunc(FuncParams &params);
 };
 
 class Script_Bargon : public Script_v2 {
diff --git a/engines/gob/degob_script_geisha.cpp b/engines/gob/degob_script_geisha.cpp
index 9b40860..efdc618 100644
--- a/engines/gob/degob_script_geisha.cpp
+++ b/engines/gob/degob_script_geisha.cpp
@@ -484,7 +484,7 @@ void Script_Geisha::setupOpcodes() {
 		{OPCODET(o1_speakerOff), {PARAM_NONE}},
 		/* 24 */
 		{OPCODET(o1_putPixel), {PARAM_INT16, PARAM_EXPR, PARAM_EXPR, PARAM_EXPR}},
-		{OPCODEF(o1_goblinFunc), {PARAM_NONE}},
+		{OPCODEF(oGeisha_goblinFunc), {PARAM_NONE}},
 		{OPCODET(o1_createSprite), {PARAM_INT16, PARAM_INT16, PARAM_INT16, PARAM_INT16}},
 		{OPCODET(o1_freeSprite), {PARAM_INT16}},
 		/* 28 */
@@ -541,15 +541,15 @@ void Script_Geisha::setupOpcodes() {
 
 	static const OpcodeGoblinEntryGeisha opcodesGoblin[8] = {
 		/* 00 */
-		{OPCODET(oGeisha_OG_0), {PARAM_INT16, PARAM_INT16, PARAM_INT16, PARAM_INT16}},
-		{OPCODET(oGeisha_OG_1), {PARAM_INT16, PARAM_INT16, PARAM_INT16}},
-		{OPCODET(oGeisha_loadGeisha), {PARAM_GOB}},
-		{OPCODET(oGeisha_adlibPlay), {PARAM_GOB}},
+		{OPCODET(oGeisha_gamePenetration), {PARAM_INT16, PARAM_INT16, PARAM_INT16, PARAM_INT16}},
+		{OPCODET(oGeisha_gameDiving), {PARAM_INT16, PARAM_INT16, PARAM_INT16}},
+		{OPCODET(oGeisha_loadTitleMusic), {PARAM_GOB}},
+		{OPCODET(oGeisha_playMusic), {PARAM_GOB}},
 		/* 04 */
-		{OPCODET(oGeisha_adlibStop), {PARAM_GOB}},
-		{OPCODET(oGeisha_OG_NOP), {PARAM_GOB}},
-		{OPCODET(oGeisha_OG_6), {PARAM_GOB}},
-		{OPCODET(oGeisha_OG_7), {PARAM_GOB}},
+		{OPCODET(oGeisha_stopMusic), {PARAM_GOB}},
+		{OPCODET(oGeisha_NOP), {PARAM_GOB}},
+		{OPCODET(oGeisha_caress1), {PARAM_GOB}},
+		{OPCODET(oGeisha_caress2), {PARAM_GOB}},
 	};
 
 	_opcodesDrawGeisha = opcodesDraw;
@@ -619,3 +619,17 @@ void Script_Geisha::goblinOpcode(int i, FuncParams &params) {
 		(this->*op)(params);
 }
 
+void Script_Geisha::oGeisha_goblinFunc(FuncParams &params) {
+	FuncParams gobParams;
+	int16 cmd;
+
+	gobParams.extraData = 0;
+	gobParams.objIndex = -1;
+
+	cmd = (int16) readUint16();
+
+	if ((cmd >= 0) && (cmd < 8) && (cmd != 5))
+		skip(2);
+
+	goblinOpcode(cmd, gobParams);
+}






More information about the Scummvm-git-logs mailing list