[Scummvm-cvs-logs] SF.net SVN: scummvm:[55296] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Tue Jan 18 12:52:25 CET 2011


Revision: 55296
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55296&view=rev
Author:   drmccoy
Date:     2011-01-18 11:52:24 +0000 (Tue, 18 Jan 2011)

Log Message:
-----------
GOB: Give Inca2 its own Inter class

Modified Paths:
--------------
    scummvm/trunk/engines/gob/gob.cpp
    scummvm/trunk/engines/gob/inter.h
    scummvm/trunk/engines/gob/inter_v2.cpp
    scummvm/trunk/engines/gob/module.mk

Added Paths:
-----------
    scummvm/trunk/engines/gob/inter_inca2.cpp

Modified: scummvm/trunk/engines/gob/gob.cpp
===================================================================
--- scummvm/trunk/engines/gob/gob.cpp	2011-01-18 11:51:45 UTC (rev 55295)
+++ scummvm/trunk/engines/gob/gob.cpp	2011-01-18 11:52:24 UTC (rev 55296)
@@ -456,7 +456,6 @@
 		break;
 
 	case kGameTypeGob3:
-	case kGameTypeInca2:
 		_init     = new Init_v3(this);
 		_video    = new Video_v2(this);
 		_inter    = new Inter_v3(this);
@@ -468,6 +467,18 @@
 		_saveLoad = new SaveLoad_v3(this, _targetName.c_str(), SaveLoad_v3::kScreenshotTypeGob3);
 		break;
 
+	case kGameTypeInca2:
+		_init     = new Init_v3(this);
+		_video    = new Video_v2(this);
+		_inter    = new Inter_Inca2(this);
+		_mult     = new Mult_v2(this);
+		_draw     = new Draw_v2(this);
+		_map      = new Map_v2(this);
+		_goblin   = new Goblin_v3(this);
+		_scenery  = new Scenery_v2(this);
+		_saveLoad = new SaveLoad_v3(this, _targetName.c_str(), SaveLoad_v3::kScreenshotTypeGob3);
+		break;
+
 	case kGameTypeLostInTime:
 		_init     = new Init_v3(this);
 		_video    = new Video_v2(this);

Modified: scummvm/trunk/engines/gob/inter.h
===================================================================
--- scummvm/trunk/engines/gob/inter.h	2011-01-18 11:51:45 UTC (rev 55295)
+++ scummvm/trunk/engines/gob/inter.h	2011-01-18 11:52:24 UTC (rev 55296)
@@ -474,6 +474,19 @@
 	void o3_wobble(OpGobParams &params);
 };
 
+class Inter_Inca2 : public Inter_v3 {
+public:
+	Inter_Inca2(GobEngine *vm);
+	virtual ~Inter_Inca2() {}
+
+protected:
+	virtual void setupOpcodesDraw();
+	virtual void setupOpcodesFunc();
+	virtual void setupOpcodesGob();
+
+	bool oInca2_spaceShooter(OpFuncParams &params);
+};
+
 class Inter_v4 : public Inter_v3 {
 public:
 	Inter_v4(GobEngine *vm);

Added: scummvm/trunk/engines/gob/inter_inca2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_inca2.cpp	                        (rev 0)
+++ scummvm/trunk/engines/gob/inter_inca2.cpp	2011-01-18 11:52:24 UTC (rev 55296)
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#include "common/endian.h"
+
+#include "gob/gob.h"
+#include "gob/inter.h"
+#include "gob/game.h"
+#include "gob/script.h"
+
+namespace Gob {
+
+#define OPCODEVER Inter_Inca2
+#define OPCODEDRAW(i, x)  _opcodesDraw[i]._OPCODEDRAW(OPCODEVER, x)
+#define OPCODEFUNC(i, x)  _opcodesFunc[i]._OPCODEFUNC(OPCODEVER, x)
+#define OPCODEGOB(i, x)   _opcodesGob[i]._OPCODEGOB(OPCODEVER, x)
+
+Inter_Inca2::Inter_Inca2(GobEngine *vm) : Inter_v3(vm) {
+}
+
+void Inter_Inca2::setupOpcodesDraw() {
+	Inter_v3::setupOpcodesDraw();
+}
+
+void Inter_Inca2::setupOpcodesFunc() {
+	Inter_v3::setupOpcodesFunc();
+
+	OPCODEFUNC(0x25, oInca2_spaceShooter);
+}
+
+void Inter_Inca2::setupOpcodesGob() {
+}
+
+bool Inter_Inca2::oInca2_spaceShooter(OpFuncParams &params) {
+	// TODO: Not yet implemented. We'll pretend we won the match for now
+	_vm->_game->_script->skip(4);
+	uint16 resVar = _vm->_game->_script->readUint16();
+	_vm->_game->_script->skip(4);
+
+	WRITE_VAR(resVar, 1);
+	return false;
+}
+
+} // End of namespace Gob


Property changes on: scummvm/trunk/engines/gob/inter_inca2.cpp
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author URL Id
Added: svn:eol-style
   + native

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2011-01-18 11:51:45 UTC (rev 55295)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2011-01-18 11:52:24 UTC (rev 55296)
@@ -1219,18 +1219,6 @@
 }
 
 bool Inter_v2::o2_goblinFunc(OpFuncParams &params) {
-	// TODO: In Inca 2, this is the big SpaceShoot0rz()-Opcode.
-	// It's not yet implemented, so we fudge our way through
-	// and pretend we've won.
-	if (_vm->getGameType() == kGameTypeInca2) {
-		_vm->_game->_script->skip(4);
-		uint16 resVar = _vm->_game->_script->readUint16();
-		_vm->_game->_script->skip(4);
-
-		WRITE_VAR(resVar, 1);
-		return false;
-	}
-
 	OpGobParams gobParams;
 	int16 cmd;
 

Modified: scummvm/trunk/engines/gob/module.mk
===================================================================
--- scummvm/trunk/engines/gob/module.mk	2011-01-18 11:51:45 UTC (rev 55295)
+++ scummvm/trunk/engines/gob/module.mk	2011-01-18 11:52:24 UTC (rev 55296)
@@ -32,6 +32,7 @@
 	inter_v2.o \
 	inter_bargon.o \
 	inter_fascin.o \
+	inter_inca2.o \
 	inter_playtoons.o \
 	inter_v3.o \
 	inter_v4.o \


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