ScummVM API documentation
Tinsel Namespace Reference

Classes

class  Actor
 
struct  ACTORDATA
 
union  ANI_SCRIPT
 
struct  ANIM
 
struct  AnimationInfo
 
struct  BACKGND
 
class  Background
 
class  BMVPlayer
 
struct  BUTTONEFFECT
 
struct  CONFBOX
 
class  Config
 
class  Console
 
class  Cursor
 
class  Dialogs
 
struct  DRAWOBJECT
 
struct  ENTRY
 
struct  FILM
 
struct  FONT
 
class  Font
 
struct  FREEL
 
class  Handle
 
struct  HOPENTRY
 
struct  HOPPER
 
struct  Hunk
 
struct  HYPERLINK
 
struct  IMAGE
 
struct  INT_CONTEXT
 
struct  INV_DEF
 
class  InventoryObject
 
class  InventoryObjects
 
class  InventoryObjectT3
 
struct  MAINIT
 
struct  Mesh
 
struct  Meshes
 
struct  MeshInfo
 
struct  MeshPart
 
class  MidiMusicPlayer
 
struct  Model
 
struct  ModelTables
 
struct  MOVER
 
struct  MULTI_INIT
 
class  Music
 
struct  NOSCROLLB
 
class  Notebook
 
class  NotebookLine
 
class  NotebookPage
 
class  NoteBookPolygons
 
struct  OBJ_INIT
 
struct  OBJECT
 
struct  PALETTE
 
struct  PALQ
 
class  PCMMusicPlayer
 
struct  PLAYFIELD
 
struct  POLY_VOLATILE
 
struct  Primitive
 
struct  PROCESS_STRUC
 
struct  SAVED_ACTOR
 
struct  SAVED_DATA
 
struct  SAVED_MOVER
 
class  Scroll
 
struct  SCROLLDATA
 
class  SoundManager
 
struct  SOUNDREELS
 
class  Spriter
 
class  SystemReel
 
struct  TAGACTORDATA
 
struct  TEXTOUT
 
class  Tinsel4_ADPCMStream
 
class  Tinsel6_ADPCMStream
 
class  Tinsel8_ADPCMStream
 
class  Tinsel_ADPCMStream
 
class  TinselEngine
 
class  TinselFile
 
struct  TinselGameDescription
 
struct  View
 
struct  Viewport
 
struct  Z_POSITIONS
 

Typedefs

typedef Common::List< Common::RectRectList
 
typedef uint32 SCNHANDLE
 
typedef int HPOLYGON
 
typedef Common::FixedStack< Math::Matrix4, 30 > MatrixStack
 
typedef Common::Array< HunkHunks
 
typedef Common::Array< Math::Vector3d > Vectors
 
typedef Common::Array< VectorsAnimationData
 
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 RectListGetClipRects ()
 
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)
 
InventoryObjectsInstantiateInventoryObjects (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)
 
MOVERGetMover (int ano)
 
MOVERRegisterMover (int ano)
 
void KillMover (MOVER *pMover)
 
MOVERGetLiveMover (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)
 
MOVERInMoverBlock (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)
 
MOVERNextMover (MOVER *pMover)
 
OBJECTMultiInitObject (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)
 
OBJECTInsertReelObj (const FREEL *reels)
 
const FILMGetSystemReelFilm (SysReel reelIndex)
 
OBJECTInsertSystemReelObj (SysReel reelIndex)
 
int decompressLZSS (Common::SeekableReadStream &input, byte *output)
 
void KillAllObjects ()
 
void FreeObjectList ()
 
OBJECTAllocObject ()
 
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)
 
OBJECTInitObject (const OBJ_INIT *pInitTbl)
 
void AnimateObjectFlags (OBJECT *pAniObj, int newflags, SCNHANDLE hNewImg)
 
void AnimateObject (OBJECT *pAniObj, SCNHANDLE hNewImg)
 
void HideObject (OBJECT *pObj)
 
OBJECTRectangleObject (SCNHANDLE hPal, int color, int width, int height)
 
OBJECTTranslucentObject (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)
 
PALQAllocPalette (SCNHANDLE hNewPal)
 
void FreePalette (PALQ *pFreePal)
 
PALQFindPalette (SCNHANDLE hSrchPal)
 
void SwapPalette (PALQ *pPalQ, SCNHANDLE hNewPal)
 
PALQGetNextPalette (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_CONTEXTInitInterpretContext (GSORT gsort, SCNHANDLE hCode, TINSEL_EVENT event, HPOLYGON hpoly, int actorid, const InventoryObject *pinvo, int myEscape=-1)
 
INT_CONTEXTRestoreInterpretContext (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 ()
 
NoteBookPolygonsinstantiateNoteBookPolygons ()
 
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)
 
OBJECTObjectTextOut (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
 

Detailed Description

This is the namespace of the Tinsel engine.

Status of this engine: Complete

Games using this engine:

  • Discworld
  • Discworld 2: Missing Presumed ...!?
  • Discworld Noir

Typedef Documentation

◆ SCNHANDLE

typedef uint32 Tinsel::SCNHANDLE

scene handle data type

◆ HPOLYGON

typedef int Tinsel::HPOLYGON

polygon handle

◆ FRAME

typedef uint32 Tinsel::FRAME

a multi-object animation frame is a list of multi-image handles

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Animation script commands

Enumerator
ANI_END 

end of animation script

ANI_JUMP 

animation script jump

ANI_HFLIP 

flip animated object horizontally

ANI_VFLIP 

flip animated object vertically

ANI_HVFLIP 

flip animated object in both directions

ANI_ADJUSTX 

adjust animated object x animation point

ANI_ADJUSTY 

adjust animated object y animation point

ANI_ADJUSTXY 

adjust animated object x & y animation points

ANI_NOSLEEP 

do not sleep for this frame

ANI_CALL 

call routine

ANI_HIDE 

hide animated object

ANI_STOP 

stop sound

◆ SCRIPTSTATE

states for DoNextFrame

◆ anonymous enum

anonymous enum

Scrolling padding. Needed because scroll process does not normally run on every frame

◆ TinselEngineVersion

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.

◆ BTYPE

Enumerator
RGROUP 

Radio button group - 1 is selectable at a time. Action on double click.

ARSBUT 

Action if a radio button is selected.

AABUT 

Action always.

AATBUT 

Action always, text box.

AAGBUT 

Action always, graphic button.

SLIDER 

Not a button at all.

TOGGLE 

Discworld 1 toggle.

TOGGLE1 

Discworld 2 toggle type 1.

TOGGLE2 

Discworld 2 toggle type 2.

◆ TINSEL_EVENT

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
Enumerator
NUM_OBJECTS 

the maximum number of objects

DMA_WNZ 

write non-zero data

DMA_CNZ 

TinselV1 write constant on non-zero data.

DMA_RLWA 

TenselV2+ run-length write all.

DMA_CONST 

write constant on both zero & non-zero data

DMA_WA 

write all data

DMA_FLIPH 

flip object horizontally

DMA_FLIPV 

flip object vertically

DMA_CLIP 

clip object

DMA_TRANS 

translucent rectangle object

DMA_ABS 

position of object is absolute

DMA_CHANGED 

object has changed in some way since the last frame

DMA_USERDEF 

user defined flags start here

DMA_3D 

3D objects for TinselV3

DMA_HARDFLAGS 

flags that effect an objects appearance

◆ anonymous enum

anonymous enum
Enumerator
MAX_COLORS 

maximum number of colors - for VGA 256

BITS_PER_PIXEL 

number of bits per pixel for VGA 256

MAX_INTENSITY 

the biggest value R, G or B can have

NUM_PALETTES 

number of palettes

BGND_DAC_INDEX 

index of background color in Video DAC

FGND_DAC_INDEX 

index of first foreground color in Video DAC

TBLUE1 

Blue used in translucent rectangles.

TBLUE2 

Blue used in translucent rectangles.

TBLUE3 

Blue used in translucent rectangles.

TBLUE4 

Blue used in translucent rectangles.

◆ anonymous enum

anonymous enum
Enumerator
PCODE_STACK_SIZE 

interpeters stack size

◆ 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

◆ REFTYPE

reference direction

◆ MASK_TYPE

different actor masks

◆ SCALE

different scales

◆ REEL

different reels

◆ anonymous enum

anonymous enum

text mode flags - defaults to left justify

Enumerator
TXT_CENTER 

center justify text

TXT_RIGHT 

right justify text

TXT_SHADOW 

shadow each character

TXT_ABSOLUTE 

position of text is absolute (only for object text)

Function Documentation

◆ ChangeLanguage()

void Tinsel::ChangeLanguage ( LANGUAGE  newLang)

Called to load a resource file for a different language

Parameters
newLangThe new language

◆ LoadStringRes()

int Tinsel::LoadStringRes ( int  id,
char *  pBuffer,
int  bufferMax 
)

Loads a string resource identified by id.

Parameters
ididentifier of string to be loaded
pBufferpoints to buffer that receives the string
bufferMaxmaximum number of chars to be copied to the buffer

◆ LoadSubString()

int Tinsel::LoadSubString ( int  id,
int  sub,
char *  pBuffer,
int  bufferMax 
)

Loads a string resource identified by id

Parameters
ididentifier of string to be loaded
subsub-string number
pBufferpoints to buffer that receives the string
bufferMaxmaximum number of chars to be copied to the buffer

◆ FreeTextBuffer()

void Tinsel::FreeTextBuffer ( )

Frees the text buffer allocated from ChangeLanguage()

◆ LanguageFacts()

void Tinsel::LanguageFacts ( int  language,
SCNHANDLE  hDescription,
SCNHANDLE  hFlagFilm 
)

Called from TINLIB.C from DeclareLanguage().

◆ TextLanguage()

LANGUAGE Tinsel::TextLanguage ( )

Gets the current subtitles language

◆ SampleLanguage()

LANGUAGE Tinsel::SampleLanguage ( )

Gets the current voice language

◆ ObjectTextOut()

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.

Parameters
pListobject list to add text to
szStrstring to output
colorcolor for monochrome text
xPosx position of string
yPosy position of string
hFontwhich font to use
modemode flags for the string
sleepTimeSleep time between each character (if non-zero)

Variable Documentation

◆ TINSEL1_EVENT_MAP

const TINSEL1_EVENT Tinsel::TINSEL1_EVENT_MAP[]
Initial value:
= {
T1_NOEVENT, T1_STARTUP, T1_NOEVENT, T1_POINTED, T1_UNPOINT, T1_ENTER, T1_LEAVE,
T1_NOEVENT, T1_PUTDOWN, T1_WALKTO, T1_LOOK, T1_ACTION, T1_CONVERSE, T1_NOEVENT,
T1_NOEVENT, T1_NOEVENT, T1_NOEVENT, T1_NOEVENT, T1_NOEVENT, T1_NOEVENT
}