TINSEL: Added new opcode set for the DW2 Demo
svn-id: r53708
This commit is contained in:
parent
9e9739c074
commit
96723838c6
3 changed files with 49 additions and 3 deletions
|
@ -78,9 +78,9 @@ enum REEL {
|
||||||
typedef enum { TRANS_DEF, TRANS_CUT, TRANS_FADE } TRANSITS;
|
typedef enum { TRANS_DEF, TRANS_CUT, TRANS_FADE } TRANSITS;
|
||||||
|
|
||||||
// amount to shift scene handles by
|
// amount to shift scene handles by
|
||||||
#define SCNHANDLE_SHIFT (TinselV2 ? 25 : 23)
|
#define SCNHANDLE_SHIFT ((TinselV2 && !IsDemo) ? 25 : 23)
|
||||||
#define OFFSETMASK (TinselV2 ? 0x01ffffffL : 0x007fffffL)
|
#define OFFSETMASK ((TinselV2 && !IsDemo) ? 0x01ffffffL : 0x007fffffL)
|
||||||
#define HANDLEMASK (TinselV2 ? 0xFE000000L : 0xFF800000L)
|
#define HANDLEMASK ((TinselV2 && !IsDemo) ? 0xFE000000L : 0xFF800000L)
|
||||||
|
|
||||||
void DoHailScene(SCNHANDLE scene);
|
void DoHailScene(SCNHANDLE scene);
|
||||||
|
|
||||||
|
|
|
@ -213,6 +213,43 @@ const MASTER_LIB_CODES DW1_CODES[] = {
|
||||||
HIGHEST_LIBCODE
|
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[] = {
|
const MASTER_LIB_CODES DW2_CODES[] = {
|
||||||
ACTORBRIGHTNESS, ACTORDIRECTION, ACTORPALETTE, ACTORPRIORITY,
|
ACTORBRIGHTNESS, ACTORDIRECTION, ACTORPALETTE, ACTORPRIORITY,
|
||||||
ACTORREF, ACTORRGB, ACTORSCALE, ACTORXPOS, ACTORYPOS,
|
ACTORREF, ACTORRGB, ACTORSCALE, ACTORXPOS, ACTORYPOS,
|
||||||
|
@ -3977,6 +4014,12 @@ static void Walked(CORO_PARAM, int actor, int x, int y, SCNHANDLE film, bool esc
|
||||||
CORO_END_CODE;
|
CORO_END_CODE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
static void WalkedTag(uint16 actorId) {
|
||||||
|
RegisterMover(actorId);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Declare a moving actor.
|
* Declare a moving actor.
|
||||||
*/
|
*/
|
||||||
|
@ -4208,6 +4251,7 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi
|
||||||
int libCode;
|
int libCode;
|
||||||
if (TinselV0) libCode = DW1DEMO_CODES[operand];
|
if (TinselV0) libCode = DW1DEMO_CODES[operand];
|
||||||
else if (!TinselV2) libCode = DW1_CODES[operand];
|
else if (!TinselV2) libCode = DW1_CODES[operand];
|
||||||
|
else if (_vm->getFeatures() & GF_DEMO) libCode = DW2DEMO_CODES[operand];
|
||||||
else libCode = DW2_CODES[operand];
|
else libCode = DW2_CODES[operand];
|
||||||
|
|
||||||
debug(7, "CallLibraryRoutine op %d (escOn %d, myEscape %d)", operand, pic->escOn, pic->myEscape);
|
debug(7, "CallLibraryRoutine op %d (escOn %d, myEscape %d)", operand, pic->escOn, pic->myEscape);
|
||||||
|
|
|
@ -139,6 +139,7 @@ typedef bool (*KEYFPTR)(const Common::KeyState &);
|
||||||
#define TinselV1 (TinselVersion == TINSEL_V1)
|
#define TinselV1 (TinselVersion == TINSEL_V1)
|
||||||
#define TinselV2 (TinselVersion == TINSEL_V2)
|
#define TinselV2 (TinselVersion == TINSEL_V2)
|
||||||
#define TinselV1PSX (TinselVersion == TINSEL_V1 && _vm->getPlatform() == Common::kPlatformPSX)
|
#define TinselV1PSX (TinselVersion == TINSEL_V1 && _vm->getPlatform() == Common::kPlatformPSX)
|
||||||
|
#define IsDemo (_vm->getFeatures() & GF_DEMO)
|
||||||
|
|
||||||
// Global reference to the TinselEngine object
|
// Global reference to the TinselEngine object
|
||||||
extern TinselEngine *_vm;
|
extern TinselEngine *_vm;
|
||||||
|
@ -183,6 +184,7 @@ public:
|
||||||
uint32 getFeatures() const;
|
uint32 getFeatures() const;
|
||||||
Common::Language getLanguage() const;
|
Common::Language getLanguage() const;
|
||||||
uint16 getVersion() const;
|
uint16 getVersion() const;
|
||||||
|
uint32 TinselEngine::getFlags() const;
|
||||||
Common::Platform getPlatform() const;
|
Common::Platform getPlatform() const;
|
||||||
|
|
||||||
const char *getSampleIndex(LANGUAGE lang);
|
const char *getSampleIndex(LANGUAGE lang);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue