diff options
Diffstat (limited to 'engines/sci/engine/kernel.h')
-rw-r--r-- | engines/sci/engine/kernel.h | 285 |
1 files changed, 137 insertions, 148 deletions
diff --git a/engines/sci/engine/kernel.h b/engines/sci/engine/kernel.h index 9d20a99b58..bb88fab45c 100644 --- a/engines/sci/engine/kernel.h +++ b/engines/sci/engine/kernel.h @@ -44,12 +44,13 @@ struct List; // from vm.h //#define DEBUG_PARSER // enable for parser debugging /* Generic description: */ -typedef reg_t KernelFunc(EngineState *s, int, int argc, reg_t *argv); +typedef reg_t KernelFunc(EngineState *s, int argc, reg_t *argv); struct KernelFuncWithSignature { KernelFunc *fun; /**< The actual function */ const char *signature; /**< KernelFunc signature */ Common::String orig_name; /**< Original name, in case we couldn't map it */ + bool isDummy; }; enum AutoDetectedFeatures { @@ -187,13 +188,8 @@ enum SelectorInvocation { */ -enum { - // FIXME: FAKE_FUNCT_NR is a hack used to substitute for an opcode number in certain places - FAKE_FUNCT_NR = -1 -}; - #define INV_SEL(_object_, _selector_, _noinvalid_) \ - s, _object_, s->_kernel->_selectorCache._selector_, _noinvalid_, FAKE_FUNCT_NR, argv, argc, __FILE__, __LINE__ + s, _object_, s->_kernel->_selectorCache._selector_, _noinvalid_, argv, argc, __FILE__, __LINE__ /* Kludge for use with invoke_selector(). Used for compatibility with compilers that can't ** handle vararg macros. */ @@ -201,7 +197,7 @@ enum { reg_t read_selector(SegManager *segMan, reg_t object, Selector selector_id, const char *fname, int line); void write_selector(SegManager *segMan, reg_t object, Selector selector_id, reg_t value, const char *fname, int line); -int invoke_selector(EngineState *s, reg_t object, int selector_id, SelectorInvocation noinvalid, int kfunct, +int invoke_selector(EngineState *s, reg_t object, int selector_id, SelectorInvocation noinvalid, StackPtr k_argp, int k_argc, const char *fname, int line, int argc, ...); @@ -326,146 +322,139 @@ enum { /******************** Kernel functions ********************/ // New kernel functions -reg_t kStrLen(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetFarText(EngineState *s, int, int argc, reg_t *argv); -reg_t kReadNumber(EngineState *s, int, int argc, reg_t *argv); -reg_t kStrCat(EngineState *s, int, int argc, reg_t *argv); -reg_t kStrCmp(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetSynonyms(EngineState *s, int, int argc, reg_t *argv); -reg_t kLock(EngineState *s, int, int argc, reg_t *argv); -reg_t kPalette(EngineState *s, int, int argc, reg_t *argv); -reg_t kNumCels(EngineState *s, int, int argc, reg_t *argv); -reg_t kNumLoops(EngineState *s, int, int argc, reg_t *argv); -reg_t kDrawCel(EngineState *s, int, int argc, reg_t *argv); -reg_t kCoordPri(EngineState *s, int, int argc, reg_t *argv); -reg_t kPriCoord(EngineState *s, int, int argc, reg_t *argv); -reg_t kShakeScreen(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetCursor(EngineState *s, int, int argc, reg_t *argv); -reg_t kMoveCursor(EngineState *s, int, int argc, reg_t *argv); -reg_t kShow(EngineState *s, int, int argc, reg_t *argv); -reg_t kPicNotValid(EngineState *s, int, int argc, reg_t *argv); -reg_t kOnControl(EngineState *s, int, int argc, reg_t *argv); -reg_t kDrawPic(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetPort(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetPort(EngineState *s, int, int argc, reg_t *argv); -reg_t kNewWindow(EngineState *s, int, int argc, reg_t *argv); -reg_t kDisposeWindow(EngineState *s, int, int argc, reg_t *argv); -reg_t kCelWide(EngineState *s, int, int argc, reg_t *argv); -reg_t kCelHigh(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetJump(EngineState *s, int, int argc, reg_t *argv); -reg_t kDirLoop(EngineState *s, int, int argc, reg_t *argv); -reg_t kDoAvoider(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetAngle(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetDistance(EngineState *s, int, int argc, reg_t *argv); -reg_t kRandom(EngineState *s, int, int argc, reg_t *argv); -reg_t kAbs(EngineState *s, int, int argc, reg_t *argv); -reg_t kSqrt(EngineState *s, int, int argc, reg_t *argv); -reg_t kTimesSin(EngineState *s, int, int argc, reg_t *argv); -reg_t kTimesCos(EngineState *s, int, int argc, reg_t *argv); -reg_t kCosMult(EngineState *s, int, int argc, reg_t *argv); -reg_t kSinMult(EngineState *s, int, int argc, reg_t *argv); -reg_t kTimesTan(EngineState *s, int, int argc, reg_t *argv); -reg_t kTimesCot(EngineState *s, int, int argc, reg_t *argv); -reg_t kCosDiv(EngineState *s, int, int argc, reg_t *argv); -reg_t kSinDiv(EngineState *s, int, int argc, reg_t *argv); -reg_t kValidPath(EngineState *s, int, int argc, reg_t *argv); -reg_t kFOpen(EngineState *s, int, int argc, reg_t *argv); -reg_t kFPuts(EngineState *s, int, int argc, reg_t *argv); -reg_t kFGets(EngineState *s, int, int argc, reg_t *argv); -reg_t kFClose(EngineState *s, int, int argc, reg_t *argv); -reg_t kMapKeyToDir(EngineState *s, int, int argc, reg_t *argv); -reg_t kGlobalToLocal(EngineState *s, int, int argc, reg_t *argv); -reg_t kLocalToGlobal(EngineState *s, int, int argc, reg_t *argv); -reg_t kWait(EngineState *s, int, int argc, reg_t *argv); -reg_t kRestartGame(EngineState *s, int, int argc, reg_t *argv); -reg_t kDeviceInfo(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetEvent(EngineState *s, int, int argc, reg_t *argv); -reg_t kCheckFreeSpace(EngineState *s, int, int argc, reg_t *argv); -reg_t kFlushResources(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetSaveFiles(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetDebug(EngineState *s, int, int argc, reg_t *argv); -reg_t kCheckSaveGame(EngineState *s, int, int argc, reg_t *argv); -reg_t kSaveGame(EngineState *s, int, int argc, reg_t *argv); -reg_t kRestoreGame(EngineState *s, int, int argc, reg_t *argv); -reg_t kFileIO(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetTime(EngineState *s, int, int argc, reg_t *argv); -reg_t kHaveMouse(EngineState *s, int, int argc, reg_t *argv); -reg_t kJoystick(EngineState *s, int, int argc, reg_t *argv); -reg_t kGameIsRestarting(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetCWD(EngineState *s, int, int argc, reg_t *argv); -reg_t kSort(EngineState *s, int, int argc, reg_t *argv); -reg_t kStrEnd(EngineState *s, int, int argc, reg_t *argv); -reg_t kMemory(EngineState *s, int, int argc, reg_t *argv); -reg_t kAvoidPath(EngineState *s, int, int argc, reg_t *argv); -reg_t kParse(EngineState *s, int, int argc, reg_t *argv); -reg_t kSaid(EngineState *s, int, int argc, reg_t *argv); -reg_t kStrCpy(EngineState *s, int, int argc, reg_t *argv); -reg_t kStrAt(EngineState *s, int, int argc, reg_t *argv); -reg_t kEditControl(EngineState *s, int, int argc, reg_t *argv); -reg_t kDrawControl(EngineState *s, int, int argc, reg_t *argv); -reg_t kHiliteControl(EngineState *s, int, int argc, reg_t *argv); -reg_t kClone(EngineState *s, int, int argc, reg_t *argv); -reg_t kDisposeClone(EngineState *s, int, int argc, reg_t *argv); -reg_t kCanBeHere(EngineState *s, int, int argc, reg_t *argv); -reg_t kCantBeHere(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetNowSeen(EngineState *s, int, int argc, reg_t *argv); -reg_t kInitBresen(EngineState *s, int, int argc, reg_t *argv); -reg_t kDoBresen(EngineState *s, int, int argc, reg_t *argv); -reg_t kBaseSetter(EngineState *s, int, int argc, reg_t *argv); -reg_t kAddToPic(EngineState *s, int, int argc, reg_t *argv); -reg_t kAnimate(EngineState *s, int, int argc, reg_t *argv); -reg_t kDisplay(EngineState *s, int, int argc, reg_t *argv); -reg_t kGraph(EngineState *s, int, int argc, reg_t *argv); -reg_t kFormat(EngineState *s, int, int argc, reg_t *argv); -reg_t kDoSound(EngineState *s, int, int argc, reg_t *argv); -reg_t kAddMenu(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetMenu(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetMenu(EngineState *s, int, int argc, reg_t *argv); -reg_t kDrawStatus(EngineState *s, int, int argc, reg_t *argv); -reg_t kDrawMenuBar(EngineState *s, int, int argc, reg_t *argv); -reg_t kMenuSelect(EngineState *s, int, int argc, reg_t *argv); - -reg_t kLoad(EngineState *s, int, int argc, reg_t *argv); -reg_t kUnLoad(EngineState *s, int, int argc, reg_t *argv); -reg_t kScriptID(EngineState *s, int, int argc, reg_t *argv); -reg_t kDisposeScript(EngineState *s, int, int argc, reg_t *argv); -reg_t kIsObject(EngineState *s, int, int argc, reg_t *argv); -reg_t kRespondsTo(EngineState *s, int, int argc, reg_t *argv); -reg_t kNewList(EngineState *s, int, int argc, reg_t *argv); -reg_t kDisposeList(EngineState *s, int, int argc, reg_t *argv); -reg_t kNewNode(EngineState *s, int, int argc, reg_t *argv); -reg_t kFirstNode(EngineState *s, int, int argc, reg_t *argv); -reg_t kLastNode(EngineState *s, int, int argc, reg_t *argv); -reg_t kEmptyList(EngineState *s, int, int argc, reg_t *argv); -reg_t kNextNode(EngineState *s, int, int argc, reg_t *argv); -reg_t kPrevNode(EngineState *s, int, int argc, reg_t *argv); -reg_t kNodeValue(EngineState *s, int, int argc, reg_t *argv); -reg_t kAddAfter(EngineState *s, int, int argc, reg_t *argv); -reg_t kAddToFront(EngineState *s, int, int argc, reg_t *argv); -reg_t kAddToEnd(EngineState *s, int, int argc, reg_t *argv); -reg_t kFindKey(EngineState *s, int, int argc, reg_t *argv); -reg_t kDeleteKey(EngineState *s, int, int argc, reg_t *argv); -reg_t kMemoryInfo(EngineState *s, int, int argc, reg_t *argv); -reg_t kGetSaveDir(EngineState *s, int, int argc, reg_t *argv); -reg_t kTextSize(EngineState *s, int, int argc, reg_t *argv); -reg_t kIsItSkip(EngineState *s, int, int argc, reg_t *argv); -reg_t kMessage(EngineState *s, int, int argc, reg_t *argv); -reg_t kDoAudio(EngineState *s, int, int argc, reg_t *argv); -reg_t kDoSync(EngineState *s, int, int argc, reg_t *argv); -reg_t kResCheck(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetQuitStr(EngineState *s, int, int argc, reg_t *argv); -reg_t kShowMovie(EngineState *s, int, int argc, reg_t *argv); -reg_t kSetVideoMode(EngineState *s, int, int argc, reg_t *argv); -reg_t kStrSplit(EngineState *s, int, int argc, reg_t *argv); -reg_t kPlatform(EngineState *s, int, int argc, reg_t *argv); -reg_t kPalVary(EngineState *s, int, int argc, reg_t *argv); - -// for unknown/unnamed kernel function -reg_t kUnknown(EngineState *s, int, int argc, reg_t *argv); - -// for named but unimplemented kernel functions -reg_t kStub(EngineState *s, int, int argc, reg_t *argv); - +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 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 kShow(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 kFOpen(EngineState *s, int argc, reg_t *argv); +reg_t kFPuts(EngineState *s, int argc, reg_t *argv); +reg_t kFGets(EngineState *s, int argc, reg_t *argv); +reg_t kFClose(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 kRestartGame(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 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 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 kPalVary(EngineState *s, int argc, reg_t *argv); } // End of namespace Sci |