ScummVM API documentation
Sci Namespace Reference

Classes

struct  AltInput
 
struct  AnimateEntry
 
class  Audio32
 
struct  AudioChannel
 
class  AudioPlayer
 
class  AudioVolumeResourceSource
 
class  AVIPlayer
 
struct  Breakpoint
 
struct  CelCacheEntry
 
struct  CelInfo
 
struct  CelInfo32
 
class  CelObj
 
class  CelObjColor
 
class  CelObjMem
 
class  CelObjPic
 
class  CelObjView
 
class  CelScaler
 
struct  CelScalerTable
 
struct  ChannelRemapping
 
struct  Class
 
struct  CloneTable
 
struct  Color
 
class  Console
 
class  CursorStack
 
struct  DataStack
 
struct  DebugState
 
class  Decompressor
 
class  DecompressorDCL
 
class  DecompressorHuffman
 
class  DecompressorLZW
 
struct  DeviceChannelUsage
 
class  DirectoryResourceSource
 
class  DirSeeker
 
struct  DrawItem
 
class  DrawList
 
class  DuckPlayer
 
struct  DynMem
 
struct  EngineState
 
class  EventManager
 
struct  ExecStack
 
class  ExtAudioMapResourceSource
 
class  ExtMapResourceSource
 
class  FileHandle
 
class  FindByObject
 
class  GameFeatures
 
struct  GameIdStrToEnum
 
struct  GameResourcePatch
 
class  GfxAnimate
 
class  GfxCache
 
class  GfxCompare
 
class  GfxControls16
 
class  GfxControls32
 
class  GfxCoordAdjuster16
 
class  GfxCursor
 
class  GfxCursor32
 
class  GfxDefaultDriver
 
class  GfxDriver
 
class  GfxFont
 
class  GfxFontFromResource
 
class  GfxFontKorean
 
class  GfxFontSjis
 
class  GfxFrameout
 
class  GfxMacCursor32
 
class  GfxMacFontManager
 
class  GfxMacIconBar
 
class  GfxMenu
 
class  GfxPaint16
 
class  GfxPaint32
 
class  GfxPalette
 
class  GfxPalette32
 
class  GfxPicture
 
class  GfxPorts
 
class  GfxRemap
 
class  GfxRemap32
 
class  GfxScreen
 
class  GfxText16
 
class  GfxText32
 
class  GfxTransitions
 
class  GfxTransitions32
 
struct  GfxTransitionTranslateEntry
 
class  GfxView
 
class  GuestAdditions
 
struct  GuiMenuEntry
 
struct  GuiMenuItemEntry
 
struct  Hunk
 
class  HunkPalette
 
struct  HunkTable
 
class  IntMapResourceSource
 
class  Kernel
 
struct  KernelFunction
 
struct  KernelSubFunction
 
class  KQ6WinGfx16ColorsDriver
 
class  KQ6WinGfxDriver
 
struct  List
 
struct  ListTable
 
struct  LocalVariables
 
struct  LoopInfo
 
class  MacResourceForkResourceSource
 
class  MessageState
 
struct  MessageTuple
 
struct  MidiCommand
 
class  MidiParser_SCI
 
class  MidiPlayer
 
class  Mixer_Mac
 
struct  Mt32ToGmMap
 
class  MusicEntry
 
struct  MusicEntryChannel
 
struct  Node
 
struct  NodeTable
 
class  Object
 
struct  ObjVarRef
 
struct  offsetLookupArrayEntry
 
class  OptionsWidget
 
struct  PalCycler
 
struct  Palette
 
struct  PaletteMod
 
struct  PalSchedule
 
struct  parse_tree_branch_t
 
struct  ParseTreeNode
 
class  PatchResourceSource
 
class  PC98Gfx16ColorsDriver
 
struct  PicMod
 
class  Plane
 
class  PlaneList
 
struct  PlaneScroll
 
struct  PlaneShowStyle
 
struct  PopUpOptionsItem
 
struct  PopUpOptionsMap
 
struct  Port
 
class  Portrait
 
struct  PortraitBitmap
 
class  QuickTimePlayer
 
class  RectList
 
struct  reg_t
 
struct  reg_t_Hash
 
class  Resource
 
class  ResourceId
 
struct  ResourceIdHash
 
class  ResourceManager
 
class  ResourcePatcher
 
class  ResourceSource
 
struct  ResultWord
 
class  RobotAudioStream
 
class  RobotDecoder
 
struct  SavegameDesc
 
struct  SavegameMetadata
 
struct  ScaleInfo
 
class  SCI0_CGABWDriver
 
class  SCI0_CGADriver
 
class  SCI0_DOSPreVGADriver
 
class  SCI0_HerculesDriver
 
class  SCI0_PC98Gfx8ColorsDriver
 
class  SCI1_EGADriver
 
class  SCI1_PC98Gfx8ColorsDriver
 
class  SCI1_VGAGreyScaleDriver
 
struct  SciCallOrigin
 
struct  SciCursorSetPositionWorkarounds
 
class  SciEngine
 
struct  SciEvent
 
struct  SciFxMod
 
struct  SciKernelMapEntry
 
struct  SciKernelMapSubEntry
 
struct  SciMessageWorkaroundEntry
 
struct  SciMessageWorkaroundSolution
 
class  SciMusic
 
struct  SciScriptPatcherEntry
 
struct  SciScriptPatcherRuntimeEntry
 
class  SciSpan
 
class  SciSpanImpl
 
class  SciTTS
 
struct  SciWorkaroundEntry
 
struct  SciWorkaroundSolution
 
class  ScreenItem
 
class  ScreenItemList
 
class  Script
 
class  ScriptPatcher
 
class  ScrollWindow
 
struct  ScrollWindowEntry
 
class  SegManager
 
struct  SegmentObj
 
struct  SegmentObjTable
 
struct  SegmentRef
 
struct  SelectorCache
 
class  SEQDecoder
 
class  SEQPlayer
 
class  SingleRemap
 
class  SOLStream
 
class  SoundCommandParser
 
class  SoundResource
 
class  StablePointerArray
 
class  StablePointerDynamicArray
 
struct  suffix_t
 
class  Sync
 
struct  synonym_t
 
struct  TextEditor
 
class  UpscaledGfxDriver
 
class  Video32
 
class  VideoPlayer
 
struct  ViewMod
 
class  VMDPlayer
 
class  Vocabulary
 
class  VolumeResourceSource
 
class  WaveResourceSource
 
struct  Window
 
struct  WorklistManager
 

Typedefs

typedef Common::HashMap< reg_t, bool, reg_t_HashAddrSet
 
typedef reg_t KernelFunctionCall(EngineState *s, int argc, reg_t *argv)
 
typedef Common::Stack< CursorStackCursorStackStack
 
typedef Common::HashMap< uint32, ObjectObjMap
 
typedef Common::Array< offsetLookupArrayEntryoffsetLookupArrayType
 
typedef Object Clone
 
typedef uint16 SegmentId
 
typedef reg_tStackPtr
 
typedef int Selector
 
typedef Common::List< AnimateEntryAnimateList
 
typedef Common::Array< AnimateEntryAnimateArray
 
typedef Common::HashMap< int, GfxFont * > FontCache
 
typedef Common::HashMap< int, GfxView * > ViewCache
 
typedef Common::Rational Ratio
 
typedef Common::Array< CelCacheEntryCelCache
 
typedef Common::HashMap< int, GfxView * > CursorCache
 
typedef Common::Array< DrawListScreenItemListList
 
typedef Common::Array< RectListEraseListList
 
typedef int GuiResourceId
 
typedef int16 TextAlignment
 
typedef Common::List< GuiMenuEntry * > GuiMenuList
 
typedef Common::List< GuiMenuItemEntry * > GuiMenuItemList
 
typedef StablePointerArray< Common::Rect, 200 > RectListBase
 
typedef StablePointerDynamicArray< DrawItem, 250 > DrawListBase
 
typedef Common::Array< Plane * > PlaneListBase
 
typedef Common::List< Port * > PortList
 
typedef Common::Array< Port * > PortArray
 
typedef StablePointerArray< ScreenItem, 250 > ScreenItemListBase
 
typedef Common::Array< Common::RectCodeRefRectArray
 
typedef Common::List< PlaneShowStyleShowStyleList
 
typedef Common::List< PlaneScrollScrollList
 
typedef Common::List< ResultWordResultWordList
 
typedef Common::List< ResultWordListResultWordListList
 
typedef Common::HashMap< Common::String, ResultWordList, Common::CaseSensitiveString_Hash, Common::CaseSensitiveString_EqualToWordMap
 
typedef Common::List< suffix_tSuffixList
 
typedef Common::Array< synonym_tSynonymList
 
typedef Common::HashMap< ResourceId, Resource *, ResourceIdHashResourceMap
 
typedef uint32 ufrac_t
 
typedef Common::List< Mt32ToGmMapMt32ToGmMapList
 
typedef Common::Array< uint16 > SignalQueue
 
typedef Common::Array< MusicEntry * > MusicList
 
typedef Common::Array< MidiCommandMidiCommandQueue
 

Enumerations

enum  BreakpointType {
  BREAK_SELECTOREXEC = 1 << 0, BREAK_SELECTORREAD = 1 << 1, BREAK_SELECTORWRITE = 1 << 2, BREAK_EXPORT = 1 << 3,
  BREAK_ADDRESS = 1 << 4, BREAK_KERNEL = 1 << 5
}
 
enum  BreakpointAction {
  BREAK_NONE, BREAK_BREAK, BREAK_LOG, BREAK_BACKTRACE,
  BREAK_INSPECT
}
 
enum  DebugSeeking {
  kDebugSeekNothing = 0, kDebugSeekCallk = 1, kDebugSeekLevelRet = 2, kDebugSeekSpecialCallk = 3,
  kDebugSeekGlobal = 4, kDebugSeekStepOver = 5
}
 
enum  SciGameId {
  GID_ALL, GID_ASTROCHICKEN, GID_CAMELOT, GID_CASTLEBRAIN,
  GID_CHEST, 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_GK1DEMO, GID_GK1,
  GID_GK2, GID_HOYLE1, GID_HOYLE2, GID_HOYLE3,
  GID_HOYLE4, GID_HOYLE5, GID_ICEMAN, GID_INNDEMO,
  GID_ISLANDBRAIN, GID_JONES, GID_KQ1, GID_KQ4,
  GID_KQ5, GID_KQ6, GID_KQ7, GID_KQUESTIONS,
  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_PQ4DEMO, GID_PQSWAT,
  GID_QFG1, GID_QFG1VGA, GID_QFG2, GID_QFG3,
  GID_QFG4, GID_QFG4DEMO, GID_RAMA, GID_REALM,
  GID_SHIVERS, GID_SLATER, GID_SQ1, GID_SQ3,
  GID_SQ4, GID_SQ5, GID_SQ6, GID_TORIN,
  GID_FANMADE
}
 
enum  SciVersion {
  SCI_VERSION_NONE, SCI_VERSION_0_EARLY, SCI_VERSION_0_LATE, SCI_VERSION_01,
  SCI_VERSION_1_EGA_ONLY, SCI_VERSION_1_EARLY, SCI_VERSION_1_MIDDLE, SCI_VERSION_1_LATE,
  SCI_VERSION_1_1, SCI_VERSION_2, SCI_VERSION_2_1_EARLY, SCI_VERSION_2_1_MIDDLE,
  SCI_VERSION_2_1_LATE, SCI_VERSION_3
}
 
enum  kMidiMode {
  kMidiModeStandard, kMidiModeFB01, kMidiModeD110, kMidiModeMT540,
  kMidiModeCT460
}
 
enum  MoveCountType { kMoveCountUninitialized, kIgnoreMoveCount, kIncrementMoveCount }
 
enum  PseudoMouseAbilityType { kPseudoMouseAbilityUninitialized, kPseudoMouseAbilityFalse, kPseudoMouseAbilityTrue }
 
enum  MessageTypeSyncStrategy { kMessageTypeSyncStrategyNone, kMessageTypeSyncStrategyDefault }
 
enum  { kSpeedThrottleDefaultDelay = 30 }
 
enum  kFileOpenMode { kFileOpenModeOpenOrCreate = 0, kFileOpenModeOpenOrFail = 1, kFileOpenModeCreate = 2 }
 
enum  { kMaxSaveNameLength = 36, kMaxNumSaveGames = 20 }
 
enum  { kAutoSaveId = 0, kNewGameId = 999, kSaveIdShift = 1, kMaxShiftedSaveId = 99 }
 
enum  { kVirtualFileHandleStart = 32000, kVirtualFileHandleSci32Save = 32100, kVirtualFileHandleSciAudio = 32300, kVirtualFileHandleEnd = 32300 }
 
enum  {
  kPhant2VolumeMax = 85, kRamaVolumeMax = 16, kLSL6UIVolumeMax = 13, kHoyle5VolumeMax = 8,
  kLSL6HiresSubtitleFlag = 105
}
 
enum  { kScummVMSleepId = 0xe0 }
 
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  infoSelectorFlags { kInfoFlagClone = 0x0001, kInfoFlagClass = 0x8000 }
 
enum  ObjectOffsets {
  kOffsetHeaderSize = 6, kOffsetHeaderLocalVariables = 0, kOffsetHeaderFunctionArea = 2, kOffsetHeaderSelectorCounter = 4,
  kOffsetSelectorSegment = 0, kOffsetInfoSelectorSci0 = 4, kOffsetNamePointerSci0 = 6, kOffsetInfoSelectorSci11 = 14,
  kOffsetNamePointerSci11 = 16
}
 
enum  { CURRENT_SAVEGAME_VERSION = 46, MINIMUM_SAVEGAME_VERSION = 14 }
 
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  ScriptOffsetEntryTypes { SCI_SCR_OFFSET_TYPE_OBJECT = 0, SCI_SCR_OFFSET_TYPE_STRING, SCI_SCR_OFFSET_TYPE_SAID }
 
enum  : uint { kNoRelocation = 0xFFFFFFFF }
 
enum  ScriptLoadType { SCRIPT_GET_DONT_LOAD = 0, SCRIPT_GET_LOAD = 1, SCRIPT_GET_LOCK = 3 }
 
enum  SegmentType {
  SEG_TYPE_INVALID = 0, SEG_TYPE_SCRIPT = 1, SEG_TYPE_CLONES = 2, SEG_TYPE_LOCALS = 3,
  SEG_TYPE_STACK = 4, SEG_TYPE_LISTS = 6, SEG_TYPE_NODES = 7, SEG_TYPE_HUNK = 8,
  SEG_TYPE_DYNMEM = 9, SEG_TYPE_MAX
}
 
enum  { CLONE_USED = -1, CLONE_NONE = -1 }
 
enum  AbortGameState { kAbortNone = 0, kAbortLoadGame = 1, kAbortRestartGame = 2, kAbortQuitGame = 3 }
 
enum  { SAVEGAMEID_OFFICIALRANGE_START = 100, SAVEGAMEID_OFFICIALRANGE_END = 199 }
 
enum  { GAMEISRESTARTING_NONE = 0, GAMEISRESTARTING_RESTART = 1, GAMEISRESTARTING_RESTORE = 2 }
 
enum  VideoFlags {
  kNone = 0, kDoubled = 1 << 0, kDropFrames = 1 << 1, kBlackLines = 1 << 2,
  kUnkBit3 = 1 << 3, kGammaBoost = 1 << 4, kHoldBlackFrame = 1 << 5, kHoldLastFrame = 1 << 6,
  kUnkBit7 = 1 << 7, kStretch = 1 << 8
}
 
enum  SelectorType { kSelectorNone = 0, kSelectorVariable, kSelectorMethod }
 
enum  ExecStackType { EXEC_STACK_TYPE_CALL = 0, EXEC_STACK_TYPE_KERNEL = 1, EXEC_STACK_TYPE_VARSELECTOR = 2 }
 
enum  { VAR_GLOBAL = 0, VAR_LOCAL = 1, VAR_TEMP = 2, VAR_PARAM = 3 }
 
enum  GlobalVar {
  kGlobalVarEgo = 0, kGlobalVarGame = 1, kGlobalVarCurrentRoom = 2, kGlobalVarSpeed = 3,
  kGlobalVarQuit = 4, kGlobalVarSounds = 8, kGlobalVarPlanes = 10, kGlobalVarCurrentRoomNo = 11,
  kGlobalVarPreviousRoomNo = 12, kGlobalVarNewRoomNo = 13, kGlobalVarScore = 15, kGlobalVarVersionNew = 27,
  kGlobalVarVersionOld = 28, kGlobalVarGK2MusicVolume = 76, kGlobalVarPhant2SecondaryVolume = 76, kGlobalVarUser = 80,
  kGlobalVarFastCast = 84, kGlobalVarMessageType = 90, kGlobalVarTextSpeed = 94, kGlobalVarGK1Music1 = 102,
  kGlobalVarGK1Music2 = 103, kGlobalVarRamaCatalogFile = 130, kGlobalVarLSL6HiresGameFlags = 137, kGlobalVarKQ7UpscaleVideos = 160,
  kGlobalVarGK1NarratorMode = 166, kGlobalVarRamaMusicVolume = 176, kGlobalVarPhant1MusicVolume = 187, kGlobalVarPhant1DACVolume = 188,
  kGlobalVarLSL6MusicVolume = 194, kGlobalVarGK1DAC1 = 207, kGlobalVarPhant2CensorshipFlag = 207, kGlobalVarGK1DAC2 = 208,
  kGlobalVarLSL6HiresRestoreTextWindow = 210, kGlobalVarGK1DAC3 = 211, kGlobalVarShiversFlags = 211, kGlobalVarTorinMusicVolume = 227,
  kGlobalVarTorinSFXVolume = 228, kGlobalVarTorinSpeechVolume = 229, kGlobalVarPhant2MasterVolume = 236, kGlobalVarPhant2ControlPanel = 250,
  kGlobalVarShivers1Score = 349, kGlobalVarQFG4Flags = 500, kGlobalVarHoyle5MusicVolume = 897
}
 
enum  { GC_INTERVAL = 0x8000 }
 
enum  SciOpcodes {
  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_info = 0x26, op_superP = 0x27,
  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  { kUninitializedSegment = 0x1FFF, kSegmentMask = 0x1FFF, kOffsetMask = 0x7FFFF }
 
enum  { SIGNAL_OFFSET = 0xffff }
 
enum  { NULL_SELECTOR = -1 }
 
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  SciWorkaroundType { WORKAROUND_NONE, WORKAROUND_IGNORE, WORKAROUND_STILLCALL, WORKAROUND_FAKE }
 
enum  SciMessageWorkaroundType { MSG_WORKAROUND_NONE, MSG_WORKAROUND_REMAP, MSG_WORKAROUND_FAKE, MSG_WORKAROUND_EXTRACT }
 
enum  SciMedia : uint { SCI_MEDIA_ALL, SCI_MEDIA_FLOPPY, SCI_MEDIA_CD, SCI_MEDIA_MAC }
 
enum  SciEventType {
  kSciEventNone = 0, kSciEventMousePress = 1, kSciEventMouseRelease = 1 << 1, kSciEventMouse = kSciEventMousePress | kSciEventMouseRelease,
  kSciEventKeyDown = 1 << 2, kSciEventKeyUp = 1 << 3, kSciEventKey = kSciEventKeyDown | kSciEventKeyUp, kSciEventDirection16 = 1 << 6,
  kSciEventSaid = 1 << 7, kSciEventQuit = 1 << 11, kSciEventPeek = 1 << 15, kSciEventAny = ~kSciEventPeek
}
 
enum  SciKeyCode {
  kSciKeyEtx = 3, kSciKeyBackspace = 8, kSciKeyTab = '\t', kSciKeyEnter = 13,
  kSciKeyEsc = 27, kSciKeyShiftTab = 15 << 8, kSciKeyHome = 71 << 8, kSciKeyUp = 72 << 8,
  kSciKeyPageUp = 73 << 8, kSciKeyLeft = 75 << 8, kSciKeyCenter = 76 << 8, kSciKeyRight = 77 << 8,
  kSciKeyEnd = 79 << 8, kSciKeyDown = 80 << 8, kSciKeyPageDown = 81 << 8, kSciKeyInsert = 82 << 8,
  kSciKeyDelete = 83 << 8, kSciKeyF1 = 59 << 8, kSciKeyF2 = 60 << 8, kSciKeyF3 = 61 << 8,
  kSciKeyF4 = 62 << 8, kSciKeyF5 = 63 << 8, kSciKeyF6 = 64 << 8, kSciKeyF7 = 65 << 8,
  kSciKeyF8 = 66 << 8, kSciKeyF9 = 67 << 8, kSciKeyF10 = 68 << 8, kSciKeyShiftF1 = 84 << 8,
  kSciKeyShiftF2 = 85 << 8, kSciKeyShiftF3 = 86 << 8, kSciKeyShiftF4 = 87 << 8, kSciKeyShiftF5 = 88 << 8,
  kSciKeyShiftF6 = 89 << 8, kSciKeyShiftF7 = 90 << 8, kSciKeyShiftF8 = 91 << 8, kSciKeyShiftF9 = 92 << 8,
  kSciKeyShiftF10 = 93 << 8
}
 
enum  SciKeyModifiers {
  kSciKeyModNone = 0, kSciKeyModRShift = 1, kSciKeyModLShift = 1 << 1, kSciKeyModShift = kSciKeyModRShift | kSciKeyModLShift,
  kSciKeyModCtrl = 1 << 2, kSciKeyModAlt = 1 << 3, kSciKeyModScrLock = 1 << 4, kSciKeyModNumLock = 1 << 5,
  kSciKeyModCapsLock = 1 << 6, kSciKeyModInsert = 1 << 7, kSciKeyModNonSticky = kSciKeyModRShift | kSciKeyModLShift | kSciKeyModCtrl | kSciKeyModAlt, kSciKeyModAll = ~kSciKeyModNone
}
 
enum  ViewSignals {
  kSignalStopUpdate = 0x0001, kSignalViewUpdated = 0x0002, kSignalNoUpdate = 0x0004, kSignalHidden = 0x0008,
  kSignalFixedPriority = 0x0010, kSignalAlwaysUpdate = 0x0020, kSignalForceUpdate = 0x0040, kSignalRemoveView = 0x0080,
  kSignalFrozen = 0x0100, kSignalHitObstacle = 0x0400, kSignalDoesntTurn = 0x0800, kSignalIgnoreActor = 0x4000,
  kSignalDisposeMe = 0x8000
}
 
enum  ViewScaleSignals { kScaleSignalDoScaling = 0x0001, kScaleSignalGlobalScaling = 0x0002, kScaleSignalHoyle4SpecialHandling = 0x0004 }
 
enum  { kLowResX = 320, kLowResY = 200 }
 
enum  CelType { kCelTypeView = 0, kCelTypePic = 1, kCelTypeMem = 2, kCelTypeColor = 3 }
 
enum  CelCompressionType { kCelCompressionNone = 0, kCelCompressionRLE = 138, kCelCompressionInvalid = 1000 }
 
enum  { kCelScalerTableSize = 4096 }
 
enum  controlStateFlags { SCI_CONTROLS_STYLE_ENABLED = 0x0001, SCI_CONTROLS_STYLE_DISABLED = 0x0004, SCI_CONTROLS_STYLE_SELECTED = 0x0008, SCI_CONTROLS_STYLE_MAC_INVERTED = 0x0040 }
 
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  MessageBoxStyle { kMessageBoxOK = 0x0, kMessageBoxYesNo = 0x4 }
 
enum  { SCI_CURSOR_SCI0_HEIGHTWIDTH = 16, SCI_CURSOR_SCI0_RESOURCESIZE = 68, SCI_CURSOR_SCI0_TRANSPARENCYCOLOR = 1, SCI_CURSOR_SCI1_GRAY = 7 }
 
enum  ShakeDirection { kShakeVertical = 1, kShakeHorizontal = 2 }
 
enum  ViewType {
  kViewUnknown, kViewEga, kViewAmiga, kViewAmiga64,
  kViewVga, kViewVga11
}
 
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  LineStyle { kLineStyleSolid, kLineStyleDashed, kLineStylePattern }
 
enum  PalCyclerDirection { kPalCycleBackward = 0, kPalCycleForward = 1 }
 
enum  { SCI_PICTURE_TYPE_REGULAR = 0, SCI_PICTURE_TYPE_SCI11 = 1, SCI_PICTURE_TYPE_SCI32 = 2 }
 
enum  PlaneType {
  kPlaneTypeColored = 0, kPlaneTypePicture = 1, kPlaneTypeTransparent = 2, kPlaneTypeOpaque = 3,
  kPlaneTypeTransparentPicture = 4
}
 
enum  PlanePictureCodes {
  kPlanePic = 65531, kPlanePicTransparentPicture = 65532, kPlanePicOpaque = 65533, kPlanePicTransparent = 65534,
  kPlanePicColored = 65535
}
 
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  RemapType {
  kRemapNone = 0, kRemapByRange = 1, kRemapByPercent = 2, kRemapToGray = 3,
  kRemapToPercentGray = 4
}
 
enum  { SCI_SCREEN_UPSCALEDMAXHEIGHT = 200, SCI_SCREEN_UPSCALEDMAXWIDTH = 320 }
 
enum  GfxScreenUpscaledMode { GFX_SCREEN_UPSCALED_DISABLED = 0, GFX_SCREEN_UPSCALED_480x300 = 1, GFX_SCREEN_UPSCALED_640x400 = 2 }
 
enum  GfxScreenMasks { GFX_SCREEN_MASK_VISUAL = 1, GFX_SCREEN_MASK_PRIORITY = 2, GFX_SCREEN_MASK_CONTROL = 4, GFX_SCREEN_MASK_ALL = GFX_SCREEN_MASK_VISUAL|GFX_SCREEN_MASK_PRIORITY|GFX_SCREEN_MASK_CONTROL }
 
enum  { DITHERED_BG_COLORS_SIZE = 256 }
 
enum  ScaleSignals32 { kScaleSignalNone = 0, kScaleSignalManual = 1, kScaleSignalVanishingPoint = 2 }
 
enum  TextAlign { kTextAlignDefault = -1, kTextAlignLeft = 0, kTextAlignCenter = 1, kTextAlignRight = 2 }
 
enum  ScrollDirection { kScrollUp, kScrollDown }
 
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_TOCENTER = 6, SCI_TRANSITIONS_DIAGONALROLL_FROMCENTER = 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  ShowStyleType {
  kShowStyleNone = 0, kShowStyleHShutterOut = 1, kShowStyleHShutterIn = 2, kShowStyleVShutterOut = 3,
  kShowStyleVShutterIn = 4, kShowStyleWipeLeft = 5, kShowStyleWipeRight = 6, kShowStyleWipeUp = 7,
  kShowStyleWipeDown = 8, kShowStyleIrisOut = 9, kShowStyleIrisIn = 10, kShowStyleDissolveNoMorph = 11,
  kShowStyleDissolve = 12, kShowStyleFadeOut = 13, kShowStyleFadeIn = 14, kShowStyleMorph = 15
}
 
enum  { SCI_VIEW_EGAMAPPING_SIZE = 16, SCI_VIEW_EGAMAPPING_COUNT = 8 }
 
enum  {
  VOCAB_RESOURCE_SELECTORS = 997, VOCAB_RESOURCE_SCI0_MAIN_VOCAB = 0, VOCAB_RESOURCE_SCUMM_LOC_VOCAB = 1, 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,
  VOCAB_RESOURCE_ALT_INPUTS = 913
}
 
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  ParseTypes { kParseTreeWordNode = 4, kParseTreeLeafNode = 5, kParseTreeBranchNode = 6 }
 
enum  VocabularyVersions { kVocabularySCI0 = 0, kVocabularySCI1 = 1 }
 
enum  ResourceCompression {
  kCompUnknown = -1, kCompNone = 0, kCompLZW, kCompHuffman,
  kCompLZW1, kCompLZW1View, kCompLZW1Pic, kCompDCL
}
 
enum  { kResourceHeaderSize = 2, SCI_MAX_RESOURCE_SIZE = 0x0400000 }
 
enum  ResourceStatus { kResStatusNoMalloc = 0, kResStatusAllocated, kResStatusEnqueued, kResStatusLocked }
 
enum  ResourceErrorCodes {
  SCI_ERROR_NONE = 0, SCI_ERROR_IO_ERROR = 1, SCI_ERROR_EMPTY_RESOURCE = 2, SCI_ERROR_RESMAP_INVALID_ENTRY = 3,
  SCI_ERROR_RESMAP_NOT_FOUND = 4, SCI_ERROR_NO_RESOURCE_FILES_FOUND = 5, SCI_ERROR_UNKNOWN_COMPRESSION = 6, SCI_ERROR_DECOMPRESSION_ERROR = 7,
  SCI_ERROR_RESOURCE_TOO_BIG = 8
}
 
enum  { MAX_OPENED_VOLUMES = 5 }
 
enum  ResourceType {
  kResourceTypeView = 0, kResourceTypePic, kResourceTypeScript, kResourceTypeText,
  kResourceTypeSound, kResourceTypeMemory, kResourceTypeVocab, kResourceTypeFont,
  kResourceTypeCursor, kResourceTypePatch, kResourceTypeBitmap, kResourceTypePalette,
  kResourceTypeCdAudio = 12, kResourceTypeAudio, kResourceTypeSync, kResourceTypeMessage,
  kResourceTypeMap, kResourceTypeHeap, kResourceTypeAudio36, kResourceTypeSync36,
  kResourceTypeTranslation, kResourceTypeRobot, kResourceTypeVMD, kResourceTypeChunk,
  kResourceTypeAnimation, kResourceTypeEtc, kResourceTypeDuck, kResourceTypeClut,
  kResourceTypeTGA, kResourceTypeZZZ, kResourceTypeMacIconBarPictN, kResourceTypeMacIconBarPictS,
  kResourceTypeMacPict, kResourceTypeRave, kResourceTypeInvalid
}
 
enum  ResVersion {
  kResVersionUnknown, kResVersionSci0Sci1Early, kResVersionSci1Middle, kResVersionKQ5FMT,
  kResVersionSci1Late, kResVersionSci11, kResVersionSci11Mac, kResVersionSci2,
  kResVersionSci3
}
 
enum  ResSourceType {
  kSourceDirectory = 0, kSourcePatch, kSourceVolume, kSourceExtMap,
  kSourceIntMap, kSourceAudioVolume, kSourceExtAudioMap, kSourceWave,
  kSourceMacResourceFork, kSourceChunk, kSourceScummVM
}
 
enum  ResourcePatchOp {
  kSkipBytes = 0xF0, kReplaceBytes, kInsertBytes, kReplaceNumber,
  kAdjustNumber, kInsertNumber, kReplaceFill, kInsertFill,
  kEndOfPatch
}
 
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, kDebugLevelDebugMode = 1 << 21, kDebugLevelPatcher = 1 << 22, kDebugLevelWorkarounds = 1 << 23,
  kDebugLevelVideo = 1 << 24, kDebugLevelGame = 1 << 25
}
 
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  AudioCommands {
  kSciAudioWPlay = 1, kSciAudioPlay = 2, kSciAudioStop = 3, kSciAudioPause = 4,
  kSciAudioResume = 5, kSciAudioPosition = 6, kSciAudioRate = 7, kSciAudioVolume = 8,
  kSciAudioLanguage = 9, kSciAudioCD = 10
}
 
enum  AudioChannelIndex { kRobotChannel = -3, kNoExistingChannel = -2, kAllChannels = -1 }
 
enum  SOLFlags { kCompressed = 1, k16Bit = 4, kStereo = 16 }
 
enum  { MIDI_CHANNELS = 16, MIDI_PROP_MASTER_VOLUME = 0 }
 
enum  SoundStatus { kSoundStopped = 0, kSoundInitialized = 1, kSoundPaused = 2, kSoundPlaying = 3 }
 
enum  AudioSyncCommands { kSciAudioSyncStart = 0, kSciAudioSyncNext = 1, kSciAudioSyncStop = 2 }
 

Functions

reg_t disassemble (EngineState *s, reg_t pos, const Object *obj, bool printBWTag, bool printBytecode, bool printCSyntax)
 
bool isJumpOpcode (EngineState *s, reg_t pos, reg_t &jumpOffset)
 
Common::String customizeGuiOptions (Common::Path gamePath, Common::String guiOptions, Common::Platform platform, Common::String idStr, SciVersion version)
 
uint findFreeFileHandle (EngineState *s)
 
reg_t file_open (EngineState *s, const Common::String &filename, kFileOpenMode mode, bool unwrapFilename)
 
FileHandlegetFileFromHandle (EngineState *s, uint handle)
 
int fgets_wrapper (EngineState *s, char *dest, int maxsize, int handle)
 
void listSavegames (Common::Array< SavegameDesc > &saves)
 
int findSavegame (Common::Array< SavegameDesc > &saves, int16 savegameId)
 
bool fillSavegameDesc (const Common::String &filename, SavegameDesc &desc)
 
AddrSetfindAllActiveReferences (EngineState *s)
 
void run_gc (EngineState *s)
 
reg_t hoyle5PokerEngine (SciArray *data)
 
reg_t kStrLen (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetFarText (EngineState *s, int argc, reg_t *argv)
 
reg_t kReadNumber (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 kSetSynonyms (EngineState *s, int argc, reg_t *argv)
 
reg_t kLock (EngineState *s, int argc, reg_t *argv)
 
reg_t kPalette (EngineState *s, int argc, reg_t *argv)
 
reg_t kPalVary (EngineState *s, int argc, reg_t *argv)
 
reg_t kAssertPalette (EngineState *s, int argc, reg_t *argv)
 
reg_t kPortrait (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 kDrawCel (EngineState *s, int argc, reg_t *argv)
 
reg_t kCoordPri (EngineState *s, int argc, reg_t *argv)
 
reg_t kPriCoord (EngineState *s, int argc, reg_t *argv)
 
reg_t kShakeScreen (EngineState *s, int argc, reg_t *argv)
 
reg_t kSetCursor (EngineState *s, int argc, reg_t *argv)
 
reg_t kMoveCursor (EngineState *s, int argc, reg_t *argv)
 
reg_t kPicNotValid (EngineState *s, int argc, reg_t *argv)
 
reg_t kOnControl (EngineState *s, int argc, reg_t *argv)
 
reg_t kDrawPic (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetPort (EngineState *s, int argc, reg_t *argv)
 
reg_t kSetPort (EngineState *s, int argc, reg_t *argv)
 
reg_t kNewWindow (EngineState *s, int argc, reg_t *argv)
 
reg_t kDisposeWindow (EngineState *s, int argc, reg_t *argv)
 
reg_t kCelWide (EngineState *s, int argc, reg_t *argv)
 
reg_t kCelHigh (EngineState *s, int argc, reg_t *argv)
 
reg_t kSetJump (EngineState *s, int argc, reg_t *argv)
 
reg_t kDirLoop (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoAvoider (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetAngle (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetDistance (EngineState *s, int argc, reg_t *argv)
 
reg_t kRandom (EngineState *s, int argc, reg_t *argv)
 
reg_t kAbs (EngineState *s, int argc, reg_t *argv)
 
reg_t kSqrt (EngineState *s, int argc, reg_t *argv)
 
reg_t kTimesSin (EngineState *s, int argc, reg_t *argv)
 
reg_t kTimesCos (EngineState *s, int argc, reg_t *argv)
 
reg_t kCosMult (EngineState *s, int argc, reg_t *argv)
 
reg_t kSinMult (EngineState *s, int argc, reg_t *argv)
 
reg_t kTimesTan (EngineState *s, int argc, reg_t *argv)
 
reg_t kTimesCot (EngineState *s, int argc, reg_t *argv)
 
reg_t kCosDiv (EngineState *s, int argc, reg_t *argv)
 
reg_t kSinDiv (EngineState *s, int argc, reg_t *argv)
 
reg_t kValidPath (EngineState *s, int argc, reg_t *argv)
 
reg_t kMapKeyToDir (EngineState *s, int argc, reg_t *argv)
 
reg_t kGlobalToLocal (EngineState *s, int argc, reg_t *argv)
 
reg_t kLocalToGlobal (EngineState *s, int argc, reg_t *argv)
 
reg_t kWait (EngineState *s, int argc, reg_t *argv)
 
reg_t kRestartGame16 (EngineState *s, int argc, reg_t *argv)
 
reg_t kDeviceInfo (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetEvent (EngineState *s, int argc, reg_t *argv)
 
reg_t kCheckFreeSpace (EngineState *s, int argc, reg_t *argv)
 
reg_t kFlushResources (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetSaveFiles (EngineState *s, int argc, reg_t *argv)
 
reg_t kSetDebug (EngineState *s, int argc, reg_t *argv)
 
reg_t kCheckSaveGame (EngineState *s, int argc, reg_t *argv)
 
reg_t kSaveGame (EngineState *s, int argc, reg_t *argv)
 
reg_t kRestoreGame (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIO (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetTime (EngineState *s, int argc, reg_t *argv)
 
reg_t kHaveMouse (EngineState *s, int argc, reg_t *argv)
 
reg_t kJoystick (EngineState *s, int argc, reg_t *argv)
 
reg_t kGameIsRestarting (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetCWD (EngineState *s, int argc, reg_t *argv)
 
reg_t kSort (EngineState *s, int argc, reg_t *argv)
 
reg_t kStrEnd (EngineState *s, int argc, reg_t *argv)
 
reg_t kMemory (EngineState *s, int argc, reg_t *argv)
 
reg_t kAvoidPath (EngineState *s, int argc, reg_t *argv)
 
reg_t kParse (EngineState *s, int argc, reg_t *argv)
 
reg_t kSaid (EngineState *s, int argc, reg_t *argv)
 
reg_t kStrCpy (EngineState *s, int argc, reg_t *argv)
 
reg_t kStrAt (EngineState *s, int argc, reg_t *argv)
 
reg_t kEditControl (EngineState *s, int argc, reg_t *argv)
 
reg_t kDrawControl (EngineState *s, int argc, reg_t *argv)
 
reg_t kHiliteControl (EngineState *s, int argc, reg_t *argv)
 
reg_t kClone (EngineState *s, int argc, reg_t *argv)
 
reg_t kDisposeClone (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 kSetNowSeen (EngineState *s, int argc, reg_t *argv)
 
reg_t kInitBresen (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoBresen (EngineState *s, int argc, reg_t *argv)
 
reg_t kBaseSetter (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 kDisplay (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraph (EngineState *s, int argc, reg_t *argv)
 
reg_t kFormat (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSound (EngineState *s, int argc, reg_t *argv)
 
reg_t kAddMenu (EngineState *s, int argc, reg_t *argv)
 
reg_t kSetMenu (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetMenu (EngineState *s, int argc, reg_t *argv)
 
reg_t kDrawStatus (EngineState *s, int argc, reg_t *argv)
 
reg_t kDrawMenuBar (EngineState *s, int argc, reg_t *argv)
 
reg_t kMenuSelect (EngineState *s, int argc, reg_t *argv)
 
reg_t kLoad (EngineState *s, int argc, reg_t *argv)
 
reg_t kUnLoad (EngineState *s, int argc, reg_t *argv)
 
reg_t kScriptID (EngineState *s, int argc, reg_t *argv)
 
reg_t kDisposeScript (EngineState *s, int argc, reg_t *argv)
 
reg_t kIsObject (EngineState *s, int argc, reg_t *argv)
 
reg_t kRespondsTo (EngineState *s, int argc, reg_t *argv)
 
reg_t kNewList (EngineState *s, int argc, reg_t *argv)
 
reg_t kDisposeList (EngineState *s, int argc, reg_t *argv)
 
reg_t kNewNode (EngineState *s, int argc, reg_t *argv)
 
reg_t kFirstNode (EngineState *s, int argc, reg_t *argv)
 
reg_t kLastNode (EngineState *s, int argc, reg_t *argv)
 
reg_t kEmptyList (EngineState *s, int argc, reg_t *argv)
 
reg_t kNextNode (EngineState *s, int argc, reg_t *argv)
 
reg_t kPrevNode (EngineState *s, int argc, reg_t *argv)
 
reg_t kNodeValue (EngineState *s, int argc, reg_t *argv)
 
reg_t kAddAfter (EngineState *s, int argc, reg_t *argv)
 
reg_t kAddToFront (EngineState *s, int argc, reg_t *argv)
 
reg_t kAddToEnd (EngineState *s, int argc, reg_t *argv)
 
reg_t kFindKey (EngineState *s, int argc, reg_t *argv)
 
reg_t kDeleteKey (EngineState *s, int argc, reg_t *argv)
 
reg_t kMemoryInfo (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetSaveDir (EngineState *s, int argc, reg_t *argv)
 
reg_t kTextSize (EngineState *s, int argc, reg_t *argv)
 
reg_t kIsItSkip (EngineState *s, int argc, reg_t *argv)
 
reg_t kGetMessage (EngineState *s, int argc, reg_t *argv)
 
reg_t kMessage (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoAudio (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSync (EngineState *s, int argc, reg_t *argv)
 
reg_t kMemorySegment (EngineState *s, int argc, reg_t *argv)
 
reg_t kIntersections (EngineState *s, int argc, reg_t *argv)
 
reg_t kMergePoly (EngineState *s, int argc, reg_t *argv)
 
reg_t kResCheck (EngineState *s, int argc, reg_t *argv)
 
reg_t kSetQuitStr (EngineState *s, int argc, reg_t *argv)
 
reg_t kShowMovie (EngineState *s, int argc, reg_t *argv)
 
reg_t kSetVideoMode (EngineState *s, int argc, reg_t *argv)
 
reg_t kStrSplit (EngineState *s, int argc, reg_t *argv)
 
reg_t kPlatform (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 kShow (EngineState *s, int argc, reg_t *argv)
 
reg_t kRemapColors (EngineState *s, int argc, reg_t *argv)
 
reg_t kRemapColorsKawa (EngineState *s, int argc, reg_t *argv)
 
reg_t kDummy (EngineState *s, int argc, reg_t *argv)
 
reg_t kEmpty (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 kKawaHacks (EngineState *s, int argc, reg_t *argv)
 
reg_t kKawaDbugStr (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundInit (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundPlay (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundDispose (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundMute (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 kDoSoundPause (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundResumeAfterRestore (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundMasterVolume (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundUpdate (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundFade (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundGetPolyphony (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundUpdateCues (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundSendMidi (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundGlobalReverb (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundSetHold (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundGetAudioCapability (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundSuspend (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundSetVolume (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundSetPriority (EngineState *s, int argc, reg_t *argv)
 
reg_t kDoSoundSetLoop (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphGetColorCount (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphDrawLine (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphSaveBox (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphRestoreBox (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 kGraphFillBoxAny (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphUpdateBox (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphRedrawBox (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphAdjustPriority (EngineState *s, int argc, reg_t *argv)
 
reg_t kGraphSaveUpscaledHiresBox (EngineState *s, int argc, reg_t *argv)
 
reg_t kPalVaryInit (EngineState *s, int argc, reg_t *argv)
 
reg_t kPalVaryReverse (EngineState *s, int argc, reg_t *argv)
 
reg_t kPalVaryGetCurrentStep (EngineState *s, int argc, reg_t *argv)
 
reg_t kPalVaryDeinit (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 kPalVaryPauseResume (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteSetFromResource (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteSetFlag (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteUnsetFlag (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteSetIntensity (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteFindColor (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteAnimate (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteSave (EngineState *s, int argc, reg_t *argv)
 
reg_t kPaletteRestore (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOOpen (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOClose (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOReadRaw (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOWriteRaw (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOUnlink (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOReadString (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOWriteString (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOSeek (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 kFileIOExists (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIORename (EngineState *s, int argc, reg_t *argv)
 
reg_t kFileIOCopy (EngineState *s, int argc, reg_t *argv)
 
reg_t kScummVMSleep (EngineState *s, int argc, reg_t *argv)
 
bool gamestate_save (EngineState *s, int saveId, const Common::String &savename, const Common::String &version)
 
bool gamestate_save (EngineState *s, Common::WriteStream *save, const Common::String &savename, const Common::String &version)
 
void gamestate_afterRestoreFixUp (EngineState *s, int savegameId)
 
bool gamestate_restore (EngineState *s, int saveId)
 
void gamestate_restore (EngineState *s, Common::SeekableReadStream *save)
 
bool get_savegame_metadata (Common::SeekableReadStream *stream, SavegameMetadata &meta)
 
void set_savegame_metadata (Common::Serializer &ser, Common::WriteStream *fh, const Common::String &savename, const Common::String &version)
 
void set_savegame_metadata (Common::WriteStream *fh, const Common::String &savename, const Common::String &version)
 
void debugSelectorCall (reg_t send_obj, Selector selector, int argc, StackPtr argp, ObjVarRef &varp, reg_t funcp, SegManager *segMan, SelectorType selectorType)
 
void debugPropertyAccess (Object *obj, reg_t objp, unsigned int index, Selector selector, reg_t curValue, reg_t newValue, SegManager *segMan, BreakpointType breakpointType)
 
void logKernelCall (const KernelFunction *kernelCall, const KernelSubFunction *kernelSubCall, EngineState *s, int argc, reg_t *argv, reg_t result)
 
void logExportCall (uint16 script, uint16 pubfunct, EngineState *s, int argc, reg_t *argv)
 
void logBacktrace ()
 
bool printObject (reg_t obj)
 
bool matchKernelBreakpointPattern (const Common::String &pattern, const Common::String &name)
 
reg_t readSelector (SegManager *segMan, reg_t object, Selector selectorId)
 
void writeSelector (SegManager *segMan, reg_t object, Selector selectorId, reg_t value)
 
void invokeSelector (EngineState *s, reg_t object, int selectorId, int k_argc, StackPtr k_argp, int argc=0, const reg_t *argv=0)
 
void script_adjust_opcode_formats ()
 
ExecStackexecute_method (EngineState *s, uint16 script, uint16 pubfunct, StackPtr sp, reg_t calling_obj, uint16 argc, StackPtr argp)
 
ExecStacksend_selector (EngineState *s, reg_t send_obj, reg_t work_obj, StackPtr sp, int framesize, StackPtr argp)
 
void run_vm (EngineState *s)
 
SelectorType lookupSelector (SegManager *segMan, reg_t obj, Selector selectorid, ObjVarRef *varp, reg_t *fptr)
 
int readPMachineInstruction (const byte *src, byte &extOpcode, int16 opparams[4])
 
uint32 findOffset (const int16 relOffset, const Script *scr, const uint32 pcOffset)
 
SciWorkaroundSolution trackOriginAndFindWorkaround (int index, const SciWorkaroundEntry *workaroundList, SciCallOrigin *trackOrigin)
 
SciMessageWorkaroundSolution findMessageWorkaround (int module, byte noun, byte verb, byte cond, byte seq)
 
ResourceId remapAudio36ResourceId (const ResourceId &resourceId)
 
ResourceId remapSync36ResourceId (const ResourceId &resourceId)
 
SciEventType operator| (const SciEventType a, const SciEventType b)
 
SciEventType & operator|= (SciEventType &a, const SciEventType b)
 
SciKeyModifiers & operator|= (SciKeyModifiers &a, SciKeyModifiers b)
 
void setupCustomPaletteMods (GfxScreen *screen)
 
void doCustomViewPalette (GfxScreen *screen, GuiResourceId view, int16 loop, int16 cel)
 
void doCustomPicPalette (GfxScreen *screen, GuiResourceId pic)
 
void vocab_dump_parse_tree (const char *tree_name, ParseTreeNode *nodes)
 
int said (const byte *spec, bool verbose)
 
const char * getResourceTypeName (ResourceType restype)
 
const char * getResourceTypeExtension (ResourceType restype)
 
SciVersion getSciVersionForDetection ()
 
const char * getSciVersionDesc (SciVersion version)
 
ResourceId convertPatchNameBase36 (ResourceType type, const Common::String &filename)
 
bool detectSolAudio (Common::SeekableReadStream &stream)
 
bool detectWaveAudio (Common::SeekableReadStream &stream)
 
Audio::SeekableAudioStreammakeSOLStream (Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse)
 
MidiPlayerMidiPlayer_AdLib_create (SciVersion version)
 
MidiPlayerMidiPlayer_AmigaMac0_create (SciVersion version, Common::Platform platform)
 
MidiPlayerMidiPlayer_AmigaMac1_create (SciVersion version, Common::Platform platform)
 
MidiPlayerMidiPlayer_PCJr_create (SciVersion version)
 
MidiPlayerMidiPlayer_PCSpeaker_create (SciVersion version)
 
MidiPlayerMidiPlayer_CMS_create (SciVersion version)
 
MidiPlayerMidiPlayer_MacSci0_create (SciVersion version)
 
MidiPlayerMidiPlayer_Midi_create (SciVersion version)
 
MidiPlayerMidiPlayer_Fb01_create (SciVersion version)
 
MidiPlayerMidiPlayer_Casio_create (SciVersion version, MusicType midiType)
 
MidiPlayerMidiPlayer_FMTowns_create (SciVersion version)
 
MidiPlayerMidiPlayer_PC9801_create (SciVersion version)
 
uint16 READ_SCIENDIAN_UINT16 (const void *ptr)
 
void WRITE_SCIENDIAN_UINT16 (void *ptr, uint16 val)
 
uint16 READ_SCI11ENDIAN_UINT16 (const void *ptr)
 
uint32 READ_SCI11ENDIAN_UINT32 (const void *ptr)
 
void WRITE_SCI11ENDIAN_UINT16 (void *ptr, uint16 val)
 
void WRITE_SCI11ENDIAN_UINT32 (void *ptr, uint32 val)
 
uint16 READ_SCI32ENDIAN_UINT16 (const void *ptr)
 

Variables

int g_debug_sleeptime_factor
 
int g_debug_simulated_key
 
bool g_debug_track_mouse_clicks
 
const GameIdStrToEnum gameIdStrToEnum []
 
const ADExtraGuiOptionsMap optionsList []
 
const PopUpOptionsMap popUpOptionsList []
 
const char * opcodeNames []
 
const reg_t NULL_REG
 
const reg_t SIGNAL_REG
 
const reg_t TRUE_REG
 
const SciWorkaroundEntry arithmeticWorkarounds []
 
const SciWorkaroundEntry uninitializedReadWorkarounds []
 
const SciWorkaroundEntry uninitializedReadForParamWorkarounds []
 
const SciWorkaroundEntry kAbs_workarounds []
 
const SciWorkaroundEntry kAnimate_workarounds []
 
const SciWorkaroundEntry kCelHigh_workarounds []
 
const SciWorkaroundEntry kCelWide_workarounds []
 
const SciWorkaroundEntry kDeviceInfo_workarounds []
 
const SciWorkaroundEntry kDisplay_workarounds []
 
const SciWorkaroundEntry kDirLoop_workarounds []
 
const SciWorkaroundEntry kDisposeScript_workarounds []
 
const SciWorkaroundEntry kDoAudioResume_workarounds []
 
const SciWorkaroundEntry kDoSoundPlay_workarounds []
 
const SciWorkaroundEntry kDoSoundFade_workarounds []
 
const SciWorkaroundEntry kFileIOOpen_workarounds []
 
const SciWorkaroundEntry kFileIOCheckFreeSpace_workarounds []
 
const SciWorkaroundEntry kFileIOReadString_workarounds []
 
const SciWorkaroundEntry kFindKey_workarounds []
 
const SciWorkaroundEntry kFrameOut_workarounds []
 
const SciWorkaroundEntry kDeleteKey_workarounds []
 
const SciWorkaroundEntry kGetAngle_workarounds []
 
const SciWorkaroundEntry kGetCWD_workarounds []
 
const SciWorkaroundEntry kGetSaveFiles_workarounds []
 
const SciWorkaroundEntry kGraphDrawLine_workarounds []
 
const SciWorkaroundEntry kGraphSaveBox_workarounds []
 
const SciWorkaroundEntry kGraphRestoreBox_workarounds []
 
const SciWorkaroundEntry kGraphUpdateBox_workarounds []
 
const SciWorkaroundEntry kGraphFillBoxForeground_workarounds []
 
const SciWorkaroundEntry kGraphFillBoxAny_workarounds []
 
const SciWorkaroundEntry kGraphRedrawBox_workarounds []
 
const SciWorkaroundEntry kIsObject_workarounds []
 
const SciWorkaroundEntry kListAt_workarounds []
 
const SciWorkaroundEntry kLock_workarounds []
 
const SciWorkaroundEntry kMemory_workarounds []
 
const SciWorkaroundEntry kMoveCursor_workarounds []
 
const SciWorkaroundEntry kNewWindow_workarounds []
 
const SciWorkaroundEntry kPalVarySetVary_workarounds []
 
const SciWorkaroundEntry kPalVarySetPercent_workarounds []
 
const SciWorkaroundEntry kPalVarySetStart_workarounds []
 
const SciWorkaroundEntry kPalVaryMergeStart_workarounds []
 
const SciWorkaroundEntry kPlatform32_workarounds []
 
const SciWorkaroundEntry kRandom_workarounds []
 
const SciWorkaroundEntry kReadNumber_workarounds []
 
const SciWorkaroundEntry kPaletteUnsetFlag_workarounds []
 
const SciWorkaroundEntry kSetCursor_workarounds []
 
const SciWorkaroundEntry kArraySetElements_workarounds []
 
const SciWorkaroundEntry kArrayFill_workarounds []
 
const SciWorkaroundEntry kSetPort_workarounds []
 
const SciWorkaroundEntry kStrAt_workarounds []
 
const SciWorkaroundEntry kStrCpy_workarounds []
 
const SciWorkaroundEntry kStrLen_workarounds []
 
const SciWorkaroundEntry kUnLoad_workarounds []
 
const SciWorkaroundEntry kWait_workarounds []
 
const SciWorkaroundEntry kStringNew_workarounds []
 
const SciWorkaroundEntry kScrollWindowAdd_workarounds []
 
SciEngineg_sci
 
Mt32ToGmMapListMt32dynamicMappings
 

Detailed Description

This is the namespace of the SCI engine.

Status of this engine: Awesome

Games using this engine:

  • Newer Sierra adventure games (based on FreeSCI)

See detection.h for the full list of games.

Enumeration Type Documentation

◆ BreakpointType

Enumerator
BREAK_SELECTOREXEC 

Break when a selector is executed. Data contains selector name (in the format Object::Method)

BREAK_EXPORT 

Break when an exported function is called. _address contains script_no << 16 | export_no.

◆ SciVersion

SCI versions For more information, check here: https://wiki.scummvm.org/index.php/Sierra_Game_Versions#SCI_Games

◆ kMidiMode

MIDI devices

◆ anonymous enum

anonymous enum
Enumerator
kMaxSaveNameLength 

Maximum length of a savegame name (excluding terminator character)

kMaxNumSaveGames 

Maximum number of savegames.

◆ anonymous enum

anonymous enum
Enumerator
kAutoSaveId 

The save game slot number for autosaves.

kNewGameId 

The save game slot number for a "new game" save.

◆ ScriptLoadType

Parameters for getScriptSegment().

Enumerator
SCRIPT_GET_DONT_LOAD 

Fail if not loaded

SCRIPT_GET_LOAD 

Load, if necessary

SCRIPT_GET_LOCK 

Load, if necessary, and lock

◆ SelectorType

Types of selectors as returned by lookupSelector() below.

◆ anonymous enum

anonymous enum

Number of kernel calls in between gcs; should be < 50000

◆ anonymous enum

anonymous enum
Enumerator
SIGNAL_OFFSET 

Special reg_t 'offset' used to indicate an error, or that an operation has finished (depending on the case).

See also
SIGNAL_REG

◆ anonymous enum

anonymous enum
Enumerator
NULL_SELECTOR 

Special 'selector' value, used when calling add_exec_stack_entry.

◆ anonymous enum

anonymous enum
Enumerator
kCelScalerTableSize 

The maximum size of a row/column of scaled pixel data.

◆ controlStateFlags

Enumerator
SCI_CONTROLS_STYLE_ENABLED 

enabled buttons

SCI_CONTROLS_STYLE_DISABLED 

grayed out buttons

SCI_CONTROLS_STYLE_SELECTED 

widgets surrounded by a frame

SCI_CONTROLS_STYLE_MAC_INVERTED 

control is inverted (mac-only for hi-res fonts)

◆ anonymous enum

anonymous enum
Enumerator
kResourceHeaderSize 

patch type + header size

SCI_MAX_RESOURCE_SIZE 

The maximum allowed size for a compressed or decompressed resource

◆ ResourceStatus

Resource status types

Enumerator
kResStatusEnqueued 

In the LRU queue

kResStatusLocked 

Allocated and in use

◆ ResourceErrorCodes

Resource error codes. Should be in sync with s_errorDescriptions

Enumerator
SCI_ERROR_RESMAP_INVALID_ENTRY 

Invalid resource.map entry

SCI_ERROR_NO_RESOURCE_FILES_FOUND 

No resource at all was found

SCI_ERROR_DECOMPRESSION_ERROR 

sanity checks failed during decompression

SCI_ERROR_RESOURCE_TOO_BIG 

Resource size exceeds SCI_MAX_RESOURCE_SIZE

◆ anonymous enum

anonymous enum
Enumerator
MAX_OPENED_VOLUMES 

Max number of simultaneously opened volumes.

◆ ResSourceType

Enumerator
kSourceDirectory 

Directories containing game resources/patches.

kSourcePatch 

External resource patches.

kSourceVolume 

Game resources (resource.* or ressci.*)

kSourceExtMap 

Non-audio resource maps.

kSourceIntMap 

SCI1.1 and later audio resource maps.

kSourceAudioVolume 

Audio resources - resource.sfx / resource.aud.

kSourceExtAudioMap 

SCI1 audio resource maps.

kSourceWave 

External WAVE files, patched in as sound resources.

kSourceMacResourceFork 

Mac SCI1.1 and later resource forks.

kSourceChunk 

Script chunk resources (*.chk)

kSourceScummVM 

Built-in resource patcher.

◆ kDebugLevels

Engine debug levels

◆ kLanguage

Supported languages

◆ AudioChannelIndex

Special audio channel indexes used to select a channel for digital audio playback.

Function Documentation

◆ findAllActiveReferences()

AddrSet* Sci::findAllActiveReferences ( EngineState s)

Finds all used references and normalises them to their memory addresses

Parameters
sThe state to gather all information from
Returns
A hash map containing entries for all used references

◆ run_gc()

void Sci::run_gc ( EngineState s)

Runs garbage collection on the current system state

Parameters
sThe state in which we should gc

◆ gamestate_save() [1/2]

bool Sci::gamestate_save ( EngineState s,
int  saveId,
const Common::String savename,
const Common::String version 
)

Saves a game state to the hard disk in a portable way.

Parameters
sThe state to save
saveIdThe id of the savegame
savenameThe description of the savegame
versionThe version string of the game
Returns
true on success, false otherwise

◆ gamestate_save() [2/2]

bool Sci::gamestate_save ( EngineState s,
Common::WriteStream save,
const Common::String savename,
const Common::String version 
)

Saves a game state to the hard disk in a portable way.

Parameters
sThe state to save
saveThe stream to save to
savenameThe description of the savegame
versionThe version string of the game
Returns
true on success, false otherwise

◆ gamestate_restore() [1/2]

bool Sci::gamestate_restore ( EngineState s,
int  saveId 
)

Restores a game state from a directory.

Parameters
sAn older state from the same game
saveIdThe id of the savegame to restore from
Returns
true on success, false otherwise

◆ gamestate_restore() [2/2]

void Sci::gamestate_restore ( EngineState s,
Common::SeekableReadStream save 
)

Restores a game state from a directory.

Parameters
sAn older state from the same game
saveThe stream to restore from

◆ get_savegame_metadata()

bool Sci::get_savegame_metadata ( Common::SeekableReadStream stream,
SavegameMetadata meta 
)

Read the header from a savegame.

◆ set_savegame_metadata()

void Sci::set_savegame_metadata ( Common::Serializer ser,
Common::WriteStream fh,
const Common::String savename,
const Common::String version 
)

Write the header to a savegame.

◆ readSelector()

reg_t Sci::readSelector ( SegManager segMan,
reg_t  object,
Selector  selectorId 
)

Retrieves a selector from an object.

Parameters
segManthe segment mananger
<em>obj</em>the address of the object which the selector should be read from
<em>slc</em>the selector to refad
Returns
the selector value as a reg_t This macro halts on error. 'selector' must be a selector name registered in vm.h's SelectorCache and mapped in script.cpp.

◆ writeSelector()

void Sci::writeSelector ( SegManager segMan,
reg_t  object,
Selector  selectorId,
reg_t  value 
)

Writes a selector value to an object.

Parameters
segManthe segment mananger
<em>obj</em>the address of the object which the selector should be written to
<em>slc</em>the selector to read
<em>val</em>the value to write This macro halts on error. 'selector' must be a selector name registered in vm.h's SelectorCache and mapped in script.cpp.

◆ invokeSelector()

void Sci::invokeSelector ( EngineState s,
reg_t  object,
int  selectorId,
int  k_argc,
StackPtr  k_argp,
int  argc = 0,
const reg_t argv = 0 
)

Invokes a selector from an object.

◆ execute_method()

ExecStack* Sci::execute_method ( EngineState s,
uint16  script,
uint16  pubfunct,
StackPtr  sp,
reg_t  calling_obj,
uint16  argc,
StackPtr  argp 
)

Executes function pubfunct of the specified script.

Parameters
[in]sThe state which is to be executed with
[in]scriptThe script which is called
[in]pubfunctThe exported script function which is to be called
[in]spStack pointer position
[in]calling_objThe heap address of the object that executed the call
[in]argcNumber of arguments supplied
[in]argpPointer to the first supplied argument
Returns
A pointer to the new exec stack TOS entry

◆ send_selector()

ExecStack* Sci::send_selector ( EngineState s,
reg_t  send_obj,
reg_t  work_obj,
StackPtr  sp,
int  framesize,
StackPtr  argp 
)

Executes a "send" or related operation to a selector.

Parameters
[in]sThe EngineState to operate on
[in]send_objHeap address of the object to send to
[in]work_objHeap address of the object initiating the send
[in]spStack pointer position
[in]framesizeSize of the send as determined by the "send" operation
[in]argpPointer to the beginning of the heap block containing the data to be sent. This area is a succession of one or more sequences of [selector_number][argument_counter] and then "argument_counter" word entries with the parameter values.
Returns
A pointer to the new execution stack TOS entry

◆ run_vm()

void Sci::run_vm ( EngineState s)

This function executes SCI bytecode It executes the code on s->heap[pc] until it hits a 'ret' operation while (stack_base == stack_pos). Requires s to be set up correctly.

Parameters
[in]sThe state to use

◆ lookupSelector()

SelectorType Sci::lookupSelector ( SegManager segMan,
reg_t  obj,
Selector  selectorid,
ObjVarRef varp,
reg_t fptr 
)

Looks up a selector and returns its type and value varindex is written to iff it is non-NULL and the selector indicates a property of the object.

Parameters
[in]segManThe Segment Manager
[in]objAddress of the object to look the selector up in
[in]selectoridThe selector to look up
[out]varpA reference to the selector, if it is a variable.
[out]fptrA reference to the function described by that selector, if it is a valid function selector. fptr is written to iff it is non-NULL and the selector indicates a member function of that object.
Returns
kSelectorNone if the selector was not found in the object or its superclasses. kSelectorVariable if the selector represents an object-relative variable. kSelectorMethod if the selector represents a method

◆ readPMachineInstruction()

int Sci::readPMachineInstruction ( const byte *  src,
byte &  extOpcode,
int16  opparams[4] 
)

Read a PMachine instruction from a memory buffer and return its length.

Parameters
[in]srcaddress from which to start parsing
[out]extOpcode"extended" opcode of the parsed instruction
[out]opparamsparameter for the parsed instruction
Returns
the length in bytes of the instruction

◆ findOffset()

uint32 Sci::findOffset ( const int16  relOffset,
const Script scr,
const uint32  pcOffset 
)

Finds the script-absolute offset of a relative object offset.

Parameters
[in]relOffsetthe relative object offset
[in]scrthe owner script object, used by SCI1.1+
[in]pcOffsetthe offset of the program counter, used by SCI0early and SCI3

◆ vocab_dump_parse_tree()

void Sci::vocab_dump_parse_tree ( const char *  tree_name,
ParseTreeNode nodes 
)

Prints a parse tree.

Parameters
tree_nameName of the tree to dump (free-form)
nodesThe nodes containing the parse tree

◆ said()

int Sci::said ( const byte *  spec,
bool  verbose 
)

Builds a parse tree from a spec and compares it to a parse tree.

Parameters
specPointer to the spec to build
verboseWhether to display the parse tree after building it
Returns
1 on a match, 0 otherwise

◆ getSciVersionForDetection()

SciVersion Sci::getSciVersionForDetection ( )

Same as Sci::getSciVersion, but this version doesn't assert on unknown SCI versions. Only used by the fallback detector.

◆ getSciVersionDesc()

const char* Sci::getSciVersionDesc ( SciVersion  version)

Convenience function converting an SCI version into a human-readable string.

Variable Documentation

◆ g_sci

SciEngine* Sci::g_sci

Global instance of the SciEngine class, similar to g_engine. This is a hackish way to make all central components available everywhere. Ideally, we would get rid of this again in the future, but for now it's a pragmatic and simple way to achieve the goal.