diff options
Diffstat (limited to 'engines/tinsel/tinlib.cpp')
-rw-r--r-- | engines/tinsel/tinlib.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/engines/tinsel/tinlib.cpp b/engines/tinsel/tinlib.cpp index 766d4ed54a..b65be231bf 100644 --- a/engines/tinsel/tinlib.cpp +++ b/engines/tinsel/tinlib.cpp @@ -213,6 +213,43 @@ const MASTER_LIB_CODES DW1_CODES[] = { 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 Walked(CORO_PARAM, int actor, int x, int y, SCNHANDLE film, bool esc } /** + */ +static void WalkedTag(uint16 actorId) { + RegisterMover(actorId); +} + +/** * Declare a moving actor. */ static void WalkingActor(uint32 id, SCNHANDLE *rp = NULL) { @@ -4208,6 +4251,7 @@ int CallLibraryRoutine(CORO_PARAM, int operand, int32 *pp, const INT_CONTEXT *pi 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); |