[Scummvm-cvs-logs] SF.net SVN: scummvm:[53708] scummvm/trunk/engines/tinsel

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Fri Oct 22 23:08:27 CEST 2010


Revision: 53708
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53708&view=rev
Author:   dreammaster
Date:     2010-10-22 21:08:27 +0000 (Fri, 22 Oct 2010)

Log Message:
-----------
TINSEL: Added new opcode set for the DW2 Demo

Modified Paths:
--------------
    scummvm/trunk/engines/tinsel/scene.h
    scummvm/trunk/engines/tinsel/tinlib.cpp
    scummvm/trunk/engines/tinsel/tinsel.h

Modified: scummvm/trunk/engines/tinsel/scene.h
===================================================================
--- scummvm/trunk/engines/tinsel/scene.h	2010-10-22 21:07:28 UTC (rev 53707)
+++ scummvm/trunk/engines/tinsel/scene.h	2010-10-22 21:08:27 UTC (rev 53708)
@@ -78,9 +78,9 @@
 typedef enum { TRANS_DEF, TRANS_CUT, TRANS_FADE } TRANSITS;
 
 // amount to shift scene handles by
-#define	SCNHANDLE_SHIFT (TinselV2 ? 25 : 23)
-#define	OFFSETMASK (TinselV2 ? 0x01ffffffL : 0x007fffffL)
-#define HANDLEMASK (TinselV2 ? 0xFE000000L : 0xFF800000L)
+#define	SCNHANDLE_SHIFT ((TinselV2 && !IsDemo) ? 25 : 23)
+#define	OFFSETMASK ((TinselV2 && !IsDemo) ? 0x01ffffffL : 0x007fffffL)
+#define HANDLEMASK ((TinselV2 && !IsDemo) ? 0xFE000000L : 0xFF800000L)
 
 void DoHailScene(SCNHANDLE scene);
 

Modified: scummvm/trunk/engines/tinsel/tinlib.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/tinlib.cpp	2010-10-22 21:07:28 UTC (rev 53707)
+++ scummvm/trunk/engines/tinsel/tinlib.cpp	2010-10-22 21:08:27 UTC (rev 53708)
@@ -213,6 +213,43 @@
 	HIGHEST_LIBCODE
 };
 
+const MASTER_LIB_CODES DW2DEMO_CODES[] = {
+	ACTORBRIGHTNESS, ACTORDIRECTION, ACTORPALETTE, ACTORPRIORITY, 
+	ACTORREF, ACTORRGB, ACTORSCALE, ACTORXPOS, ACTORYPOS,
+	ADDHIGHLIGHT, ADDINV, ADDINV1, ADDINV2, ADDOPENINV, ADDTOPIC,
+	BACKGROUND, CALLACTOR, CALLGLOBALPROCESS, CALLOBJECT, 
+	CALLPROCESS, CALLSCENE, CALLTAG, CAMERA, CDCHANGESCENE,
+	CDDOCHANGE, CDLOAD, CDPLAY, CLEARHOOKSCENE, CLOSEINVENTORY,
+	CONTROL, CONVERSATION, CURSOR, CURSORXPOS, CURSORYPOS, 
+	DECCONVW, DECCURSOR, DECFLAGS, DECINV1, DECINV2, DECINVW, 
+	DECLEAD, DECSCALE, DECTAGFONT, DECTALKFONT, DELTOPIC,
+	DIMMUSIC, DROP, DROPOUT, EFFECTACTOR, ENABLEMENU, ENDACTOR,
+	ESCAPEOFF, ESCAPEON, EVENT, FACETAG, FADEIN, FADEOUT, FRAMEGRAB, 
+	FREEZECURSOR, GETINVLIMIT, GHOST, GLOBALVAR, HASRESTARTED, 
+	HAVE, HELDOBJECT, HIDEACTOR, HIDEBLOCK, HIDEEFFECT, HIDEPATH, 
+	HIDEREFER, HIDETAG, HOLD, HOOKSCENE, IDLETIME, INSTANTSCROLL,
+	INVENTORY, INVPLAY, INWHICHINV, KILLACTOR, KILLGLOBALPROCESS, 
+	KILLPROCESS, LOCALVAR, MOVECURSOR, MOVETAG, MOVETAGTO, NEWSCENE, 
+	NOBLOCKING, NOPAUSE, NOSCROLL, OFFSET, OTHEROBJECT, PAUSE, PLAY, 
+	PLAYMOVIE, PLAYRTF, PLAYSAMPLE, POINTACTOR, POINTTAG, POSTACTOR, 
+	POSTGLOBALPROCESS, POSTOBJECT, POSTPROCESS, POSTTAG, PRINT,
+	PRINTCURSOR, PRINTOBJ, PRINTTAG, QUITGAME, RANDOM, RESETIDLETIME,
+	RESTARTGAME, RESTORESCENE, RUNMODE, SAVESCENE, SAY, SAYAT, 
+	SCALINGREELS, SCREENXPOS, SCREENYPOS, SCROLL, SCROLLPARAMETERS, 
+	SENDACTOR, SENDGLOBALPROCESS, SENDOBJECT, SENDPROCESS, SENDTAG,
+	SETBRIGHTNESS, SETINVLIMIT, SETINVSIZE, SETLANGUAGE, SETPALETTE, 
+	SETSYSTEMSTRING, SETSYSTEMVAR, SHELL, SHOWACTOR, SHOWBLOCK, 
+	SHOWEFFECT, SHOWPATH, SHOWREFER, SHOWTAG, STAND, STANDTAG,
+	STARTGLOBALPROCESS, STARTPROCESS, STARTTIMER, STOPWALK, SUBTITLES, 
+	SWALK, SYSTEMVAR, TAGTAGXPOS, TAGTAGYPOS, TAGWALKXPOS, TAGWALKYPOS, 
+	TALK, TALKAT, TALKPALETTEINDEX, TALKRGB, TALKVIA, THISOBJECT,
+	THISTAG, TIMER, TOPIC, TOPPLAY, TOPWINDOW, TRANSLUCENTINDEX, 
+	UNDIMMUSIC, UNHOOKSCENE, WAITFRAME, WAITKEY, WAITSCROLL, WAITTIME, 
+	WALK, WALKED, WALKEDPOLY, WALKEDTAG, WALKINGACTOR, WALKPOLY, 
+	WALKTAG, WALKXPOS, WALKYPOS, WHICHCD, WHICHINVENTORY, 
+	HIGHEST_LIBCODE
+};
+
 const MASTER_LIB_CODES DW2_CODES[] = {
 	ACTORBRIGHTNESS, ACTORDIRECTION, ACTORPALETTE, ACTORPRIORITY,
 	ACTORREF, ACTORRGB, ACTORSCALE, ACTORXPOS, ACTORYPOS,
@@ -3978,6 +4015,12 @@
 }
 
 /**
+ */
+static void WalkedTag(uint16 actorId) {
+	RegisterMover(actorId);
+}
+
+/**
  * Declare a moving actor.
  */
 static void WalkingActor(uint32 id, SCNHANDLE *rp = NULL) {
@@ -4208,6 +4251,7 @@
 	int libCode;
 	if (TinselV0) libCode = DW1DEMO_CODES[operand];
 	else if (!TinselV2) libCode = DW1_CODES[operand];
+	else if (_vm->getFeatures() & GF_DEMO) libCode = DW2DEMO_CODES[operand];
 	else libCode = DW2_CODES[operand];
 
 	debug(7, "CallLibraryRoutine op %d (escOn %d, myEscape %d)", operand, pic->escOn, pic->myEscape);

Modified: scummvm/trunk/engines/tinsel/tinsel.h
===================================================================
--- scummvm/trunk/engines/tinsel/tinsel.h	2010-10-22 21:07:28 UTC (rev 53707)
+++ scummvm/trunk/engines/tinsel/tinsel.h	2010-10-22 21:08:27 UTC (rev 53708)
@@ -139,6 +139,7 @@
 #define TinselV1 (TinselVersion == TINSEL_V1)
 #define TinselV2 (TinselVersion == TINSEL_V2)
 #define TinselV1PSX (TinselVersion == TINSEL_V1 && _vm->getPlatform() == Common::kPlatformPSX)
+#define IsDemo (_vm->getFeatures() & GF_DEMO)
 
 // Global reference to the TinselEngine object
 extern TinselEngine *_vm;
@@ -183,6 +184,7 @@
 	uint32 getFeatures() const;
 	Common::Language getLanguage() const;
 	uint16 getVersion() const;
+	uint32 TinselEngine::getFlags() const;
 	Common::Platform getPlatform() const;
 
 	const char *getSampleIndex(LANGUAGE lang);


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