[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 ¶ms);
bool oPlaytoons_checkData(OpFuncParams ¶ms);
bool oPlaytoons_readData(OpFuncParams ¶ms);
+
+ 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