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

strangerke at users.sourceforge.net strangerke at users.sourceforge.net
Fri Sep 4 22:50:17 CEST 2009


Revision: 43948
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43948&view=rev
Author:   strangerke
Date:     2009-09-04 20:50:16 +0000 (Fri, 04 Sep 2009)

Log Message:
-----------
Add oPlaytoons_getObjAnimSize. It's uncomplete, but it allows to use some functionalities of the construction mode

Modified Paths:
--------------
    scummvm/trunk/engines/gob/inter.h
    scummvm/trunk/engines/gob/inter_playtoons.cpp

Modified: scummvm/trunk/engines/gob/inter.h
===================================================================
--- scummvm/trunk/engines/gob/inter.h	2009-09-04 20:10:32 UTC (rev 43947)
+++ scummvm/trunk/engines/gob/inter.h	2009-09-04 20:50:16 UTC (rev 43948)
@@ -561,6 +561,8 @@
 	bool oPlaytoons_freeSprite(OpFuncParams &params);
 	bool oPlaytoons_checkData(OpFuncParams &params);
 	bool oPlaytoons_readData(OpFuncParams &params);
+
+	void oPlaytoons_getObjAnimSize();
 	void oPlaytoons_CD_20_23();
 	void oPlaytoons_CD_25();
 	void oPlaytoons_copyFile();

Modified: scummvm/trunk/engines/gob/inter_playtoons.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_playtoons.cpp	2009-09-04 20:10:32 UTC (rev 43947)
+++ scummvm/trunk/engines/gob/inter_playtoons.cpp	2009-09-04 20:50:16 UTC (rev 43948)
@@ -38,6 +38,7 @@
 #include "gob/script.h"
 #include "gob/hotspots.h"
 #include "gob/palanim.h"
+#include "gob/scenery.h"
 #include "gob/video.h"
 #include "gob/videoplayer.h"
 #include "gob/save/saveload.h"
@@ -71,6 +72,7 @@
 	CLEAROPCODEDRAW(0x22);
 	CLEAROPCODEDRAW(0x24);
 
+	OPCODEDRAW(0x19, oPlaytoons_getObjAnimSize);
 	OPCODEDRAW(0x20, oPlaytoons_CD_20_23);
 	OPCODEDRAW(0x23, oPlaytoons_CD_20_23);
 	OPCODEDRAW(0x25, oPlaytoons_CD_25);
@@ -261,6 +263,50 @@
 	return false;
 }
 
+void Inter_Playtoons::oPlaytoons_getObjAnimSize() {
+	int16 objIndex;
+	uint16 readVar[4];
+	uint8 i;
+	bool break_fl;
+	Mult::Mult_AnimData animData;
+
+	_vm->_game->_script->evalExpr(&objIndex);
+
+	for (i = 0; i < 4; i++)
+		readVar[i] = _vm->_game->_script->readVarIndex();
+
+	if (objIndex == -1) {
+		warning("oPlaytoons_getObjAnimSize case -1 not implemented");
+		return;
+	}
+	if (objIndex == -2) {
+		break_fl = false;
+		warning("oPlaytoons_getObjAnimSize case -2 not implemented");
+		return;
+	}
+	if ((objIndex < 0) || (objIndex >= _vm->_mult->_objCount)) {
+		warning("oPlaytoons_getObjAnimSize(): objIndex = %d (%d)", objIndex, _vm->_mult->_objCount);
+		_vm->_scenery->_toRedrawLeft   = 0;
+		_vm->_scenery->_toRedrawTop    = 0;
+		_vm->_scenery->_toRedrawRight  = 0;
+		_vm->_scenery->_toRedrawBottom = 0;
+	} else {
+		animData = *(_vm->_mult->_objects[objIndex].pAnimData);
+		if (animData.isStatic == 0)
+			_vm->_scenery->updateAnim(animData.layer, animData.frame,
+					animData.animation, 0, *(_vm->_mult->_objects[objIndex].pPosX),
+					*(_vm->_mult->_objects[objIndex].pPosY), 0);
+
+		_vm->_scenery->_toRedrawLeft = MAX<int16>(_vm->_scenery->_toRedrawLeft, 0);
+		_vm->_scenery->_toRedrawTop  = MAX<int16>(_vm->_scenery->_toRedrawTop , 0);
+	}
+
+	WRITE_VAR_OFFSET(readVar[0], _vm->_scenery->_toRedrawLeft);
+	WRITE_VAR_OFFSET(readVar[1], _vm->_scenery->_toRedrawTop);
+	WRITE_VAR_OFFSET(readVar[2], _vm->_scenery->_toRedrawRight);
+	WRITE_VAR_OFFSET(readVar[3], _vm->_scenery->_toRedrawBottom);
+}
+
 void Inter_Playtoons::oPlaytoons_CD_20_23() {
 	_vm->_game->_script->evalExpr(0);
 }


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