Typedefs | |
typedef Common::List< Common::Rect > | RectList |
typedef uint32 | SCNHANDLE |
typedef int | HPOLYGON |
typedef Common::FixedStack< Math::Matrix4, 30 > | MatrixStack |
typedef Common::Array< Hunk > | Hunks |
typedef Common::Array< Math::Vector3d > | Vectors |
typedef Common::Array< Vectors > | AnimationData |
typedef uint32 | FRAME |
typedef uint32 | COLORREF |
typedef bool(* | KEYFPTR) (const Common::KeyState &, const Common::CustomEventType &) |
Enumerations | |
enum | { ANI_END = 0, ANI_JUMP = 1, ANI_HFLIP = 2, ANI_VFLIP = 3, ANI_HVFLIP = 4, ANI_ADJUSTX = 5, ANI_ADJUSTY = 6, ANI_ADJUSTXY = 7, ANI_NOSLEEP = 8, ANI_CALL = 9, ANI_HIDE = 10, ANI_STOP = 11 } |
enum | SCRIPTSTATE { ScriptFinished, ScriptNoSleep, ScriptSleep } |
enum | { SCROLLX_PAD = 64, SCROLLY_PAD = 64 } |
enum | BMV_OP { BMV_OP_DELTA = 0, BMV_OP_RAW = 1, BMV_OP_RUN = 2, BMV_OP_COUNT } |
enum | { DOUBLE_CLICK_TIME = 10, DEFTEXTSPEED = 0 } |
enum | TinselGameID { GID_DW1 = 0, GID_DW2 = 1, GID_NOIR = 2 } |
enum | TinselGameFeatures { GF_SCNFILES = 1 << 0, GF_ENHANCED_AUDIO_SUPPORT = 1 << 1, GF_ALT_MIDI = 1 << 2, GF_USE_3FLAGS = 1 << 3, GF_USE_4FLAGS = 1 << 4, GF_USE_5FLAGS = 1 << 5 } |
enum | TinselEngineVersion { TINSEL_V0 = 0, TINSEL_V1 = 1, TINSEL_V2 = 2, TINSEL_V3 = 3 } |
enum | { INV_OPEN = -1, INV_CONV = 0, INV_1 = 1, INV_2 = 2, DW0_INV_CONF = 3, INV_MENU = 3, NUM_INV_V0 = 4, DW2_INV_OPEN = 5, INV_DEFAULT = 6, INV_3 = 3, INV_4 = 4, NOIR_INV_CONF = 5, NUM_INV_V3 = 6, INV_7NOINV = 7, INV_8NOINV = 8, INV_NOTEBOOK = 9, MAX_NUM_INV = NUM_INV_V3 } |
enum | { NOOBJECT = -1, INV_NOICON_V0 = -1, INV_CLOSEICON = -2, INV_OPENICON = -3, INV_HELDNOTIN_V0 = -4, INV_NOICON_V3 = 0, INV_HELDNOTIN_V3 = 1, INV_HELDIN = 2 } |
enum | CONV_PARAM { CONV_DEF, CONV_BOTTOM, CONV_END, CONV_TOP } |
enum | InventoryType { EMPTY, FULL, CONF } |
enum | InvCursorFN { IC_AREA, IC_DROP } |
enum | CONFTYPE { MAIN_MENU, SAVE_MENU, LOAD_MENU, QUIT_MENU, RESTART_MENU, SOUND_MENU, CONTROLS_MENU, SUBTITLES_MENU, HOPPER_MENU1, HOPPER_MENU2, TOP_WINDOW } |
enum | BTYPE { RGROUP, ARSBUT, AABUT, AATBUT, ARSGBUT, AAGBUT, SLIDER, TOGGLE, TOGGLE1, TOGGLE2, DCTEST, FLIP, FRGROUP, ROTATE, NOTHING } |
enum | BFUNC { NOFUNC, SAVEGAME, LOADGAME, IQUITGAME, CLOSEWIN, OPENLOAD, OPENSAVE, OPENREST, OPENSOUND, OPENCONT, OPENSUBT, OPENQUIT, INITGAME, MUSICVOL, HOPPER2, BF_CHANGESCENE, CLANG, RLANG } |
enum | TM { TM_POINTER, TM_INDEX, TM_STRINGNUM, TM_UNK4, TM_NONE } |
enum | SSFN { S_START, S_SLIDE, S_END, S_TIMEUP, S_TIMEDN } |
enum | LANGUAGE { TXT_ENGLISH, TXT_FRENCH, TXT_GERMAN, TXT_ITALIAN, TXT_SPANISH, TXT_HEBREW, TXT_HUNGARIAN, TXT_JAPANESE, TXT_US, NUM_LANGUAGES } |
enum | PLR_EVENT { PLR_PROV_WALKTO = 0, PLR_WALKTO = 1, PLR_LOOK = 2, PLR_ACTION = 3, PLR_ESCAPE = 4, PLR_MENU = 5, PLR_QUIT = 6, PLR_PGUP = 7, PLR_PGDN = 8, PLR_HOME = 9, PLR_END = 10, PLR_DRAG1_START = 11, PLR_DRAG1_END = 12, PLR_DRAG2_START = 13, PLR_DRAG2_END = 14, PLR_JUMP = 15, PLR_NOEVENT = 16, PLR_SAVE = 17, PLR_LOAD = 18, PLR_WHEEL_UP = 19, PLR_WHEEL_DOWN = 20, PLR_INVENTORY = 21, PLR_NOTEBOOK = 22, PLR_SLEFT = PLR_WALKTO, PLR_DLEFT = PLR_ACTION, PLR_SRIGHT = PLR_LOOK, PLR_DRIGHT = PLR_NOEVENT, PLR_UNKNOWN = PLR_NOEVENT } |
enum | TINSEL_EVENT : int { NOEVENT, STARTUP, CLOSEDOWN, POINTED, UNPOINT, WALKIN, WALKOUT, PICKUP, PUTDOWN, WALKTO, LOOK, ACTION, CONVERSE, SHOWEVENT, HIDEEVENT, TALKING, ENDTALK, LEAVE_T2, RESTORE, PROV_WALKTO } |
enum | TINSEL1_EVENT { T1_POINTED, T1_WALKTO, T1_ACTION, T1_LOOK, T1_ENTER, T1_LEAVE, T1_STARTUP, T1_CONVERSE, T1_UNPOINT, T1_PUTDOWN, T1_NOEVENT } |
enum | InvObjAttr { IO_ONLYINV1 = 0x01, IO_ONLYINV2 = 0x02, IO_DROPCODE = 0x04, DEFINV1 = 0x08, DEFINV2 = 0x10, PERMACONV = 0x20, CONVENDITEM = 0x40, V3ATTR_X80 = 0x80, NOTEBOOK_CLUE = 0x200, V3ATTR_X400 = 0x400, NOTEBOOK_TITLE = 0x800, V3ATTR_X1000 = 0x1000, V3ATTR_X2000 = 0x2000 } |
enum | YBIAS { YB_X2, YB_X1_5 } |
enum | NPS { NOT_IN, GOING_UP, GOING_DOWN, LEAVING, ENTERING } |
enum | IND { NO_PROB, TRY_CENTER, TRY_CORNER, TRY_NEXTCORNER } |
enum | DIRECTION { LEFTREEL, RIGHTREEL, FORWARD, AWAY } |
enum | MOVER_TYPE { MOVER_2D, MOVER_3D } |
enum | AR_FUNCTION { AR_NORMAL, AR_PUSHREEL, AR_POPREEL, AR_WALKREEL } |
enum | { MAGICX = -101, MAGICY = -102 } |
enum | BOOKSTATE { CLOSED = 0, OPEN_UNKNOWN = 1, OPEN_ANIMATING = 2, OPENED = 3, PAGEFLIP = 4 } |
enum | RenderProgramOp : uint16 { MATRIX_DUPLICATE = 1, MATRIX_REMOVE = 2, UNUSED = 3, TRANSFORM = 4, TRANSLATE_X = 5, TRANSLATE_Y = 6, TRANSLATE_Z = 7, TRANSLATE_XYZ = 8, ROTATE_X = 9, ROTATE_Y = 10, ROTATE_Z = 11, ROTATE_XYZ = 17, STOP = 16 } |
enum | MeshPartType { MESH_PART_TYPE_COLOR, MESH_PART_TYPE_SOLID, MESH_PART_TYPE_TEXTURE } |
enum | ModelFlags { MODEL_HAS_TRANSLATION_TABLE = 1, MODEL_HAS_SCALE_TABLE = 2, MODEL_HAS_ROTATION_TABLE = 4 } |
enum | SysReel { NOTEPAD_OPENING = 4, NOTEPAD_OPEN = 5, NOTEPAD_CLOSED = 6, NOTEPAD_FLIPDOWN = 7, NOTEPAD_FLIPUP = 8, SCRIBBLES = 9, CURSOR = 11, INVMAIN = 15, SLIDER = 16, CONVERSATION_FRAME = 19, OPTIONS_MENU = 21, LOADSAVE_MENU = 22, QUIT_MENU = 23, SUBTITLES_MENU = 24, SLIDER_BG = 25, SLIDER_HI = 26, LEFT = 29, RIGHT = 30, LOADSCREEN = 31 } |
enum | { NUM_OBJECTS = 512, DMA_WNZ = 0x0001, DMA_CNZ = 0x0002, DMA_RLWA = 0x0002, DMA_CONST = 0x0004, DMA_WA = 0x0008, DMA_FLIPH = 0x0010, DMA_FLIPV = 0x0020, DMA_CLIP = 0x0040, DMA_TRANS = 0x0084, DMA_ABS = 0x0100, DMA_CHANGED = 0x0200, DMA_USERDEF = 0x0400, DMA_GHOST = 0x0080, DMA_3D = 0x0400, DMA_HARDFLAGS = (DMA_WNZ | DMA_CNZ | DMA_CONST | DMA_WA | DMA_FLIPH | DMA_FLIPV | DMA_TRANS) } |
enum | { MAX_COLORS = 256, BITS_PER_PIXEL = 8, MAX_INTENSITY = 255, NUM_PALETTES = 32, BGND_DAC_INDEX = 0, FGND_DAC_INDEX = 1, TBLUE1 = 228, TBLUE2 = 229, TBLUE3 = 230, TBLUE4 = 231, TALKFONT_COL = 233 } |
enum | RESUME_STATE { RES_NOT, RES_1, RES_2, RES_SAVEGAME } |
enum | { PCODE_STACK_SIZE = 128 } |
enum | GSORT { GS_NONE, GS_ACTOR, GS_MASTER, GS_POLYGON, GS_INVENTORY, GS_SCENE, GS_PROCESS, GS_GPROCESS } |
enum | RESCODE { RES_WAITING, RES_FINISHED, RES_CUTSHORT } |
enum | PTYPE { TEST, BLOCK, EFFECT, PATH, REFER, TAG, EX_BLOCK, EX_EFFECT, EX_PATH, EX_REFER, EX_TAG, EXIT, EX_EXIT, SCALE, EX_SCALE, SHAPE } |
enum | { NORMAL = 0, NODE = 1 } |
enum | { POINTING = 0x01, TAGWANTED = 0x02, FOLLOWCURSOR = 0x04 } |
enum | TSTATE { TAG_OFF, TAG_ON } |
enum | PSTATE { PS_NO_POINT, PS_NOT_POINTING, PS_POINTING } |
enum | { NOPOLY = -1 } |
enum | NoteBookPoly { CLUE_0 = 0, CLUE_1 = 1, CLUE_2 = 2, CLUE_3 = 3, CLUE_4 = 4, CLUE_5 = 5, CLUE_6 = 6, CLUE_7 = 7, MAIN, NEXT, PREV, NONE } |
enum | SRSTATE { SR_IDLE, SR_DORESTORE, SR_DONERESTORE, SR_DOSAVE, SR_DONESAVE, SR_ABORTED } |
enum | letype { LE_NAME, LE_DESC } |
enum | { MAX_NODES = 32, MAX_NOSCROLL = 16, MAX_ENTRANCE = 25, MAX_POLY = 256, MAX_ACTOR = 32 } |
enum | ENTRANCE_FLAGS { fCall = 0x00000001L, fHook = 0x00000002L } |
enum | REFTYPE { REF_DEFAULT, REF_UP, REF_DOWN, REF_LEFT, REF_RIGHT, REF_POINT } |
enum | TFTYPE { TF_NONE, TF_UP, TF_DOWN, TF_LEFT, TF_RIGHT, TF_FILM } |
enum | MASK_TYPE { ACT_DEFAULT, ACT_MASK = -1, ACT_ALWAYS = -2 } |
enum | SCALE { SCALE_DEFAULT, SCALE_LARGE, SCALE_MEDIUM, SCALE_SMALL, SCALE_COMPACT, SCALE_TINY, SCALE_AUX1, SCALE_AUX2, SCALE_AUX3, SCALE_AUX4, SCALE_AUX5 } |
enum | REEL { REEL_DEFAULT, REEL_ALL, REEL_HORIZ, REEL_VERT } |
enum | TRANSITS { TRANS_DEF, TRANS_CUT, TRANS_FADE } |
enum | STYPE { FX, VOICE } |
enum | PlayPriority { PRIORITY_SCRIPT, PRIORITY_SPLAY1, PRIORITY_SPLAY2, PRIORITY_TALK } |
enum | SampleFlags { PS_COMPLETE = 0x01, PS_SUSTAIN = 0x02 } |
enum | SYSVARS { SV_DEFAULT_INV, SV_CONV_TOPY, SV_CONV_BOTY, SV_CONV_MINX, SV_CONV_MINY, SV_CONV_ABOVE_Y, SV_CONV_BELOW_Y, SV_LANGUAGE, SV_SAMPLE_LANGUAGE, SV_SUBTITLES, SV_SAVED_GAME_EXISTS, SV_CONVERSATIONWAITS, SV_SPEECHWAITS, SV_ENABLEPOINTTAG, SV_ENABLEPRINTCURSOR, SV_SCROLL_XTRIGGER, SV_SCROLL_XDISTANCE, SV_SCROLL_XSPEED, SV_SCROLL_YTRIGGERTOP, SV_SCROLL_YTRIGGERBOT, SV_SCROLL_YDISTANCE, SV_SCROLL_YSPEED, SV_SPEECHDELAY, SV_MUSICDIMFACTOR, SV_TAGCOLOR, SV_USER1, SV_USER2, SV_USER3, SV_USER4, SV_USER5, SV_USER6, SV_MinimumXoffset, SV_MaximumXoffset, SV_MinimumYoffset, SV_MaximumYoffset, SYS_DefaultFxDimFactor, SYS_SceneFxDimFactor, SYS_HighlightRGB, SYS_Platform, SYS_Debug, ISV_DIVERT_ACTOR_T2 = 0x28, ISV_NO_BLOCKING_T2 = 0x29, ISV_GHOST_ACTOR_T2 = 0x2A, ISV_GHOST_BASE_T2 = 0x2B, ISV_GHOST_COLOR_T2 = 0x2C, SV_TOPVALID_T2 = 0x2D, SV_SPRITER_SCENE_ID = 0x2F, ISV_DIVERT_ACTOR_T3 = 0x32, ISV_NO_BLOCKING_T3 = 0x33, ISV_GHOST_ACTOR_T3 = 0x34, ISV_GHOST_BASE_T3 = 0x35, ISV_GHOST_COLOR_T3 = 0x36, SV_SPRITER_SCALE = 0x37, SV_SPRITER_OVERLAY = 0x38, SV_TOPVALID_T3 } |
enum | BOLLOX { SS_LOAD_OPTION, SS_SAVE_OPTION, SS_RESTART_OPTION, SS_SOUND_OPTION, SS_CONTROL_OPTION, SS_SUBTITLES_OPTION, SS_QUIT_OPTION, SS_RESUME_OPTION, SS_LOAD_HEADING, SS_SAVE_HEADING, SS_RESTART_HEADING, SS_QUIT_HEADING, SS_MVOL_SLIDER, SS_SVOL_SLIDER, SS_VVOL_SLIDER, SS_DCLICK_SLIDER, SS_DCLICK_TEST, SS_SWAP_TOGGLE, SS_TSPEED_SLIDER, SS_STITLE_TOGGLE, SS_HOPPER1, SS_SOUND_HEADING, SS_CONTROLS_HEADING, SS_LANGUAGE_SELECT, SS_NOIR1, SS_NOIR2, SS_NOIR3, SS_NOIR4, SS_MAX_VALID } |
enum | { TXT_CENTER = 0x0001, TXT_RIGHT = 0x0002, TXT_SHADOW = 0x0004, TXT_ABSOLUTE = 0x0008 } |
enum | EXTREME { EX_USEXY, EX_BOTTOM, EX_BOTTOMLEFT, EX_BOTTOMRIGHT, EX_LEFT, EX_RIGHT, EX_TOP, EX_TOPLEFT, EX_TOPRIGHT } |
enum | WHICH_VER { VER_GLITTER, VER_COMPILE } |
enum | SPEECH_TYPE { IS_SAY, IS_SAYAT, IS_TALK, IS_TALKAT } |
enum | TINSELAction { kActionNone, kActionWalkTo, kActionAction, kActionLook, kActionEscape, kActionOptionsDialog, kActionInventory, kActionNotebook, kActionSave, kActionLoad, kActionQuit, kActionPageUp, kActionPageDown, kActionHome, kActionEnd, kActionMoveUp, kActionMoveDown, kActionMoveLeft, kActionMoveRight } |
enum | { kTinselDebugAnimations = 1 << 0, kTinselDebugActions = 1 << 1, kTinselDebugSound = 1 << 2, kTinselDebugMusic = 2 << 3 } |
enum | TinselKeyDirection { MSK_LEFT = 1, MSK_RIGHT = 2, MSK_UP = 4, MSK_DOWN = 8, MSK_DIRECTION = MSK_LEFT | MSK_RIGHT | MSK_UP | MSK_DOWN } |
enum | { TOKEN_CONTROL = 0, TOKEN_LEAD, TOKEN_LEFT_BUT = TOKEN_LEAD + MAX_MOVERS, NUMTOKENS } |
Functions | |
void | ActorEvent (int ano, TINSEL_EVENT event, PLR_EVENT be) |
void | ActorEvent (CORO_PARAM, int ano, TINSEL_EVENT tEvent, bool bWait, int myEscape, bool *result=NULL) |
void | ActorEvent (int ano, TINSEL_EVENT tEvent, bool bWait, int myEscape, bool *result=NULL) |
void | ShowActor (CORO_PARAM, int ano) |
void | HideActor (CORO_PARAM, int ano) |
void | RestoreActorProcess (int id, INT_CONTEXT *pic, bool savegameFlag) |
SCRIPTSTATE | DoNextFrame (ANIM *pAnim) |
void | InitStepAnimScript (ANIM *pAnim, OBJECT *pAniObj, SCNHANDLE hNewScript, int aniSpeed) |
SCRIPTSTATE | StepAnimScript (ANIM *pAnim) |
void | SkipFrames (ANIM *pAnim, int numFrames) |
bool | AboutToJumpOrEnd (ANIM *pAnim) |
void | ResetClipRect () |
void | AddClipRect (const Common::Rect &pClip) |
const RectList & | GetClipRects () |
bool | IntersectRectangle (Common::Rect &pDest, const Common::Rect &pSrc1, const Common::Rect &pSrc2) |
bool | UnionRectangle (Common::Rect &pDest, const Common::Rect &pSrc1, const Common::Rect &pSrc2) |
void | FindMovingObjects (OBJECT **pObjList, Common::Point *pWin, Common::Rect *pClip, bool bVelocity, bool bScrolled) |
void | MergeClipRect () |
void | UpdateClipRectSingle (OBJECT *pObj, Common::Point *pWin, Common::Rect *pClip) |
void | UpdateClipRect (OBJECT **pObjList, Common::Point *pWin, Common::Rect *pClip) |
void | ObjectEvent (CORO_PARAM, int objId, TINSEL_EVENT event, bool bWait, int myEscape, bool *result=NULL) |
void | DoCdChange () |
void | CdCD (CORO_PARAM) |
int | GetCurrentCD () |
void | SetCD (int flags) |
int | GetCD (int flags) |
void | SetNextCD (int cdNumber) |
bool | GotoCD () |
void | AllowDclick (CORO_PARAM, PLR_EVENT be) |
bool | GetControl (int param) |
bool | GetControl () |
bool | ControlIsOn () |
void | ControlOn () |
void | ControlOff () |
void | ControlStartOff () |
void | RunPolyTinselCode (HPOLYGON hPoly, TINSEL_EVENT event, PLR_EVENT be, bool tc) |
void | effRunPolyTinselCode (HPOLYGON hPoly, TINSEL_EVENT event, int actor) |
void | ProcessButEvent (PLR_EVENT be) |
void | ProcessKeyEvent (PLR_EVENT ke) |
int | GetEscEvents () |
int | GetLeftEvents () |
bool | LeftEventChange (int myleftEvent) |
int | getUserEvents () |
uint32 | getUserEventTime () |
void | resetUserEventTime () |
void | ResetEcount () |
void | PolygonEvent (CORO_PARAM, HPOLYGON hPoly, TINSEL_EVENT tEvent, int actor, bool bWait, int myEscape, bool *result=NULL) |
void | PlayerEvent (PLR_EVENT pEvent, const Common::Point &coOrds) |
void | ProcessedProvisional () |
void | ProvNotProcessed () |
bool | GetProvNotProcessed () |
void | FadeOutMedium () |
void | FadeOutFast () |
void | FadeInMedium () |
void | FadeInFast () |
void | PokeInTagColor () |
void | ClearScreen () |
void | DrawObject (DRAWOBJECT *pObj) |
void | UpdateScreenRect (const Common::Rect &pClip) |
void | MemoryInit () |
void | MemoryDeinit () |
MEM_NODE * | MemoryNoAlloc () |
MEM_NODE * | MemoryAllocFixed (long size) |
void | MemoryDiscard (MEM_NODE *pMemNode) |
void * | MemoryLock (MEM_NODE *pMemNode) |
void | MemoryReAlloc (MEM_NODE *pMemNode, long size) |
void | MemoryUnlock (MEM_NODE *pMemNode) |
void | MemoryTouch (MEM_NODE *pMemNode) |
uint8 * | MemoryDeref (MEM_NODE *pMemNode) |
InventoryObjects * | InstantiateInventoryObjects (const byte *invObjects, int numObjects) |
void | SetWalkReels (MOVER *pMover, int scale, SCNHANDLE al, SCNHANDLE ar, SCNHANDLE af, SCNHANDLE aa) |
void | SetStandReels (MOVER *pMover, int scale, SCNHANDLE al, SCNHANDLE ar, SCNHANDLE af, SCNHANDLE aa) |
void | SetTalkReels (MOVER *pMover, int scale, SCNHANDLE al, SCNHANDLE ar, SCNHANDLE af, SCNHANDLE aa) |
SCNHANDLE | GetMoverTalkReel (MOVER *pActor, TFTYPE dirn) |
void | SetScalingReels (int actor, int scale, int direction, SCNHANDLE left, SCNHANDLE right, SCNHANDLE forward, SCNHANDLE away) |
SCNHANDLE | ScalingReel (int ano, int scale1, int scale2, DIRECTION reel) |
void | RebootScalingReels () |
void | TouchMoverReels () |
int | SetActorDest (MOVER *pMover, int x, int y, bool igPath, SCNHANDLE film) |
void | SSetActorDest (MOVER *pActor) |
void | DoMoveActor (MOVER *pMover) |
void | SetDefaultRefer (int32 defRefer) |
int | GetLastLeadXdest () |
int | GetLastLeadYdest () |
DIRECTION | GetDirection (int fromx, int fromy, int tox, int toy, DIRECTION lastreel, HPOLYGON hPath, YBIAS yBias=YB_X2) |
void | MoverProcessCreate (int X, int Y, int id, MOVER *pMover) |
void | StoreMoverPalette (MOVER *pMover, int startColor, int length) |
void | MoverBrightness (MOVER *pMover, int brightness) |
MOVER * | GetMover (int ano) |
MOVER * | RegisterMover (int ano) |
void | KillMover (MOVER *pMover) |
MOVER * | GetLiveMover (int index) |
bool | getMActorState (MOVER *psActor) |
int | GetMoverId (MOVER *pMover) |
void | SetMoverZ (MOVER *pMover, int y, uint32 zFactor) |
void | SetMoverZoverride (MOVER *pMover, uint32 zFactor) |
void | HideMover (MOVER *pMover, int sf=0) |
bool | MoverHidden (MOVER *pMover) |
bool | MoverIs (MOVER *pMover) |
bool | MoverIsSWalking (MOVER *pMover) |
bool | MoverMoving (MOVER *pMover) |
int | GetWalkNumber (MOVER *pMover) |
void | UnHideMover (MOVER *pMover) |
void | DropMovers () |
void | PositionMover (MOVER *pMover, int x, int y) |
void | GetMoverPosition (MOVER *pMover, int *aniX, int *aniY) |
void | GetMoverMidTop (MOVER *pMover, int *aniX, int *aniY) |
int | GetMoverLeft (MOVER *pMover) |
int | GetMoverRight (MOVER *pMover) |
int | GetMoverTop (MOVER *pMover) |
int | GetMoverBottom (MOVER *pMover) |
bool | MoverIsInPolygon (MOVER *pMover, HPOLYGON hPoly) |
void | AlterMover (MOVER *pMover, SCNHANDLE film, AR_FUNCTION fn) |
DIRECTION | GetMoverDirection (MOVER *pMover) |
int | GetMoverScale (MOVER *pMover) |
void | SetMoverDirection (MOVER *pMover, DIRECTION dirn) |
void | SetMoverStanding (MOVER *pMover) |
void | SetMoverWalkReel (MOVER *pMover, DIRECTION reel, int scale, bool force) |
MOVER * | InMoverBlock (MOVER *pMover, int x, int y) |
void | RebootMovers () |
bool | IsMAinEffectPoly (int index) |
void | SetMoverInEffect (int index, bool tf) |
void | StopMover (MOVER *pMover) |
void | SaveMovers (SAVED_MOVER *sMoverInfo) |
void | RestoreAuxScales (SAVED_MOVER *sMoverInfo) |
MOVER * | NextMover (MOVER *pMover) |
OBJECT * | MultiInitObject (const MULTI_INIT *pInitTbl) |
void | MultiInsertObject (OBJECT **pObjList, OBJECT *pInsObj) |
void | MultiDeleteObject (OBJECT **pObjList, OBJECT *pMultiObj) |
void | MultiDeleteObjectIfExists (unsigned int playfield, OBJECT **pMultiObj) |
void | MultiHideObject (OBJECT *pMultiObj) |
void | MultiHorizontalFlip (OBJECT *pFlipObj) |
void | MultiVerticalFlip (OBJECT *pFlipObj) |
void | MultiAdjustXY (OBJECT *pMultiObj, int deltaX, int deltaY) |
void | MultiMoveRelXY (OBJECT *pMultiObj, int deltaX, int deltaY) |
void | MultiSetAniXY (OBJECT *pMultiObj, int newAniX, int newAniY) |
void | MultiSetAniXYZ (OBJECT *pMultiObj, int newAniX, int newAniY, int zPosition) |
void | MultiSetAniX (OBJECT *pMultiObj, int newAniX) |
void | MultiSetAniY (OBJECT *pMultiObj, int newAniY) |
void | MultiSetZPosition (OBJECT *pMultiObj, int newZ) |
void | MultiReshape (OBJECT *pMultiObj) |
Common::Rect | MultiBounds (OBJECT *pMulti) |
int | MultiLeftmost (OBJECT *pMulti) |
int | MultiRightmost (OBJECT *pMulti) |
int | MultiHighest (OBJECT *pMulti) |
int | MultiLowest (OBJECT *pMulti) |
bool | MultiHasShape (OBJECT *pMulti) |
void | MultiForceRedraw (OBJECT *pMultiObj) |
OBJECT * | InsertReelObj (const FREEL *reels) |
const FILM * | GetSystemReelFilm (SysReel reelIndex) |
OBJECT * | InsertSystemReelObj (SysReel reelIndex) |
int | decompressLZSS (Common::SeekableReadStream &input, byte *output) |
void | KillAllObjects () |
void | FreeObjectList () |
OBJECT * | AllocObject () |
void | FreeObject (OBJECT *pFreeObj) |
bool | isValidObject (OBJECT *obj) |
void | CopyObject (OBJECT *pDest, OBJECT *pSrc) |
void | InsertObject (OBJECT **pObjList, OBJECT *pInsObj) |
void | DelObject (OBJECT **pObjList, OBJECT *pDelObj) |
void | SortObjectList (OBJECT **pObjList) |
void | GetAniOffset (SCNHANDLE hImg, int flags, int *pAniX, int *pAniY) |
void | GetAniPosition (OBJECT *pObj, int *pPosX, int *pPosY) |
OBJECT * | InitObject (const OBJ_INIT *pInitTbl) |
void | AnimateObjectFlags (OBJECT *pAniObj, int newflags, SCNHANDLE hNewImg) |
void | AnimateObject (OBJECT *pAniObj, SCNHANDLE hNewImg) |
void | HideObject (OBJECT *pObj) |
OBJECT * | RectangleObject (SCNHANDLE hPal, int color, int width, int height) |
OBJECT * | TranslucentObject (int width, int height) |
void | ResetPalAllocator () |
void | psxPaletteMapper (PALQ *originalPal, uint8 *psxClut, byte *mapperTable) |
void | PalettesToVideoDAC () |
void | UpdateDACqueueHandle (int posInDAC, int numColors, SCNHANDLE hPalette) |
void | UpdateDACqueue (int posInDAC, int numColors, COLORREF *pColors) |
void | UpdateDACqueue (int posInDAC, COLORREF color) |
PALQ * | AllocPalette (SCNHANDLE hNewPal) |
void | FreePalette (PALQ *pFreePal) |
PALQ * | FindPalette (SCNHANDLE hSrchPal) |
void | SwapPalette (PALQ *pPalQ, SCNHANDLE hNewPal) |
PALQ * | GetNextPalette (PALQ *pStrtPal) |
COLORREF | GetBgndColor () |
void | SetBgndColor (COLORREF color) |
void | FadingPalette (PALQ *pPalQ, bool bFading) |
void | CreateTranslucentPalette (SCNHANDLE BackPal) |
void | NoFadingPalettes () |
void | DimPartPalette (SCNHANDLE hPal, int startColor, int length, int brightness) |
int | TranslucentColor () |
int | DarkGreen () |
int | HighlightColor () |
int | TalkColor () |
void | SetTalkColorRef (COLORREF colRef) |
COLORREF | GetTalkColorRef () |
void | SetTagColorRef (COLORREF colRef) |
COLORREF | GetTagColorRef () |
void | SetTalkTextOffset (int offset) |
void | SetTranslucencyOffset (int offset) |
void | Interpret (CORO_PARAM, INT_CONTEXT *ic) |
INT_CONTEXT * | InitInterpretContext (GSORT gsort, SCNHANDLE hCode, TINSEL_EVENT event, HPOLYGON hpoly, int actorid, const InventoryObject *pinvo, int myEscape=-1) |
INT_CONTEXT * | RestoreInterpretContext (INT_CONTEXT *ric) |
void | FreeMostInterpretContexts () |
void | FreeMasterInterpretContext () |
void | SaveInterpretContexts (INT_CONTEXT *sICInfo) |
void | RegisterGlobals (int num) |
void | FreeGlobals () |
void | AttachInterpret (INT_CONTEXT *pic, Common::PROCESS *pProc) |
void | WaitInterpret (CORO_PARAM, Common::PPROCESS pWaitProc, bool *result) |
void | EnableTags () |
void | DisableTags () |
void | DisablePointing () |
void | EnablePointing () |
void | PlayFilm (CORO_PARAM, SCNHANDLE film, int x, int y, int actorid, bool splay, bool sfact, bool escOn, int myescEvent, bool bTop, OBJECT **playfield) |
void | PlayFilm (CORO_PARAM, SCNHANDLE hFilm, int x, int y, int myescEvent, bool bTop, OBJECT **playfield) |
void | PlayFilmc (CORO_PARAM, SCNHANDLE hFilm, int x, int y, int actorid, bool splay, bool sfact, bool escOn, int myescEvent, bool bTop, OBJECT **playfield) |
void | RestoreActorReels (SCNHANDLE hFilm, short reelnum, short z, int x, int y) |
void | RestoreActorReels (SCNHANDLE hFilm, int actor, int x, int y) |
void | PokeInPalette (const MULTI_INIT *pmi) |
void | NoSoundReels () |
void | SaveSoundReels (SOUNDREELS *psr) |
void | RestoreSoundReels (SOUNDREELS *psr) |
int | ExtractActor (SCNHANDLE hFilm) |
bool | IsInPolygon (int xt, int yt, HPOLYGON p) |
HPOLYGON | InPolygon (int xt, int yt, PTYPE type) |
void | BlockingCorner (HPOLYGON poly, int *x, int *y, int tarx, int tary) |
void | FindBestPoint (HPOLYGON path, int *x, int *y, int *line) |
bool | IsAdjacentPath (HPOLYGON path1, HPOLYGON path2) |
HPOLYGON | GetPathOnTheWay (HPOLYGON from, HPOLYGON to) |
int | NearestEndNode (HPOLYGON path, int x, int y) |
int | NearEndNode (HPOLYGON spath, HPOLYGON dpath) |
int | NearestNodeWithin (HPOLYGON npath, int x, int y) |
void | NearestCorner (int *x, int *y, HPOLYGON spath, HPOLYGON dpath) |
bool | IsPolyCorner (HPOLYGON hPath, int x, int y) |
int | GetScale (HPOLYGON path, int y) |
int | GetBrightness (HPOLYGON hPath, int y) |
void | getNpathNode (HPOLYGON npath, int node, int *px, int *py) |
SCNHANDLE | GetPolyFilm (HPOLYGON p) |
void | GetPolyNode (HPOLYGON hp, int *pNodeX, int *pNodeY) |
SCNHANDLE | GetPolyScript (HPOLYGON p) |
REEL | GetPolyReelType (HPOLYGON p) |
int32 | GetPolyZfactor (HPOLYGON p) |
int | numNodes (HPOLYGON pp) |
void | RebootDeadTags () |
void | DisableBlock (int block) |
void | EnableBlock (int block) |
void | DisableEffect (int effect) |
void | EnableEffect (int effect) |
void | DisablePath (int path) |
void | EnablePath (int path) |
void | DisableRefer (int refer) |
void | EnableRefer (int refer) |
HPOLYGON | GetTagHandle (int tagno) |
void | DisableTag (CORO_PARAM, int tag) |
void | EnableTag (CORO_PARAM, int tag) |
void | DisableExit (int exitno) |
void | EnableExit (int exitno) |
HPOLYGON | FirstPathPoly () |
HPOLYGON | GetPolyHandle (int i) |
void | InitPolygons (SCNHANDLE ph, int numPoly, bool bRestart) |
void | DropPolygons () |
void | SaveDeadPolys (bool *sdp) |
void | RestoreDeadPolys (bool *sdp) |
void | SavePolygonStuff (POLY_VOLATILE *sps) |
void | RestorePolygonStuff (POLY_VOLATILE *sps) |
PTYPE | PolyType (HPOLYGON hp) |
int | PolySubtype (HPOLYGON hp) |
int | PolyCenterX (HPOLYGON hp) |
int | PolyCenterY (HPOLYGON hp) |
int | PolyCornerX (HPOLYGON hp, int n) |
int | PolyCornerY (HPOLYGON hp, int n) |
PSTATE | PolyPointState (HPOLYGON hp) |
TSTATE | PolyTagState (HPOLYGON hp) |
void | SetPolyPointState (HPOLYGON hp, PSTATE ps) |
void | SetPolyTagState (HPOLYGON hp, TSTATE ts) |
void | SetPolyTagHandle (HPOLYGON hp, SCNHANDLE th) |
void | MaxPolygons (int maxPolys) |
int | GetTagPolyId (HPOLYGON hp) |
void | GetTagTag (HPOLYGON hp, SCNHANDLE *hTagText, int *tagX, int *tagY) |
void | SetPolyPointedTo (HPOLYGON hp, bool bPointedTo) |
bool | PolyIsPointedTo (HPOLYGON hp) |
void | SetPolyTagWanted (HPOLYGON hp, bool bTagWanted, bool bCursor, SCNHANDLE hOverrideTag) |
bool | PolyTagIsWanted (HPOLYGON hp) |
bool | PolyTagFollowsCursor (HPOLYGON hp) |
SCNHANDLE | GetPolyTagHandle (HPOLYGON hp) |
bool | IsTagPolygon (int tagno) |
void | GetPolyMidBottom (HPOLYGON hp, int *pX, int *pY) |
int | PathCount () |
void | MovePolygon (PTYPE ptype, int id, int x, int y) |
void | MovePolygonTo (PTYPE ptype, int id, int x, int y) |
void | NotebookPolyEntry (Common::Point c0, Common::Point c1, Common::Point c2, Common::Point c3) |
void | NotebookPolyNextPage (Common::Point c0, Common::Point c1, Common::Point c2, Common::Point c3) |
void | NotebookPolyPrevPage (Common::Point c0, Common::Point c1, Common::Point c2, Common::Point c3) |
void | UpdateGroundPlane () |
NoteBookPolygons * | instantiateNoteBookPolygons () |
void | TinselRestoreScene (bool bFade) |
void | TinselSaveScene (CORO_PARAM) |
void | DoRestoreScene (SAVED_DATA *sd, bool bFadeOut) |
void | DoSaveScene (SAVED_DATA *sd) |
bool | IsRestoringScene () |
char * | ListEntry (int i, letype which) |
int | getList () |
void | setNeedLoad () |
void | RestoreGame (int num) |
void | SaveGame (char *name, char *desc) |
void | ProcessSRQueue () |
void | RequestSaveGame (char *name, char *desc, SAVED_DATA *sd, int *ssCount, SAVED_DATA *ssData) |
void | RequestRestoreGame (int num, SAVED_DATA *sd, int *ssCount, SAVED_DATA *ssData) |
void | InitializeSaveScenes () |
void | FreeSaveScenes () |
void | DoHailScene (SCNHANDLE scene) |
void | WrapScene () |
void | StartNewScene (SCNHANDLE scene, int entry) |
void | EndScene () |
void | SendSceneTinselProcess (TINSEL_EVENT event) |
void | SetView (int id, int scale) |
void | SceneProcesses (uint32 numProcess, SCNHANDLE hProcess) |
void | KillSceneProcess (uint32 procID) |
void | SceneProcessEvent (CORO_PARAM, uint32 procID, TINSEL_EVENT event, bool bWait, int myEscape, bool *result=NULL) |
void | RestoreSceneProcess (INT_CONTEXT *pic) |
void | GlobalProcesses (uint32 numProcess, byte *pProcess) |
void | xKillGlobalProcess (uint32 procID) |
bool | GlobalProcessEvent (CORO_PARAM, uint32 procID, TINSEL_EVENT event, bool bWait, int myEscape) |
void | RestoreGlobalProcess (INT_CONTEXT *pic) |
void | KillGlobalProcesses () |
void | FreeGlobalProcesses () |
byte * | FindChunk (SCNHANDLE handle, uint32 chunk) |
void | ScrollProcess (CORO_PARAM, const void *) |
void | ChangeLanguage (LANGUAGE newLang) |
int | LoadStringRes (int id, char *pBuffer, int bufferMax) |
int | LoadSubString (int id, int sub, char *pBuffer, int bufferMax) |
int | SubStringCount (int id) |
void | FreeTextBuffer () |
void | LanguageFacts (int language, SCNHANDLE hDescription, SCNHANDLE hFlagFilm) |
LANGUAGE | TextLanguage () |
LANGUAGE | SampleLanguage () |
int | NumberOfLanguages () |
SCNHANDLE | LanguageDesc (LANGUAGE thisOne) |
SCNHANDLE | LanguageFlag (LANGUAGE thisOne) |
void | InitSysVars () |
void | SetSysVar (int varId, int newValue) |
int | SysVar (int varId) |
void | SaveSysVars (int *pSv) |
void | RestoreSysVars (int *pSv) |
void | SetSysString (int number, SCNHANDLE hString) |
SCNHANDLE | SysString (int number) |
bool | GetNoBlocking () |
void | SetNoBlocking (bool flag) |
OBJECT * | ObjectTextOut (OBJECT **pList, char *szStr, int color, int xPos, int yPos, SCNHANDLE hFont, int mode, int sleepTime=0) |
bool | IsCharImage (SCNHANDLE hFont, char c) |
uint32 | t3GetBaseColor () |
uint32 | DwGetCurrentTime () |
void | RebootTimers () |
void | syncTimerInfo (Common::Serializer &s) |
void | FettleTimers () |
void | StartTimer (int num, int sval, bool up, bool frame) |
int | Timer (int num) |
void | TinGetVersion (WHICH_VER which, char *buffer, int length) |
void | ActorBrightness (int actor, int brightness) |
void | ActorPalette (int actor, int startColor, int length) |
void | Control (int param) |
void | HookScene (SCNHANDLE scene, int entrance, int transition) |
void | NewScene (CORO_PARAM, SCNHANDLE scene, int entrance, int transition) |
void | Offset (EXTREME extreme, int x, int y) |
void | FnRestartGame () |
void | RestoreScene () |
void | ResumeLastGame () |
void | SaveScene (CORO_PARAM) |
void | Stand (CORO_PARAM, int actor, int x, int y, SCNHANDLE film) |
void | SetTextPal (COLORREF col) |
void | KeepOnScreen (OBJECT *pText, int *pTextX, int *pTextY) |
void | CuttingScene (bool bCutting) |
void | CDChangeForRestore (int cdNumber) |
void | CdHasChanged () |
void | GetControlToken () |
void | FreeControlToken () |
void | GetToken (int which) |
void | FreeToken (int which) |
void | FreeAllTokens () |
bool | TestToken (int which) |
Variables | |
const TINSEL1_EVENT | TINSEL1_EVENT_MAP [] |
struct Tinsel::FREEL | PACKED_STRUCT |
bool | g_bMultiByte |
TinselEngine * | _vm |
This is the namespace of the Tinsel engine.
Status of this engine: Complete
Games using this engine:
typedef uint32 Tinsel::SCNHANDLE |
scene handle data type
typedef int Tinsel::HPOLYGON |
polygon handle
typedef uint32 Tinsel::FRAME |
a multi-object animation frame is a list of multi-image handles
anonymous enum |
Animation script commands
enum Tinsel::SCRIPTSTATE |
states for DoNextFrame
anonymous enum |
Scrolling padding. Needed because scroll process does not normally run on every frame
The following is the ScummVM definitions of the various Tinsel versions: TINSEL_V0 - This was an early engine version that was only used in the Discworld 1 demo. TINSEL_V1 - This was the engine version used by Discworld 1. Note that there were two major releases: an earlier version that used *.gra files, and a later one that used *.scn files, and contained certain script and engine bugfixes. In ScummVM, we treat both releases as 'Tinsel 1', since the engine fixes from the later version work equally well the earlier version data. TINSEL_V2 - This is the engine used for the Discworld 2 game.
enum Tinsel::BTYPE |
enum Tinsel::TINSEL_EVENT : int |
Reasons for running Glitter code. Do not re-order these as equivalent CONSTs are defined in the master scene Glitter source file for testing against the event() library function.
Note: DW2 renames ENTER & LEAVE to WALKIN & WALKOUT, and has a new LEAVE event
anonymous enum |
anonymous enum |
anonymous enum |
Enumerator | |
---|---|
MAX_NODES | maximum nodes in a Node Path |
MAX_NOSCROLL | maximum number of NoScroll commands in a scene |
MAX_ENTRANCE | maximum number of entrances in a scene |
MAX_POLY | maximum number of polygons in a scene |
MAX_ACTOR | maximum number of actors in a scene |
enum Tinsel::REFTYPE |
reference direction
enum Tinsel::MASK_TYPE |
different actor masks
enum Tinsel::SCALE |
different scales
enum Tinsel::REEL |
different reels
anonymous enum |
void Tinsel::ChangeLanguage | ( | LANGUAGE | newLang | ) |
Called to load a resource file for a different language
newLang | The new language |
int Tinsel::LoadStringRes | ( | int | id, |
char * | pBuffer, | ||
int | bufferMax | ||
) |
Loads a string resource identified by id.
id | identifier of string to be loaded |
pBuffer | points to buffer that receives the string |
bufferMax | maximum number of chars to be copied to the buffer |
int Tinsel::LoadSubString | ( | int | id, |
int | sub, | ||
char * | pBuffer, | ||
int | bufferMax | ||
) |
Loads a string resource identified by id
id | identifier of string to be loaded |
sub | sub-string number |
pBuffer | points to buffer that receives the string |
bufferMax | maximum number of chars to be copied to the buffer |
void Tinsel::FreeTextBuffer | ( | ) |
Frees the text buffer allocated from ChangeLanguage()
Called from TINLIB.C from DeclareLanguage().
LANGUAGE Tinsel::TextLanguage | ( | ) |
Gets the current subtitles language
LANGUAGE Tinsel::SampleLanguage | ( | ) |
Gets the current voice language
OBJECT* Tinsel::ObjectTextOut | ( | OBJECT ** | pList, |
char * | szStr, | ||
int | color, | ||
int | xPos, | ||
int | yPos, | ||
SCNHANDLE | hFont, | ||
int | mode, | ||
int | sleepTime = 0 |
||
) |
Main text outputting routine. If a object list is specified a multi-object is created for the whole text and a pointer to the head of the list is returned.
pList | object list to add text to |
szStr | string to output |
color | color for monochrome text |
xPos | x position of string |
yPos | y position of string |
hFont | which font to use |
mode | mode flags for the string |
sleepTime | Sleep time between each character (if non-zero) |
const TINSEL1_EVENT Tinsel::TINSEL1_EVENT_MAP[] |