Logo Search packages:      
Sourcecode: scummvm version File versions  Download package

Classes | Typedefs | Enumerations | Functions | Variables

Sci Namespace Reference

Classes

struct  AnimateEntry
struct  ArraySyncer
class  AudioPlayer
class  AudioVolumeResourceSource
struct  Breakpoint
struct  CallsStruct
struct  CelInfo
class  CircularVertexList
struct  Class
struct  CloneTable
struct  Color
class  Console
class  CursorStack
struct  DataStack
struct  DebugState
class  Decompressor
class  DecompressorDCL
class  DecompressorHuffman
class  DecompressorLZW
struct  DefaultSyncer
class  DirectoryResourceSource
class  DirSeeker
struct  DynMem
struct  EngineState
class  EventManager
struct  ExecStack
class  ExtAudioMapResourceSource
class  ExtMapResourceSource
class  FileHandle
struct  FloatPoint
struct  FrameoutEntry
class  GameFeatures
struct  GameIdStrToEnum
class  GfxAnimate
class  GfxCache
class  GfxCompare
class  GfxControls
class  GfxCoordAdjuster
class  GfxCoordAdjuster16
class  GfxCursor
class  GfxFont
class  GfxFontFromResource
class  GfxFontSjis
class  GfxFrameout
class  GfxMacIconBar
class  GfxMenu
class  GfxPaint
class  GfxPaint16
class  GfxPaint32
class  GfxPalette
class  GfxPicture
class  GfxPorts
class  GfxScreen
class  GfxText16
class  GfxTransitions
struct  GfxTransitionTranslateEntry
class  GfxView
struct  GuiMenuEntry
struct  GuiMenuItemEntry
struct  Hunk
struct  HunkTable
class  IntMapResourceSource
class  Kernel
struct  KernelFunction
struct  KernelSubFunction
struct  List
struct  ListTable
struct  LocalVariables
struct  LoopInfo
class  MacResourceForkResourceSource
class  MessageReader
class  MessageReaderV2
class  MessageReaderV3
class  MessageReaderV4
struct  MessageRecord
class  MessageState
struct  MessageTuple
class  MidiDriver_AdLib
class  MidiDriver_AmigaMac
class  MidiDriver_PCJr
class  MidiParser_SCI
class  MidiPlayer
class  MidiPlayer_AdLib
class  MidiPlayer_AmigaMac
class  MidiPlayer_Fb01
class  MidiPlayer_Midi
class  MidiPlayer_PCJr
class  MidiPlayer_PCSpeaker
struct  Mt32ToGmMap
class  MusicEntry
struct  Node
struct  NodeTable
class  Object
struct  ObjVarRef
struct  OldNewIdTableEntry
struct  Palette
struct  PalSchedule
struct  parse_tree_branch_t
struct  ParseRule
struct  ParseRuleList
struct  ParseTreeNode
class  PatchResourceSource
struct  PathfindingState
struct  PlaneEntry
struct  PlanePictureEntry
struct  Polygon
struct  Port
class  Portrait
struct  PortraitBitmap
struct  reg_t
struct  reg_t_Hash
class  Resource
struct  resource_index_t
class  ResourceId
struct  ResourceIdHash
class  ResourceManager
class  ResourceSource
struct  ResultWord
struct  SavegameDesc
struct  SavegameMetadata
struct  ScancodeRow
struct  SciCursorSetPositionWorkarounds
class  SciEngine
struct  SciEvent
struct  SciKernelMapEntry
struct  SciKernelMapSubEntry
class  SciMetaEngine
class  SciMusic
struct  SciScriptSignature
struct  SciTrackOriginReply
struct  SciWorkaroundEntry
struct  SciWorkaroundSolution
class  Script
class  SegManager
struct  SegmentObj
struct  SegmentRef
struct  SelectorCache
struct  SelectorRemap
class  SeqDecoder
struct  SignatureDebugType
struct  sort_temp_t
class  SoundCommandParser
class  SoundResource
struct  suffix_t
struct  synonym_t
struct  SystemString
struct  SystemStrings
struct  Table
struct  Vertex
class  VertexList
class  Vocabulary
class  VolumeResourceSource
class  WaveResourceSource
struct  Window
struct  WorklistManager

Typedefs

typedef Common::HashMap< reg_t,
bool, reg_t_Hash
AddrSet
typedef Common::Array
< AnimateEntry
AnimateArray
typedef Common::List
< AnimateEntry
AnimateList
typedef Object Clone
typedef Common::Array
< Common::Rect
CodeRefRectArray
typedef Common::HashMap< int,
GfxView * > 
CursorCache
typedef Common::Stack
< CursorStack
CursorStackStack
typedef Common::HashMap< int,
GfxFont * > 
FontCache
typedef Common::List
< FrameoutEntry * > 
FrameoutList
typedef Common::List
< GuiMenuItemEntry * > 
GuiMenuItemList
typedef Common::List
< GuiMenuEntry * > 
GuiMenuList
typedef int GuiResourceId
typedef reg_t KernelFunctionCall (EngineState *s, int argc, reg_t *argv)
typedef Common::Array< uint32 > MidiCommandQueue
typedef Common::Array
< MusicEntry * > 
MusicList
typedef Common::HashMap
< uint16, Object
ObjMap
typedef Common::List< PlaneEntryPlaneList
typedef Common::List
< PlanePictureEntry
PlanePictureList
typedef Common::List< Polygon * > PolygonList
typedef Common::HashMap
< ResourceId, Resource
*, ResourceIdHash
ResourceMap
typedef Common::List< ResultWordResultWordList
typedef int said_spec_t
typedef uint16 SegmentId
typedef int Selector
typedef Common::Array< uint16 > SignalQueue
typedef reg_tStackPtr
typedef Common::List< suffix_tSuffixList
typedef Common::List< synonym_tSynonymList
typedef int16 TextAlignment
typedef Common::HashMap< int,
GfxView * > 
ViewCache
typedef int wgroup_t
typedef Common::HashMap
< Common::String, ResultWord,
Common::CaseSensitiveString_Hash,
Common::CaseSensitiveString_EqualTo
WordMap

Enumerations

enum  {
  SIG_TYPE_NULL = 0x01, SIG_TYPE_INTEGER = 0x02, SIG_TYPE_UNINITIALIZED = 0x04, SIG_TYPE_OBJECT = 0x08,
  SIG_TYPE_REFERENCE = 0x10, SIG_TYPE_LIST = 0x20, SIG_TYPE_NODE = 0x40, SIG_TYPE_ERROR = 0x80,
  SIG_IS_INVALID = 0x100, SIG_IS_OPTIONAL = 0x200, SIG_NEEDS_MORE = 0x400, SIG_MORE_MAY_FOLLOW = 0x800
}
enum  { _K_FILE_MODE_OPEN_OR_CREATE = 0, _K_FILE_MODE_OPEN_OR_FAIL = 1, _K_FILE_MODE_CREATE = 2 }
enum  {
  K_DEVICE_INFO_GET_DEVICE = 0, K_DEVICE_INFO_GET_CURRENT_DEVICE = 1, K_DEVICE_INFO_PATHS_EQUAL = 2, K_DEVICE_INFO_IS_FLOPPY = 3,
  K_DEVICE_INFO_GET_CONFIG_PATH = 5, K_DEVICE_INFO_GET_SAVECAT_NAME = 7, K_DEVICE_INFO_GET_SAVEFILE_NAME = 8
}
enum  { KGETTIME_TICKS = 0, KGETTIME_TIME_12HOUR = 1, KGETTIME_TIME_24HOUR = 2, KGETTIME_DATE = 3 }
enum  {
  K_MEMORY_ALLOCATE_CRITICAL = 1, K_MEMORY_ALLOCATE_NONCRITICAL = 2, K_MEMORY_FREE = 3, K_MEMORY_MEMCPY = 4,
  K_MEMORY_PEEK = 5, K_MEMORY_POKE = 6
}
enum  { POLY_TOTAL_ACCESS = 0, POLY_NEAREST_ACCESS = 1, POLY_BARRED_ACCESS = 2, POLY_CONTAINED_ACCESS = 3 }
enum  { CONT_OUTSIDE = 0, CONT_ON_EDGE = 1, CONT_INSIDE = 2 }
enum  { PF_OK = 0, PF_ERROR = -1, PF_FATAL = -2 }
enum  { CURRENT_SAVEGAME_VERSION = 25, MINIMUM_SAVEGAME_VERSION = 14 }
enum  { DEFAULT_SCRIPTS = 32, DEFAULT_OBJECTS = 8, DEFAULT_OBJECTS_INCREMENT = 4 }
enum  { SYS_STRINGS_MAX = 4, SYS_STRING_SAVEDIR = 0, SYS_STRING_PARSER_BASE = 1, MAX_PARSER_BASE = 64 }
enum  { OBJECT_FLAG_FREED = (1 << 0) }
enum  { CLONE_USED = -1, CLONE_NONE = -1 }
enum  { MAX_SAVE_DIR_SIZE = MAXPATHLEN }
enum  { MAX_SAVEGAME_NR = 20 }
enum  { SAVEGAMEID_OFFICIALRANGE_START = 100, SAVEGAMEID_OFFICIALRANGE_END = 199 }
enum  { GAMEISRESTARTING_NONE = 0, GAMEISRESTARTING_RESTART = 1, GAMEISRESTARTING_RESTORE = 2 }
enum  { VAR_GLOBAL = 0, VAR_LOCAL = 1, VAR_TEMP = 2, VAR_PARAM = 3 }
enum  { GC_INTERVAL = 32768 }
enum  { SIGNAL_OFFSET = 0xffff }
enum  { NULL_SELECTOR = -1 }
enum  {
  SCI_CONTROLS_TYPE_BUTTON = 1, SCI_CONTROLS_TYPE_TEXT = 2, SCI_CONTROLS_TYPE_TEXTEDIT = 3, SCI_CONTROLS_TYPE_ICON = 4,
  SCI_CONTROLS_TYPE_LIST = 6, SCI_CONTROLS_TYPE_LIST_ALIAS = 7, SCI_CONTROLS_TYPE_DUMMY = 10
}
enum  {
  SCI_MENU_ATTRIBUTE_SAID = 0x6d, SCI_MENU_ATTRIBUTE_TEXT = 0x6e, SCI_MENU_ATTRIBUTE_KEYPRESS = 0x6f, SCI_MENU_ATTRIBUTE_ENABLED = 0x70,
  SCI_MENU_ATTRIBUTE_TAG = 0x71
}
enum  { SCI_MENU_REPLACE_ONCONTROL = 0x03, SCI_MENU_REPLACE_ONALT = 0x02, SCI_MENU_REPLACE_ONFUNCTION = 'F' }
enum  {
  PIC_OP_SET_COLOR = 0xf0, PIC_OP_DISABLE_VISUAL = 0xf1, PIC_OP_SET_PRIORITY = 0xf2, PIC_OP_DISABLE_PRIORITY = 0xf3,
  PIC_OP_SHORT_PATTERNS = 0xf4, PIC_OP_MEDIUM_LINES = 0xf5, PIC_OP_LONG_LINES = 0xf6, PIC_OP_SHORT_LINES = 0xf7,
  PIC_OP_FILL = 0xf8, PIC_OP_SET_PATTERN = 0xf9, PIC_OP_ABSOLUTE_PATTERN = 0xfa, PIC_OP_SET_CONTROL = 0xfb,
  PIC_OP_DISABLE_CONTROL = 0xfc, PIC_OP_MEDIUM_PATTERNS = 0xfd, PIC_OP_OPX = 0xfe, PIC_OP_TERMINATE = 0xff
}
enum  {
  PIC_OPX_EGA_SET_PALETTE_ENTRIES = 0, PIC_OPX_EGA_SET_PALETTE = 1, PIC_OPX_EGA_MONO0 = 2, PIC_OPX_EGA_MONO1 = 3,
  PIC_OPX_EGA_MONO2 = 4, PIC_OPX_EGA_MONO3 = 5, PIC_OPX_EGA_MONO4 = 6, PIC_OPX_EGA_EMBEDDED_VIEW = 7,
  PIC_OPX_EGA_SET_PRIORITY_TABLE = 8
}
enum  {
  PIC_OPX_VGA_SET_PALETTE_ENTRIES = 0, PIC_OPX_VGA_EMBEDDED_VIEW = 1, PIC_OPX_VGA_SET_PALETTE = 2, PIC_OPX_VGA_PRIORITY_TABLE_EQDIST = 3,
  PIC_OPX_VGA_PRIORITY_TABLE_EXPLICIT = 4
}
enum  { SCI_PICTURE_TYPE_REGULAR = 0, SCI_PICTURE_TYPE_SCI11 = 1, SCI_PICTURE_TYPE_SCI32 = 2 }
enum  {
  SCI_WINDOWMGR_STYLE_TRANSPARENT = (1 << 0), SCI_WINDOWMGR_STYLE_NOFRAME = (1 << 1), SCI_WINDOWMGR_STYLE_TITLE = (1 << 2), SCI_WINDOWMGR_STYLE_TOPMOST = (1 << 3),
  SCI_WINDOWMGR_STYLE_USER = (1 << 7)
}
enum  { SCI_SCREEN_UNDITHERMEMORIAL_SIZE = 256 }
enum  {
  SCI_TRANSITIONS_VERTICALROLL_FROMCENTER = 0, SCI_TRANSITIONS_HORIZONTALROLL_FROMCENTER = 1, SCI_TRANSITIONS_STRAIGHT_FROM_RIGHT = 2, SCI_TRANSITIONS_STRAIGHT_FROM_LEFT = 3,
  SCI_TRANSITIONS_STRAIGHT_FROM_BOTTOM = 4, SCI_TRANSITIONS_STRAIGHT_FROM_TOP = 5, SCI_TRANSITIONS_DIAGONALROLL_FROMCENTER = 6, SCI_TRANSITIONS_DIAGONALROLL_TOCENTER = 7,
  SCI_TRANSITIONS_BLOCKS = 8, SCI_TRANSITIONS_PIXELATION = 9, SCI_TRANSITIONS_FADEPALETTE = 10, SCI_TRANSITIONS_SCROLL_RIGHT = 11,
  SCI_TRANSITIONS_SCROLL_LEFT = 12, SCI_TRANSITIONS_SCROLL_UP = 13, SCI_TRANSITIONS_SCROLL_DOWN = 14, SCI_TRANSITIONS_NONE_LONGBOW = 15,
  SCI_TRANSITIONS_NONE = 100, SCI_TRANSITIONS_VERTICALROLL_TOCENTER = 300, SCI_TRANSITIONS_HORIZONTALROLL_TOCENTER = 301
}
enum  {
  VOCAB_RESOURCE_SELECTORS = 997, VOCAB_RESOURCE_SCI0_MAIN_VOCAB = 0, VOCAB_RESOURCE_SCI0_PARSE_TREE_BRANCHES = 900, VOCAB_RESOURCE_SCI0_SUFFIX_VOCAB = 901,
  VOCAB_RESOURCE_SCI1_MAIN_VOCAB = 900, VOCAB_RESOURCE_SCI1_PARSE_TREE_BRANCHES = 901, VOCAB_RESOURCE_SCI1_SUFFIX_VOCAB = 902
}
enum  {
  VOCAB_CLASS_PREPOSITION = 0x01, VOCAB_CLASS_ARTICLE = 0x02, VOCAB_CLASS_ADJECTIVE = 0x04, VOCAB_CLASS_PRONOUN = 0x08,
  VOCAB_CLASS_NOUN = 0x10, VOCAB_CLASS_INDICATIVE_VERB = 0x20, VOCAB_CLASS_ADVERB = 0x40, VOCAB_CLASS_IMPERATIVE_VERB = 0x80,
  VOCAB_CLASS_NUMBER = 0x001
}
enum  {
  kParseEndOfInput = 0, kParseOpeningParenthesis = 1, kParseClosingParenthesis = 2, kParseNil = 3,
  kParseNumber = 4
}
enum  { SCI0_RESMAP_ENTRIES_SIZE = 6, SCI1_RESMAP_ENTRIES_SIZE = 6, SCI11_RESMAP_ENTRIES_SIZE = 5 }
enum  { SCI_MAX_RESOURCE_SIZE = 0x0400000 }
enum  {
  SCI_ERROR_IO_ERROR = 1, SCI_ERROR_INVALID_RESMAP_ENTRY = 2, SCI_ERROR_RESMAP_NOT_FOUND = 3, SCI_ERROR_NO_RESOURCE_FILES_FOUND = 4,
  SCI_ERROR_UNKNOWN_COMPRESSION = 5, SCI_ERROR_DECOMPRESSION_ERROR = 6, SCI_ERROR_RESOURCE_TOO_BIG = 8
}
enum  { MAX_OPENED_VOLUMES = 5 }
enum  { MIDI_CHANNELS = 16, MIDI_PROP_MASTER_VOLUME = 0 }
enum  AbortGameState { kAbortNone = 0, kAbortLoadGame = 1, kAbortRestartGame = 2, kAbortQuitGame = 3 }
enum  AudioCommands {
  kSciAudioWPlay = 1, kSciAudioPlay = 2, kSciAudioStop = 3, kSciAudioPause = 4,
  kSciAudioResume = 5, kSciAudioPosition = 6, kSciAudioRate = 7, kSciAudioVolume = 8,
  kSciAudioLanguage = 9, kSciAudioCD = 10
}
enum  AudioSyncCommands { kSciAudioSyncStart = 0, kSciAudioSyncNext = 1, kSciAudioSyncStop = 2 }
enum  BreakpointType { BREAK_SELECTOREXEC = 1 << 0, BREAK_SELECTORREAD = 1 << 1, BREAK_SELECTORWRITE = 1 << 2, BREAK_EXPORT = 1 << 3 }
enum  controlStateFlags { SCI_CONTROLS_STYLE_ENABLED = 0x0001, SCI_CONTROLS_STYLE_DISABLED = 0x0004, SCI_CONTROLS_STYLE_SELECTED = 0x0008 }
enum  DebugSeeking {
  kDebugSeekNothing = 0, kDebugSeekCallk = 1, kDebugSeekLevelRet = 2, kDebugSeekSpecialCallk = 3,
  kDebugSeekGlobal = 4, kDebugSeekStepOver = 5
}
enum  ExecStackType { EXEC_STACK_TYPE_CALL = 0, EXEC_STACK_TYPE_KERNEL = 1, EXEC_STACK_TYPE_VARSELECTOR = 2 }
enum  GfxScreenMasks {
  GFX_SCREEN_MASK_VISUAL = 1, GFX_SCREEN_MASK_PRIORITY = 2, GFX_SCREEN_MASK_CONTROL = 4, GFX_SCREEN_MASK_DISPLAY = 8,
  GFX_SCREEN_MASK_ALL = GFX_SCREEN_MASK_VISUAL|GFX_SCREEN_MASK_PRIORITY|GFX_SCREEN_MASK_CONTROL
}
enum  GfxScreenUpscaledMode { GFX_SCREEN_UPSCALED_DISABLED = 0, GFX_SCREEN_UPSCALED_640x400 = 1, GFX_SCREEN_UPSCALED_640x440 = 2, GFX_SCREEN_UPSCALED_640x480 = 3 }
enum  infoSelectorFlags { kInfoFlagClone = 0x0001, kInfoFlagClass = 0x8000 }
enum  kDebugLevels {
  kDebugLevelError = 1 << 0, kDebugLevelNodes = 1 << 1, kDebugLevelGraphics = 1 << 2, kDebugLevelStrings = 1 << 3,
  kDebugLevelMemory = 1 << 4, kDebugLevelFuncCheck = 1 << 5, kDebugLevelBresen = 1 << 6, kDebugLevelSound = 1 << 7,
  kDebugLevelBaseSetter = 1 << 8, kDebugLevelParser = 1 << 9, kDebugLevelSaid = 1 << 10, kDebugLevelFile = 1 << 11,
  kDebugLevelTime = 1 << 12, kDebugLevelRoom = 1 << 13, kDebugLevelAvoidPath = 1 << 14, kDebugLevelDclInflate = 1 << 15,
  kDebugLevelVM = 1 << 16, kDebugLevelScripts = 1 << 17, kDebugLevelGC = 1 << 18, kDebugLevelResMan = 1 << 19,
  kDebugLevelOnStartup = 1 << 20
}
enum  kLanguage {
  K_LANG_NONE = 0, K_LANG_ENGLISH = 1, K_LANG_FRENCH = 33, K_LANG_SPANISH = 34,
  K_LANG_ITALIAN = 39, K_LANG_GERMAN = 49, K_LANG_JAPANESE = 81, K_LANG_PORTUGUESE = 351
}
enum  kMemoryInfoFunc {
  K_MEMORYINFO_LARGEST_HEAP_BLOCK = 0, K_MEMORYINFO_FREE_HEAP = 1, K_MEMORYINFO_LARGEST_HUNK_BLOCK = 2, K_MEMORYINFO_FREE_HUNK = 3,
  K_MEMORYINFO_TOTAL_HUNK = 4
}
enum  kMemorySegmentFunc { K_MEMORYSEGMENT_SAVE_DATA = 0, K_MEMORYSEGMENT_RESTORE_DATA = 1 }
enum  kMessageFunc {
  K_MESSAGE_GET, K_MESSAGE_NEXT, K_MESSAGE_SIZE, K_MESSAGE_REFCOND,
  K_MESSAGE_REFVERB, K_MESSAGE_REFNOUN, K_MESSAGE_PUSH, K_MESSAGE_POP,
  K_MESSAGE_LASTMESSAGE
}
enum  kPlatformOps {
  kPlatformUnk0 = 0, kPlatformCDSpeed = 1, kPlatformUnk2 = 2, kPlatformCDCheck = 3,
  kPlatformGetPlatform = 4, kPlatformUnk5 = 5, kPlatformIsHiRes = 6, kPlatformIsItWindows = 7
}
enum  kSciPlatforms { kSciPlatformDOS = 1, kSciPlatformWindows = 2 }
enum  MoveCountType { kMoveCountUninitialized, kIgnoreMoveCount, kIncrementMoveCount }
enum  ObjectOffsets {
  kOffsetLocalVariables = -6, kOffsetFunctionArea = -4, kOffsetSelectorCounter = -2, kOffsetSelectorSegment = 0,
  kOffsetInfoSelectorSci0 = 4, kOffsetNamePointerSci0 = 6, kOffsetInfoSelectorSci11 = 14, kOffsetNamePointerSci11 = 16
}
enum  opcode_format {
  Script_Invalid = -1, Script_None = 0, Script_Byte, Script_SByte,
  Script_Word, Script_SWord, Script_Variable, Script_SVariable,
  Script_SRelative, Script_Property, Script_Global, Script_Local,
  Script_Temp, Script_Param, Script_Offset, Script_End
}
enum  ParseTypes { kParseTreeWordNode = 4, kParseTreeLeafNode = 5, kParseTreeBranchNode = 6 }
enum  ResourceCompression {
  kCompUnknown = -1, kCompNone = 0, kCompLZW, kCompHuffman,
  kCompLZW1, kCompLZW1View, kCompLZW1Pic, kCompDCL
}
enum  ResourceStatus { kResStatusNoMalloc = 0, kResStatusAllocated, kResStatusEnqueued, kResStatusLocked }
enum  ResourceType {
  kResourceTypeView = 0, kResourceTypePic, kResourceTypeScript, kResourceTypeText,
  kResourceTypeSound, kResourceTypeMemory, kResourceTypeVocab, kResourceTypeFont,
  kResourceTypeCursor, kResourceTypePatch, kResourceTypeBitmap, kResourceTypePalette,
  kResourceTypeCdAudio, kResourceTypeAudio, kResourceTypeSync, kResourceTypeMessage,
  kResourceTypeMap, kResourceTypeHeap, kResourceTypeAudio36, kResourceTypeSync36,
  kResourceTypeTranslation, kResourceTypeRobot, kResourceTypeVMD, kResourceTypeChunk,
  kResourceTypeMacIconBarPictN, kResourceTypeMacIconBarPictS, kResourceTypeMacPict, kResourceTypeInvalid
}
enum  ResSourceType {
  kSourceDirectory = 0, kSourcePatch, kSourceVolume, kSourceExtMap,
  kSourceIntMap, kSourceAudioVolume, kSourceExtAudioMap, kSourceWave,
  kSourceMacResourceFork, kSourceChunk
}
enum  ResVersion {
  kResVersionUnknown, kResVersionSci0Sci1Early, kResVersionSci1Middle, kResVersionSci1Late,
  kResVersionSci11, kResVersionSci11Mac, kResVersionSci32
}
enum  SaidToken {
  TOKEN_COMMA = 0xF000, TOKEN_AMP = 0xF100, TOKEN_SLASH = 0xF200, TOKEN_PARENO = 0xF300,
  TOKEN_PARENC = 0xF400, TOKEN_BRACKETO = 0xF500, TOKEN_BRACKETC = 0xF600, TOKEN_HASH = 0xF700,
  TOKEN_LT = 0xF800, TOKEN_GT = 0xF900, TOKEN_TERM = 0xFF00
}
enum  SaidWord { WORD_NONE = 0x0ffe, WORD_ANY = 0x0fff }
enum  ScanSaidType { SCAN_SAID_AND = 0, SCAN_SAID_OR = 1 }
enum  sci_opcodes {
  op_bnot = 0x00, op_add = 0x01, op_sub = 0x02, op_mul = 0x03,
  op_div = 0x04, op_mod = 0x05, op_shr = 0x06, op_shl = 0x07,
  op_xor = 0x08, op_and = 0x09, op_or = 0x0a, op_neg = 0x0b,
  op_not = 0x0c, op_eq_ = 0x0d, op_ne_ = 0x0e, op_gt_ = 0x0f,
  op_ge_ = 0x10, op_lt_ = 0x11, op_le_ = 0x12, op_ugt_ = 0x13,
  op_uge_ = 0x14, op_ult_ = 0x15, op_ule_ = 0x16, op_bt = 0x17,
  op_bnt = 0x18, op_jmp = 0x19, op_ldi = 0x1a, op_push = 0x1b,
  op_pushi = 0x1c, op_toss = 0x1d, op_dup = 0x1e, op_link = 0x1f,
  op_call = 0x20, op_callk = 0x21, op_callb = 0x22, op_calle = 0x23,
  op_ret = 0x24, op_send = 0x25, op_class = 0x28, op_self = 0x2a,
  op_super = 0x2b, op_rest = 0x2c, op_lea = 0x2d, op_selfID = 0x2e,
  op_pprev = 0x30, op_pToa = 0x31, op_aTop = 0x32, op_pTos = 0x33,
  op_sTop = 0x34, op_ipToa = 0x35, op_dpToa = 0x36, op_ipTos = 0x37,
  op_dpTos = 0x38, op_lofsa = 0x39, op_lofss = 0x3a, op_push0 = 0x3b,
  op_push1 = 0x3c, op_push2 = 0x3d, op_pushSelf = 0x3e, op_line = 0x3f,
  op_lag = 0x40, op_lal = 0x41, op_lat = 0x42, op_lap = 0x43,
  op_lsg = 0x44, op_lsl = 0x45, op_lst = 0x46, op_lsp = 0x47,
  op_lagi = 0x48, op_lali = 0x49, op_lati = 0x4a, op_lapi = 0x4b,
  op_lsgi = 0x4c, op_lsli = 0x4d, op_lsti = 0x4e, op_lspi = 0x4f,
  op_sag = 0x50, op_sal = 0x51, op_sat = 0x52, op_sap = 0x53,
  op_ssg = 0x54, op_ssl = 0x55, op_sst = 0x56, op_ssp = 0x57,
  op_sagi = 0x58, op_sali = 0x59, op_sati = 0x5a, op_sapi = 0x5b,
  op_ssgi = 0x5c, op_ssli = 0x5d, op_ssti = 0x5e, op_sspi = 0x5f,
  op_plusag = 0x60, op_plusal = 0x61, op_plusat = 0x62, op_plusap = 0x63,
  op_plussg = 0x64, op_plussl = 0x65, op_plusst = 0x66, op_plussp = 0x67,
  op_plusagi = 0x68, op_plusali = 0x69, op_plusati = 0x6a, op_plusapi = 0x6b,
  op_plussgi = 0x6c, op_plussli = 0x6d, op_plussti = 0x6e, op_plusspi = 0x6f,
  op_minusag = 0x70, op_minusal = 0x71, op_minusat = 0x72, op_minusap = 0x73,
  op_minussg = 0x74, op_minussl = 0x75, op_minusst = 0x76, op_minussp = 0x77,
  op_minusagi = 0x78, op_minusali = 0x79, op_minusati = 0x7a, op_minusapi = 0x7b,
  op_minussgi = 0x7c, op_minussli = 0x7d, op_minussti = 0x7e, op_minusspi = 0x7f
}
enum  SciGameId {
  GID_ASTROCHICKEN, GID_CAMELOT, GID_CASTLEBRAIN, GID_CHRISTMAS1988,
  GID_CHRISTMAS1990, GID_CHRISTMAS1992, GID_CNICK_KQ, GID_CNICK_LAURABOW,
  GID_CNICK_LONGBOW, GID_CNICK_LSL, GID_CNICK_SQ, GID_ECOQUEST,
  GID_ECOQUEST2, GID_FAIRYTALES, GID_FREDDYPHARKAS, GID_FUNSEEKER,
  GID_GK1, GID_GK2, GID_HOYLE1, GID_HOYLE2,
  GID_HOYLE3, GID_HOYLE4, GID_ICEMAN, GID_ISLANDBRAIN,
  GID_JONES, GID_KQ1, GID_KQ4, GID_KQ5,
  GID_KQ6, GID_KQ7, GID_LAURABOW, GID_LAURABOW2,
  GID_LIGHTHOUSE, GID_LONGBOW, GID_LSL1, GID_LSL2,
  GID_LSL3, GID_LSL5, GID_LSL6, GID_LSL6HIRES,
  GID_LSL7, GID_MOTHERGOOSE, GID_MOTHERGOOSE256, GID_MOTHERGOOSEHIRES,
  GID_MSASTROCHICKEN, GID_PEPPER, GID_PHANTASMAGORIA, GID_PHANTASMAGORIA2,
  GID_PQ1, GID_PQ2, GID_PQ3, GID_PQ4,
  GID_PQSWAT, GID_QFG1, GID_QFG1VGA, GID_QFG2,
  GID_QFG3, GID_QFG4, GID_RAMA, GID_SHIVERS,
  GID_SHIVERS2, GID_SLATER, GID_SQ1, GID_SQ3,
  GID_SQ4, GID_SQ5, GID_SQ6, GID_TORIN,
  GID_FANMADE
}
enum  SciMidiCommands {
  kSetSignalLoop = 0x7F, kEndOfTrack = 0xFC, kSetReverb = 0x50, kMidiHold = 0x52,
  kUpdateCue = 0x60, kResetOnPause = 0x4C
}
enum  SciVersion {
  SCI_VERSION_NONE, SCI_VERSION_0_EARLY, SCI_VERSION_0_LATE, SCI_VERSION_01,
  SCI_VERSION_1_EGA, SCI_VERSION_1_EARLY, SCI_VERSION_1_MIDDLE, SCI_VERSION_1_LATE,
  SCI_VERSION_1_1, SCI_VERSION_2, SCI_VERSION_2_1, SCI_VERSION_3
}
enum  SciWorkaroundType { WORKAROUND_NONE, WORKAROUND_IGNORE, WORKAROUND_STILLCALL, WORKAROUND_FAKE }
enum  ScriptLoadType { SCRIPT_GET_DONT_LOAD = 0, SCRIPT_GET_LOAD = 1, SCRIPT_GET_LOCK = 3 }
enum  ScriptObjectTypes {
  SCI_OBJ_TERMINATOR, SCI_OBJ_OBJECT, SCI_OBJ_CODE, SCI_OBJ_SYNONYMS,
  SCI_OBJ_SAID, SCI_OBJ_STRINGS, SCI_OBJ_CLASS, SCI_OBJ_EXPORTS,
  SCI_OBJ_POINTERS, SCI_OBJ_PRELOAD_TEXT, SCI_OBJ_LOCALVARS
}
enum  SegmentType {
  SEG_TYPE_INVALID = 0, SEG_TYPE_SCRIPT = 1, SEG_TYPE_CLONES = 2, SEG_TYPE_LOCALS = 3,
  SEG_TYPE_STACK = 4, SEG_TYPE_SYS_STRINGS = 5, SEG_TYPE_LISTS = 6, SEG_TYPE_NODES = 7,
  SEG_TYPE_HUNK = 8, SEG_TYPE_DYNMEM = 9, SEG_TYPE_MAX
}
enum  SelectorType { kSelectorNone = 0, kSelectorVariable, kSelectorMethod }
enum  seqFrameTypes { kSeqFrameFull = 0, kSeqFrameDiff = 1 }
enum  seqPalTypes { kSeqPalVariable = 0, kSeqPalConstant = 1 }
enum  SolFlags { kSolFlagCompressed = 1 << 0, kSolFlagUnknown = 1 << 1, kSolFlag16Bit = 1 << 2, kSolFlagIsSigned = 1 << 3 }
enum  SoundStatus { kSoundStopped = 0, kSoundInitialized = 1, kSoundPaused = 2, kSoundPlaying = 3 }
enum  ViewScaleSignals { kScaleSignalDoScaling = 0x0001, kScaleSignalGlobalScaling = 0x0002, kScaleSignalHoyle4SpecialHandling = 0x0004 }
enum  ViewSignals {
  kSignalStopUpdate = 0x0001, kSignalViewUpdated = 0x0002, kSignalNoUpdate = 0x0004, kSignalHidden = 0x0008,
  kSignalFixedPriority = 0x0010, kSignalAlwaysUpdate = 0x0020, kSignalForceUpdate = 0x0040, kSignalRemoveView = 0x0080,
  kSignalFrozen = 0x0100, kSignalExtraActor = 0x0200, kSignalHitObstacle = 0x0400, kSignalDoesntTurn = 0x0800,
  kSignalNoCycler = 0x1000, kSignalIgnoreHorizon = 0x2000, kSignalIgnoreActor = 0x4000, kSignalDisposeMe = 0x8000
}
enum  ViewType {
  kViewUnknown, kViewEga, kViewVga, kViewVga11,
  kViewAmiga
}
enum  VocabularyVersions { kVocabularySCI0 = 0, kVocabularySCI1 = 1 }

Functions

static void _exec_varselectors (EngineState *s)
void _k_GenericDrawControl (EngineState *s, reg_t controlObject, bool hilite)
void _k_view_list_mark_free (EngineState *s, reg_t off)
static int _parse_ticks (byte *data, int *offset_p, int size)
static bool _savegame_sort_byDate (const SavegameDesc &l, const SavegameDesc &r)
static int _vbpt_append (ParseTreeNode *nodes, int *pos, int base, int value)
static int _vbpt_parenc (ParseTreeNode *nodes, int *pos, int paren)
static int _vbpt_pareno (ParseTreeNode *nodes, int *pos, int base)
static int _vbpt_terminate (ParseTreeNode *nodes, int *pos, int base, int value)
static int _vbpt_write_subexpression (ParseTreeNode *nodes, int *pos, ParseRule *rule, uint rulepos, int writepos)
static ParseRule_vbuild_rule (const parse_tree_branch_t *branch)
static ParseRule_vdup (ParseRule *a)
static ParseRule_vinsert (ParseRule *turkey, ParseRule *stuffing)
static ParseRuleList_vocab_add_rule (ParseRuleList *list, ParseRule *rule)
static ParseRuleList_vocab_clone_rule_list_by_id (ParseRuleList *list, int id)
static void _vocab_free_empty_rule_list (ParseRuleList *list)
static ParseRuleList_vocab_merge_rule_lists (ParseRuleList *l1, ParseRuleList *l2)
void _vocab_recursive_ptree_dump (ParseTreeNode *tree, int blanks)
void _vocab_recursive_ptree_dump_treelike (ParseTreeNode *tree)
static int _vocab_rule_list_length (ParseRuleList *list)
static ParseRuleList_vocab_split_rule_list (ParseRuleList *list)
static ParseRule_vsatisfy_rule (ParseRule *rule, const ResultWord &input)
static ExecStackadd_exec_stack_entry (Common::List< ExecStack > &execStack, reg_t pc, StackPtr sp, reg_t objp, int argc, StackPtr argp, Selector selector, int exportId, int localCallOffset, reg_t sendp, int origin, SegmentId local_segment)
static ExecStackadd_exec_stack_varselector (Common::List< ExecStack > &execStack, reg_t objp, int argc, StackPtr argp, Selector selector, const ObjVarRef &address, int origin)
static void addKernelCallToExecStack (EngineState *s, int kernelCallNr, int argc, reg_t *argv)
static void addToEnd (EngineState *s, reg_t listRef, reg_t nodeRef)
static void addToFront (EngineState *s, reg_t listRef, reg_t nodeRef)
static reg_t allocateOutputArray (SegManager *segMan, int size)
static int altify (int ch)
static int area (const Common::Point &a, const Common::Point &b, const Common::Point &c)
static reg_t arithmetic_lookForWorkaround (const byte opcode, const SciWorkaroundEntry *workaroundList, reg_t value1, reg_t value2)
static void AStar (PathfindingState *s)
static int augment_parse_nodes (ParseTreeNode *parseT, ParseTreeNode *saidT)
static bool between (const Common::Point &a, const Common::Point &b, const Common::Point &c)
static bool buildSaidTree ()
static void callKernelFunc (EngineState *s, int kernelCallNr, int argc)
static void change_polygons_opt_0 (PathfindingState *s)
static kLanguage charToLanguage (const char c)
Common::Language charToScummVMLanguage (const char c)
static void checkListPointer (SegManager *segMan, reg_t addr)
static bool collinear (const Common::Point &a, const Common::Point &b, const Common::Point &c)
static int contained (const Common::Point &p, Polygon *polygon)
static Polygonconvert_polygon (EngineState *s, reg_t polygon)
static PathfindingStateconvert_polygon_set (EngineState *s, reg_t poly_list, Common::Point start, Common::Point end, int width, int height, int opt)
Common::String convertSierraGameId (Common::String sierraId, uint32 *gameFlags, ResourceManager *resMan)
static void deDPCM16 (byte *soundBuf, Common::SeekableReadStream &audioStream, uint32 n)
static void deDPCM8 (byte *soundBuf, Common::SeekableReadStream &audioStream, uint32 n)
static void deDPCM8Nibble (byte *soundBuf, int32 &s, byte b)
static void * derefPtr (SegManager *segMan, reg_t pointer, int entries, bool wantRaw)
reg_t disassemble (EngineState *s, reg_t pos, int print_bw_tag, int print_bytecode)
static void draw_input (EngineState *s, reg_t poly_list, Common::Point start, Common::Point end, int opt, int width, int height)
static void draw_line (EngineState *s, Common::Point p1, Common::Point p2, int type, int width, int height)
static void draw_point (EngineState *s, Common::Point p, int start, int width, int height)
static void draw_polygon (EngineState *s, reg_t polygon, int width, int height)
ExecStackexecute_method (EngineState *s, uint16 script, uint16 pubfunct, StackPtr sp, reg_t calling_obj, uint16 argc, StackPtr argp)
static int fgets_wrapper (EngineState *s, char *dest, int maxsize, int handle)
reg_t file_open (EngineState *s, const char *filename, int mode, bool unwrapFilename)
static int find_free_point (FloatPoint f, Polygon *polygon, Common::Point *ret)
AddrSetfindAllActiveReferences (EngineState *s)
static int findSavegame (Common::Array< SavegameDesc > &saves, int16 saveId)
static byte * findSci0ExportsBlock (byte *buffer)
static void fix_vertex_order (Polygon *polygon)
static Common::Pointfixup_end_point (PathfindingState *s, const Common::Point &end)
static Common::Pointfixup_start_point (PathfindingState *s, const Common::Point &start)
void gamestate_restore (EngineState *s, Common::SeekableReadStream *fh)
bool gamestate_save (EngineState *s, Common::WriteStream *fh, const char *savename, const char *version)
static void gcCountDown (EngineState *s)
static int get_freq (int note)
bool get_savegame_metadata (Common::SeekableReadStream *stream, SavegameMetadata *meta)
static char getChar (const SegmentRef &ref, uint offset)
static FileHandlegetFileFromHandle (EngineState *s, uint handle)
static Common::Point getGraphPoint (reg_t *argv)
static Common::Rect getGraphRect (reg_t *argv)
const char * getResourceTypeName (ResourceType restype)
SciVersion getSciVersion ()
const char * getSciVersionDesc (SciVersion version)
static int inside (const Common::Point &p, Vertex *vertex)
static bool intersect_proper (const Common::Point &a, const Common::Point &b, const Common::Point &c, const Common::Point &d)
static int intersection (const Common::Point &a, const Common::Point &b, Vertex *vertex, FloatPoint *ret)
void invokeSelector (EngineState *s, reg_t object, int selectorId, int k_argc, StackPtr k_argp, int argc, const reg_t *argv)
static bool isSaneNodePointer (SegManager *segMan, reg_t addr)
reg_t kAbs (EngineState *s, int argc, reg_t *argv)
reg_t kAddAfter (EngineState *s, int argc, reg_t *argv)
reg_t kAddMenu (EngineState *s, int argc, reg_t *argv)
reg_t kAddToEnd (EngineState *s, int argc, reg_t *argv)
reg_t kAddToFront (EngineState *s, int argc, reg_t *argv)
reg_t kAddToPic (EngineState *s, int argc, reg_t *argv)
reg_t kAnimate (EngineState *s, int argc, reg_t *argv)
reg_t kAssertPalette (EngineState *s, int argc, reg_t *argv)
reg_t kAvoidPath (EngineState *s, int argc, reg_t *argv)
reg_t kBaseSetter (EngineState *s, int argc, reg_t *argv)
reg_t kCanBeHere (EngineState *s, int argc, reg_t *argv)
reg_t kCantBeHere (EngineState *s, int argc, reg_t *argv)
reg_t kCelHigh (EngineState *s, int argc, reg_t *argv)
reg_t kCelWide (EngineState *s, int argc, reg_t *argv)
reg_t kCheckFreeSpace (EngineState *s, int argc, reg_t *argv)
reg_t kCheckSaveGame (EngineState *s, int argc, reg_t *argv)
reg_t kClone (EngineState *s, int argc, reg_t *argv)
Common::Rect kControlCreateRect (int16 x, int16 y, int16 x1, int16 y1)
reg_t kCoordPri (EngineState *s, int argc, reg_t *argv)
reg_t kCosDiv (EngineState *s, int argc, reg_t *argv)
reg_t kCosMult (EngineState *s, int argc, reg_t *argv)
reg_t kDeleteKey (EngineState *s, int argc, reg_t *argv)
reg_t kDeviceInfo (EngineState *s, int argc, reg_t *argv)
reg_t kDirLoop (EngineState *s, int argc, reg_t *argv)
void kDirLoopWorker (reg_t object, uint16 angle, EngineState *s, int argc, reg_t *argv)
reg_t kDisplay (EngineState *s, int argc, reg_t *argv)
reg_t kDisposeClone (EngineState *s, int argc, reg_t *argv)
reg_t kDisposeList (EngineState *s, int argc, reg_t *argv)
reg_t kDisposeScript (EngineState *s, int argc, reg_t *argv)
reg_t kDisposeWindow (EngineState *s, int argc, reg_t *argv)
reg_t kDoAudio (EngineState *s, int argc, reg_t *argv)
reg_t kDoAvoider (EngineState *s, int argc, reg_t *argv)
reg_t kDoBresen (EngineState *s, int argc, reg_t *argv)
reg_t kDoCdAudio (EngineState *s, int argc, reg_t *argv)
reg_t kDoSound (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundDispose (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundDummy (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundFade (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundGetAudioCapability (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundGetPolyphony (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundInit (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundMasterVolume (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundMute (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundPause (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundPlay (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundRestore (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundResumeAfterRestore (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundReverb (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundSendMidi (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundSetHold (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundSetLoop (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundSetPriority (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundSetVolume (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundStop (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundStopAll (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundSuspend (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundUpdate (EngineState *s, int argc, reg_t *argv)
reg_t kDoSoundUpdateCues (EngineState *s, int argc, reg_t *argv)
reg_t kDoSync (EngineState *s, int argc, reg_t *argv)
reg_t kDrawCel (EngineState *s, int argc, reg_t *argv)
reg_t kDrawControl (EngineState *s, int argc, reg_t *argv)
reg_t kDrawMenuBar (EngineState *s, int argc, reg_t *argv)
reg_t kDrawPic (EngineState *s, int argc, reg_t *argv)
reg_t kDrawStatus (EngineState *s, int argc, reg_t *argv)
reg_t kDummy (EngineState *s, int argc, reg_t *argv)
reg_t kEditControl (EngineState *s, int argc, reg_t *argv)
reg_t kEmpty (EngineState *s, int argc, reg_t *argv)
reg_t kEmptyList (EngineState *s, int argc, reg_t *argv)
static void kernelSignatureDebugType (const uint16 type)
reg_t kFClose (EngineState *s, int argc, reg_t *argv)
reg_t kFGets (EngineState *s, int argc, reg_t *argv)
reg_t kFileIO (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOClose (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOExists (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOFindFirst (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOFindNext (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOOpen (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOReadRaw (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOReadString (EngineState *s, int argc, reg_t *argv)
reg_t kFileIORename (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOSeek (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOUnlink (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOWriteRaw (EngineState *s, int argc, reg_t *argv)
reg_t kFileIOWriteString (EngineState *s, int argc, reg_t *argv)
reg_t kFindKey (EngineState *s, int argc, reg_t *argv)
reg_t kFirstNode (EngineState *s, int argc, reg_t *argv)
reg_t kFlushResources (EngineState *s, int argc, reg_t *argv)
reg_t kFOpen (EngineState *s, int argc, reg_t *argv)
reg_t kFormat (EngineState *s, int argc, reg_t *argv)
reg_t kFPuts (EngineState *s, int argc, reg_t *argv)
reg_t kGameIsRestarting (EngineState *s, int argc, reg_t *argv)
reg_t kGetAngle (EngineState *s, int argc, reg_t *argv)
uint16 kGetAngleWorker (int16 x1, int16 y1, int16 x2, int16 y2)
reg_t kGetCWD (EngineState *s, int argc, reg_t *argv)
reg_t kGetDistance (EngineState *s, int argc, reg_t *argv)
reg_t kGetEvent (EngineState *s, int argc, reg_t *argv)
reg_t kGetFarText (EngineState *s, int argc, reg_t *argv)
reg_t kGetMenu (EngineState *s, int argc, reg_t *argv)
reg_t kGetMessage (EngineState *s, int argc, reg_t *argv)
reg_t kGetPort (EngineState *s, int argc, reg_t *argv)
reg_t kGetSaveDir (EngineState *s, int argc, reg_t *argv)
reg_t kGetSaveFiles (EngineState *s, int argc, reg_t *argv)
reg_t kGetTime (EngineState *s, int argc, reg_t *argv)
reg_t kGlobalToLocal (EngineState *s, int argc, reg_t *argv)
reg_t kGraph (EngineState *s, int argc, reg_t *argv)
reg_t kGraphAdjustPriority (EngineState *s, int argc, reg_t *argv)
reg_t kGraphDrawLine (EngineState *s, int argc, reg_t *argv)
reg_t kGraphFillBoxAny (EngineState *s, int argc, reg_t *argv)
reg_t kGraphFillBoxBackground (EngineState *s, int argc, reg_t *argv)
reg_t kGraphFillBoxForeground (EngineState *s, int argc, reg_t *argv)
reg_t kGraphGetColorCount (EngineState *s, int argc, reg_t *argv)
reg_t kGraphRedrawBox (EngineState *s, int argc, reg_t *argv)
reg_t kGraphRestoreBox (EngineState *s, int argc, reg_t *argv)
reg_t kGraphSaveBox (EngineState *s, int argc, reg_t *argv)
reg_t kGraphSaveUpscaledHiresBox (EngineState *s, int argc, reg_t *argv)
reg_t kGraphUpdateBox (EngineState *s, int argc, reg_t *argv)
reg_t kHaveMouse (EngineState *s, int argc, reg_t *argv)
reg_t kHiliteControl (EngineState *s, int argc, reg_t *argv)
reg_t kIconBar (EngineState *s, int argc, reg_t *argv)
reg_t kInitBresen (EngineState *s, int argc, reg_t *argv)
reg_t kIntersections (EngineState *s, int argc, reg_t *argv)
reg_t kIsItSkip (EngineState *s, int argc, reg_t *argv)
reg_t kIsObject (EngineState *s, int argc, reg_t *argv)
reg_t kJoystick (EngineState *s, int argc, reg_t *argv)
reg_t kLastNode (EngineState *s, int argc, reg_t *argv)
reg_t kLoad (EngineState *s, int argc, reg_t *argv)
reg_t kLocalToGlobal (EngineState *s, int argc, reg_t *argv)
reg_t kLock (EngineState *s, int argc, reg_t *argv)
reg_t kMapKeyToDir (EngineState *s, int argc, reg_t *argv)
reg_t kMemory (EngineState *s, int argc, reg_t *argv)
reg_t kMemoryInfo (EngineState *s, int argc, reg_t *argv)
reg_t kMemorySegment (EngineState *s, int argc, reg_t *argv)
reg_t kMenuSelect (EngineState *s, int argc, reg_t *argv)
reg_t kMergePoly (EngineState *s, int argc, reg_t *argv)
reg_t kMessage (EngineState *s, int argc, reg_t *argv)
reg_t kMoveCursor (EngineState *s, int argc, reg_t *argv)
reg_t kNewList (EngineState *s, int argc, reg_t *argv)
reg_t kNewNode (EngineState *s, int argc, reg_t *argv)
reg_t kNewWindow (EngineState *s, int argc, reg_t *argv)
reg_t kNextNode (EngineState *s, int argc, reg_t *argv)
reg_t kNodeValue (EngineState *s, int argc, reg_t *argv)
reg_t kNumCels (EngineState *s, int argc, reg_t *argv)
reg_t kNumLoops (EngineState *s, int argc, reg_t *argv)
reg_t kOnControl (EngineState *s, int argc, reg_t *argv)
reg_t kPalette (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteAnimate (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteFindColor (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteRestore (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteSave (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteSetFlag (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteSetFromResource (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteSetIntensity (EngineState *s, int argc, reg_t *argv)
reg_t kPaletteUnsetFlag (EngineState *s, int argc, reg_t *argv)
reg_t kPalVary (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryChangeTarget (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryChangeTicks (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryDeinit (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryGetCurrentStep (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryInit (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryPauseResume (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryReverse (EngineState *s, int argc, reg_t *argv)
reg_t kPalVaryUnknown (EngineState *s, int argc, reg_t *argv)
reg_t kParse (EngineState *s, int argc, reg_t *argv)
reg_t kPicNotValid (EngineState *s, int argc, reg_t *argv)
reg_t kPlatform (EngineState *s, int argc, reg_t *argv)
reg_t kPortrait (EngineState *s, int argc, reg_t *argv)
reg_t kPrevNode (EngineState *s, int argc, reg_t *argv)
reg_t kPriCoord (EngineState *s, int argc, reg_t *argv)
reg_t kRandom (EngineState *s, int argc, reg_t *argv)
reg_t kReadNumber (EngineState *s, int argc, reg_t *argv)
reg_t kRemapColors (EngineState *s, int argc, reg_t *argv)
reg_t kResCheck (EngineState *s, int argc, reg_t *argv)
reg_t kRespondsTo (EngineState *s, int argc, reg_t *argv)
reg_t kRestartGame (EngineState *s, int argc, reg_t *argv)
reg_t kRestoreGame (EngineState *s, int argc, reg_t *argv)
reg_t kSaid (EngineState *s, int argc, reg_t *argv)
reg_t kSaveGame (EngineState *s, int argc, reg_t *argv)
reg_t kScriptID (EngineState *s, int argc, reg_t *argv)
reg_t kSetCursor (EngineState *s, int argc, reg_t *argv)
static reg_t kSetCursorSci0 (EngineState *s, int argc, reg_t *argv)
static reg_t kSetCursorSci11 (EngineState *s, int argc, reg_t *argv)
reg_t kSetDebug (EngineState *s, int argc, reg_t *argv)
reg_t kSetJump (EngineState *s, int argc, reg_t *argv)
reg_t kSetMenu (EngineState *s, int argc, reg_t *argv)
reg_t kSetNowSeen (EngineState *s, int argc, reg_t *argv)
reg_t kSetPort (EngineState *s, int argc, reg_t *argv)
reg_t kSetQuitStr (EngineState *s, int argc, reg_t *argv)
reg_t kSetSynonyms (EngineState *s, int argc, reg_t *argv)
reg_t kSetVideoMode (EngineState *s, int argc, reg_t *argv)
reg_t kShakeScreen (EngineState *s, int argc, reg_t *argv)
reg_t kShow (EngineState *s, int argc, reg_t *argv)
reg_t kShowMovie (EngineState *s, int argc, reg_t *argv)
reg_t kSinDiv (EngineState *s, int argc, reg_t *argv)
reg_t kSinMult (EngineState *s, int argc, reg_t *argv)
reg_t kSort (EngineState *s, int argc, reg_t *argv)
reg_t kSqrt (EngineState *s, int argc, reg_t *argv)
reg_t kStrAt (EngineState *s, int argc, reg_t *argv)
reg_t kStrCat (EngineState *s, int argc, reg_t *argv)
reg_t kStrCmp (EngineState *s, int argc, reg_t *argv)
reg_t kStrCpy (EngineState *s, int argc, reg_t *argv)
reg_t kStrEnd (EngineState *s, int argc, reg_t *argv)
reg_t kStrLen (EngineState *s, int argc, reg_t *argv)
reg_t kStrSplit (EngineState *s, int argc, reg_t *argv)
reg_t kStub (EngineState *s, int argc, reg_t *argv)
reg_t kStubNull (EngineState *s, int argc, reg_t *argv)
reg_t kTextColors (EngineState *s, int argc, reg_t *argv)
reg_t kTextFonts (EngineState *s, int argc, reg_t *argv)
reg_t kTextSize (EngineState *s, int argc, reg_t *argv)
reg_t kTimesCos (EngineState *s, int argc, reg_t *argv)
reg_t kTimesCot (EngineState *s, int argc, reg_t *argv)
reg_t kTimesSin (EngineState *s, int argc, reg_t *argv)
reg_t kTimesTan (EngineState *s, int argc, reg_t *argv)
reg_t kUnLoad (EngineState *s, int argc, reg_t *argv)
reg_t kValidPath (EngineState *s, int argc, reg_t *argv)
reg_t kWait (EngineState *s, int argc, reg_t *argv)
static bool left (const Common::Point &a, const Common::Point &b, const Common::Point &c)
static void listSavegames (Common::Array< SavegameDesc > &saves)
static void logKernelCall (const KernelFunction *kernelCall, const KernelSubFunction *kernelSubCall, EngineState *s, int argc, reg_t *argv, reg_t result)
SelectorType lookupSelector (SegManager *segMan, reg_t obj_location, Selector selectorId, ObjVarRef *varp, reg_t *fptr)
static reg_t make_reg (SegmentId segment, uint16 offset)
static int matchTrees (ParseTreeNode *parseT, ParseTreeNode *saidT)
static Vertexmerge_point (PathfindingState *s, const Common::Point &v)
static void midi_hexdump (byte *data, int size, int notational_offset)
MidiPlayerMidiPlayer_AdLib_create (SciVersion _soundVersion)
MidiPlayerMidiPlayer_AmigaMac_create (SciVersion version)
MidiPlayerMidiPlayer_Fb01_create (SciVersion version)
MidiPlayerMidiPlayer_Midi_create (SciVersion version)
MidiPlayerMidiPlayer_PCJr_create (SciVersion version)
MidiPlayerMidiPlayer_PCSpeaker_create (SciVersion version)
static bool musicEntryCompare (const MusicEntry *l, const MusicEntry *r)
static bool nearbyPolygon (const Common::Point &point, Polygon *polygon)
static int nearest_intersection (PathfindingState *s, const Common::Point &p, const Common::Point &q, Common::Point *ret)
static bool node_is_terminal (ParseTreeNode *node)
static int node_major (ParseTreeNode *node)
static int node_minor (ParseTreeNode *node)
static void node_print_desc (ParseTreeNode *)
static int node_terminal_value (ParseTreeNode *node)
static AddrSetnormalizeAddresses (SegManager *segMan, const AddrSet &nonnormal_map)
static reg_t output_path (PathfindingState *p, EngineState *s)
static int parse_reg_t (EngineState *s, const char *str, reg_t *dest, bool mayBeValue)
static bool parseComma (ParseTreeNode *parentNode)
static bool parseExpr (ParseTreeNode *parentNode)
static uint16 * parseKernelSignature (const char *kernelName, const char *writtenSig)
static bool parseList (ParseTreeNode *parentNode)
static bool parseListEntry (ParseTreeNode *parentNode)
static bool parsePart2 (ParseTreeNode *parentNode, bool &nonempty)
static bool parsePart3 (ParseTreeNode *parentNode, bool &nonempty)
static bool parseRef (ParseTreeNode *parentNode)
ResourceType parseResourceType (const char *resid)
static bool parseSlash (ParseTreeNode *parentNode)
static bool parseSpec (ParseTreeNode *parentNode)
static bool parseWord (ParseTreeNode *parentNode)
bool planeSortHelper (const PlaneEntry &entry1, const PlaneEntry &entry2)
void playVideo (Graphics::VideoDecoder *videoDecoder)
static reg_t pointer_add (EngineState *s, reg_t base, int offset)
static bool PointInRect (const Common::Point &point, int16 rectX1, int16 rectY1, int16 rectX2, int16 rectY2)
static int polygon_area (Polygon *polygon)
static void print_input (EngineState *s, reg_t poly_list, Common::Point start, Common::Point end, int opt)
void print_nothing (...)
static void print_polygon (SegManager *segMan, reg_t polygon)
uint16 READ_SCI11ENDIAN_UINT16 (const void *ptr)
uint32 READ_SCI11ENDIAN_UINT32 (const void *ptr)
int readPMachineInstruction (const byte *src, byte &extOpcode, int16 opparams[4])
static Common::Point readPoint (SegmentRef list_r, int offset)
reg_t readSelector (SegManager *segMan, reg_t object, Selector selectorId)
static byte * readSOLAudio (Common::SeekableReadStream *audioStream, uint32 &size, byte audioFlags, byte &flags)
static bool readSOLHeader (Common::SeekableReadStream *audioStream, int headerSize, uint32 &size, uint16 &audioRate, byte &audioFlags, uint32 resSize)
static bool relocateBlock (Common::Array< reg_t > &block, int block_location, SegmentId segment, int location, size_t scriptSize)
static Common::Array< uint32 > resTypeToMacTags (ResourceType type)
void run_gc (EngineState *s)
void run_vm (EngineState *s)
int said (EngineState *s, const byte *spec, bool verbose)
static bool said_attach_subtree (ParseTreeNode *pos, int major, int minor, ParseTreeNode *subtree)
static ParseTreeNodesaid_branch_attach_left (ParseTreeNode *pos, ParseTreeNode *left)
static ParseTreeNodesaid_branch_attach_right (ParseTreeNode *pos, ParseTreeNode *right)
static ParseTreeNodesaid_branch_node (ParseTreeNode *pos, ParseTreeNode *left, ParseTreeNode *right)
static ParseTreeNodesaid_leaf_node (ParseTreeNode *pos, int value)
static ParseTreeNodesaid_next_node ()
static int said_parse_spec (const byte *spec)
static ParseTreeNodesaid_word_node (ParseTreeNode *pos, int value)
static int scanParseChildren (ParseTreeNode *parseT, ParseTreeNode *saidT)
static int scanSaidChildren (ParseTreeNode *parseT, ParseTreeNode *saidT, ScanSaidType type)
void script_adjust_opcode_formats ()
void script_debug (EngineState *s)
ExecStacksend_selector (EngineState *s, reg_t send_obj, reg_t work_obj, StackPtr sp, int framesize, StackPtr argp)
static void setChar (const SegmentRef &ref, uint offset, char value)
void showScummVMDialog (const Common::String &message)
static int signed_validate_arithmetic (reg_t reg)
int sort_temp_cmp (const void *p1, const void *p2)
bool sortHelper (const AnimateEntry &entry1, const AnimateEntry &entry2)
bool sortHelper (const FrameoutEntry *entry1, const FrameoutEntry *entry2)
static void sync_SavegameMetadata (Common::Serializer &s, SavegameMetadata &obj)
static void sync_SystemString (Common::Serializer &s, SystemString &obj)
template<typename T >
void sync_Table (Common::Serializer &s, T &obj)
template<typename T >
void syncArray (Common::Serializer &s, Common::Array< T > &arr)
template<>
void syncWithSerializer (Common::Serializer &s, Table< List >::Entry &obj)
template<>
void syncWithSerializer (Common::Serializer &s, Table< Clone >::Entry &obj)
template<>
void syncWithSerializer (Common::Serializer &s, Table< Node >::Entry &obj)
template<>
void syncWithSerializer (Common::Serializer &s, reg_t &obj)
template<typename T >
void syncWithSerializer (Common::Serializer &s, T &obj)
template<>
void syncWithSerializer (Common::Serializer &s, Class &obj)
SciWorkaroundSolution trackOriginAndFindWorkaround (int index, const SciWorkaroundEntry *workaroundList, SciTrackOriginReply *trackOrigin)
static int validate_arithmetic (reg_t reg)
static reg_tvalidate_property (Object *obj, int index)
static reg_t validate_read_var (reg_t *r, reg_t *stack_base, int type, int max, int index, reg_t default_value)
static bool validate_signedInteger (reg_t reg, int16 &integer)
static StackPtr validate_stack_addr (EngineState *s, StackPtr sp)
static bool validate_unsignedInteger (reg_t reg, uint16 &integer)
static bool validate_variable (reg_t *r, reg_t *stack_base, int type, int max, int index)
static void validate_write_var (reg_t *r, reg_t *stack_base, int type, int max, int index, reg_t value, SegManager *segMan, Kernel *kernel)
static VertexListvisible_vertices (PathfindingState *s, Vertex *vertex_cur)
void vocab_dump_parse_tree (const char *tree_name, ParseTreeNode *nodes)
static void vocab_print_rule (ParseRule *rule)
void WRITE_SCI11ENDIAN_UINT16 (void *ptr, uint16 val)
static void writePoint (SegmentRef ref, int offset, const Common::Point &point)
void writeSelector (SegManager *segMan, reg_t object, Selector selectorId, reg_t value)

Variables

static int _allocd_rules = 0
static const int ascii_tree []
static const
GfxTransitionTranslateEntry 
blackoutTransitionIDs []
const uint16 castlebrainPatchCipherPuzzle []
const byte castlebrainSignatureCipherPuzzle []
const SciScriptSignature castlebrainSignatures []
static const byte codepagemap_88591toDOS [0x80]
const char controlListDownArrow [2] = { 0x19, 0 }
const char controlListUpArrow [2] = { 0x18, 0 }
static const ADParams detectionParams
static const int distance_tree []
static bool dontclaim
const uint16 ecoquest1PatchStayAndHelp []
const SciScriptSignature ecoquest1Signatures []
const byte ecoquest1SignatureStayAndHelp []
const uint16 ecoquest2PatchEcorder []
const byte ecoquest2SignatureEcorder []
const SciScriptSignature ecoquest2Signatures []
static const byte EGAmappingStraight [SCI_VIEW_EGAMAPPING_SIZE]
const uint16 freddypharkasPatchCannisterHang []
const uint16 freddypharkasPatchLadderEvent []
const uint16 freddypharkasPatchScoreDisposal []
const byte freddypharkasSignatureCannisterHang []
const byte freddypharkasSignatureLadderEvent []
const SciScriptSignature freddypharkasSignatures []
const byte freddypharkasSignatureScoreDisposal []
static const int freq_table [12]
int g_debug_simulated_key = 0
int g_debug_sleeptime_factor = 1
bool g_debug_track_mouse_clicks = false
opcode_format g_opcode_formats [128][4]
SciEngineg_sci = 0
const uint16 gk1PatchDay5PhoneFreeze []
const uint16 gk1PatchDay6PoliceBeignet []
const uint16 gk1PatchDay6PoliceSleep []
const byte gk1SignatureDay5PhoneFreeze []
const byte gk1SignatureDay6PoliceBeignet []
const byte gk1SignatureDay6PoliceSleep []
const SciScriptSignature gk1Signatures []
static const char * GmInstrumentNames []
static const char * GmPercussionNames []
const SciWorkaroundEntry kAbs_workarounds []
const SciWorkaroundEntry kCelHigh_workarounds []
const SciWorkaroundEntry kCelWide_workarounds []
const SciWorkaroundEntry kDeviceInfo_workarounds []
const SciWorkaroundEntry kDirLoop_workarounds []
const SciWorkaroundEntry kDisplay_workarounds []
const SciWorkaroundEntry kDisposeScript_workarounds []
static const SciKernelMapSubEntry kDoSound_subops []
const SciWorkaroundEntry kDoSoundFade_workarounds []
static const SciKernelMapSubEntry kFileIO_subops []
const SciWorkaroundEntry kFindKey_workarounds []
const SciWorkaroundEntry kGetAngle_workarounds []
static const SciKernelMapSubEntry kGraph_subops []
const SciWorkaroundEntry kGraphDrawLine_workarounds []
const SciWorkaroundEntry kGraphFillBoxAny_workarounds []
const SciWorkaroundEntry kGraphFillBoxForeground_workarounds []
const SciWorkaroundEntry kGraphRedrawBox_workarounds []
const SciWorkaroundEntry kGraphRestoreBox_workarounds []
const SciWorkaroundEntry kGraphSaveBox_workarounds []
const SciWorkaroundEntry kGraphUpdateBox_workarounds []
const SciWorkaroundEntry kIsObject_workarounds []
const SciWorkaroundEntry kMemory_workarounds []
const SciWorkaroundEntry kNewWindow_workarounds []
static const SciKernelMapSubEntry kPalette_subops []
const SciWorkaroundEntry kPaletteUnsetFlag_workarounds []
static const SciKernelMapSubEntry kPalVary_subops []
const uint16 kq5PatchCdHarpyVolume []
const byte kq5SignatureCdHarpyVolume []
const SciScriptSignature kq5Signatures []
const SciWorkaroundEntry kSetCursor_workarounds []
const SciWorkaroundEntry kSetPort_workarounds []
const SciWorkaroundEntry kStrAt_workarounds []
const SciWorkaroundEntry kStrCat_workarounds []
const SciWorkaroundEntry kStrLen_workarounds []
const SciWorkaroundEntry kUnLoad_workarounds []
const uint16 larry6PatchDeathDialog []
const byte larry6SignatureDeathDialog []
const SciScriptSignature larry6Signatures []
const uint16 laurabow2PatchPaintingClosing []
const byte laurabow2SignaturePaintingClosing []
const SciScriptSignature laurabow2Signatures []
static const int length_tree []
static const byte lowerCaseMap [256]
struct {
   uint32   tag
   ResourceType   type
macResTagMap []
const uint16 mothergoose256PatchReplay []
const uint16 mothergoose256PatchSaveLimit []
const byte mothergoose256SignatureReplay []
const SciScriptSignature mothergoose256Signatures []
const byte mothergoose256SignatureSaveLimit []
static const Mt32ToGmMap Mt32MemoryTimbreMaps []
static const uint8 Mt32PresetRhythmKeymap []
static const Mt32ToGmMap Mt32PresetTimbreMaps []
static const Mt32ToGmMap Mt32RhythmTimbreMaps []
static const int nMidiParams [] = { 2, 2, 2, 2, 1, 1, 2, 0 }
const reg_t NULL_REG = {0, 0}
static const
GfxTransitionTranslateEntry 
oldTransitionIDs []
const SciWorkaroundEntry opcodeAndWorkarounds []
const SciWorkaroundEntry opcodeDivWorkarounds []
const SciWorkaroundEntry opcodeDptoaWorkarounds []
const SciWorkaroundEntry opcodeGeWorkarounds []
const SciWorkaroundEntry opcodeLaiWorkarounds []
const SciWorkaroundEntry opcodeLeWorkarounds []
const SciWorkaroundEntry opcodeLsiWorkarounds []
const SciWorkaroundEntry opcodeMulWorkarounds []
const char * opcodeNames []
const SciWorkaroundEntry opcodeOrWorkarounds []
const SciWorkaroundEntry opcodeUltWorkarounds []
static int outputDepth
static byte patchGameRestoreSave []
const uint16 qfg1vgaPatchFightEvents []
const byte qfg1vgaSignatureFightEvents []
const SciScriptSignature qfg1vgaSignatures []
static const byte registerOffset [MidiDriver_AdLib::kVoices]
static const char * s_defaultKernelNames []
static ADGameDescription s_fallbackDesc
static char s_fallbackGameIdBuf [256]
static const GameIdStrToEnum s_gameIdStrToEnum []
static const uint16 s_halfWidthSJISMap [256]
static SciKernelMapEntry s_kernelMap []
static const OldNewIdTableEntry s_oldNewTable []
static const char * s_resourceTypeNames []
static const char * s_resourceTypeSuffixes []
static const ResourceType s_resTypeMapSci0 []
static const ResourceType s_resTypeMapSci21 []
static const ScancodeRow s_scancodeRows []
static const PlainGameDescriptor s_sciGameTitles []
static SciVersion s_sciVersion = SCI_VERSION_NONE
static int said_token
static int said_tokens [MAX_SAID_TOKENS]
static int said_tokens_nr
static ParseTreeNode said_tree [VOCAB_TREE_NODES]
static int said_tree_pos
static const char *const sci0Selectors []
static const char *const sci1Selectors []
static const char * sci_error_types []
static struct ADGameDescription SciGameDescriptions []
static const SelectorRemap sciSelectorRemap []
static const
SciCursorSetPositionWorkarounds 
setPositionWorkarounds []
const reg_t SIGNAL_REG = {0, SIGNAL_OFFSET}
static const SignatureDebugType signatureDebugTypeList []
const uint16 sq4FloppyPatchEndlessFlight []
const byte sq4FloppySignatureEndlessFlight []
const byte sq4FloppySignatureEndlessFlightGerman []
const SciScriptSignature sq4Signatures []
const uint16 sq5PatchScrubbing []
const SciScriptSignature sq5Signatures []
const byte sq5SignatureScrubbing []
static const uint16 tableDPCM16 [128]
static const byte tableDPCM8 [8] = {0, 1, 2, 3, 6, 10, 15, 21}
static const uint16 text16_punctuationSjis []
const reg_t TRUE_REG = {0, 1}
const SciWorkaroundEntry uninitializedReadWorkarounds []
static const byte vector_defaultEGApalette [PIC_EGAPALETTE_SIZE]
static const byte vector_defaultEGApriority [PIC_EGAPRIORITY_SIZE]
static const byte vectorPatternCircles [8][30]
static const byte vectorPatternTextureOffset [128]
static const bool vectorPatternTextures [32 *8 *2]
static const byte velocityMap1 [64]
static const byte velocityMap2 [64]
static byte volumeTable [64]
static const int ym3812_note [13]

Detailed Description

This is the namespace of the SCI engine.

Status of this engine: ???

Supported games:


Generated by  Doxygen 1.6.0   Back to index