diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp index f804ce04265..40ee003cdee 100644 --- a/engines/sci/engine/kernel.cpp +++ b/engines/sci/engine/kernel.cpp @@ -215,7 +215,8 @@ struct SciKernelMapEntry { byte forPlatform; const char *signature; - const char *subSignature; // placeholder + const char *subSignatures; // placeholder + const char *workarounds; // placeholder }; #define SIG_SCIALL SCI_VERSION_NONE, SCI_VERSION_NONE @@ -235,189 +236,189 @@ struct SciKernelMapEntry { #define MAP_CALL(_name_) #_name_, k##_name_ -// name, version, platf., function, signature, subfunction-signatures +// name, version/platform, signature, sub-signatures, workarounds static SciKernelMapEntry s_kernelMap[] = { - { MAP_CALL(Load), SIG_EVERYWHERE, "iii*", NULL }, - { MAP_CALL(UnLoad), SIG_EVERYWHERE, "i.*", NULL }, + { MAP_CALL(Load), SIG_EVERYWHERE, "iii*", NULL, NULL }, + { MAP_CALL(UnLoad), SIG_EVERYWHERE, "i.*", NULL, NULL }, // ^^ FIXME - Work around SQ1 bug, when exiting the Ulence flats bar - { MAP_CALL(ScriptID), SIG_EVERYWHERE, "Ioi*", NULL }, - { MAP_CALL(DisposeScript), SIG_EVERYWHERE, "Oii*", NULL }, + { MAP_CALL(ScriptID), SIG_EVERYWHERE, "Ioi*", NULL, NULL }, + { MAP_CALL(DisposeScript), SIG_EVERYWHERE, "Oii*", NULL, NULL }, // ^^ FIXME - Work around QfG1 bug - { MAP_CALL(Clone), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(DisposeClone), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(IsObject), SIG_EVERYWHERE, ".", NULL }, - { MAP_CALL(RespondsTo), SIG_EVERYWHERE, ".i", NULL }, - { MAP_CALL(DrawPic), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(PicNotValid), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(Animate), SIG_EVERYWHERE, "LI*", NULL }, + { MAP_CALL(Clone), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(DisposeClone), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(IsObject), SIG_EVERYWHERE, ".", NULL, NULL }, + { MAP_CALL(RespondsTo), SIG_EVERYWHERE, ".i", NULL, NULL }, + { MAP_CALL(DrawPic), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(PicNotValid), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(Animate), SIG_EVERYWHERE, "LI*", NULL, NULL }, // ^^ FIXME - More like (li?)? - { MAP_CALL(SetNowSeen), SIG_EVERYWHERE, "oi*", NULL }, + { MAP_CALL(SetNowSeen), SIG_EVERYWHERE, "oi*", NULL, NULL }, // ^^ FIXME - The second parameter is ignored - { MAP_CALL(NumLoops), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(NumCels), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(CelWide), SIG_EVERYWHERE, "iOi*", NULL }, - { MAP_CALL(CelHigh), SIG_EVERYWHERE, "iOi*", NULL }, - { MAP_CALL(DrawCel), SIG_EVERYWHERE, "iiiiii*i*r*", NULL }, - { MAP_CALL(AddToPic), SIG_EVERYWHERE, "Il*", NULL }, - { MAP_CALL(NewWindow), SIG_SCIALL, SIGFOR_MAC, "*.", NULL }, - { MAP_CALL(NewWindow), SIG_EVERYWHERE, "iiiiZRi*", NULL }, - { MAP_CALL(GetPort), SIG_EVERYWHERE, "", NULL }, - { MAP_CALL(SetPort), SIG_EVERYWHERE, "ii*", NULL }, - { MAP_CALL(DisposeWindow), SIG_EVERYWHERE, "ii*", NULL }, - { MAP_CALL(DrawControl), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(HiliteControl), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(EditControl), SIG_EVERYWHERE, "ZoZo", NULL }, - { MAP_CALL(TextSize), SIG_EVERYWHERE, "rZrii*r*", NULL }, - { MAP_CALL(Display), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(GetEvent), SIG_EVERYWHERE, "ioi*", NULL }, + { MAP_CALL(NumLoops), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(NumCels), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(CelWide), SIG_EVERYWHERE, "iOi*", NULL, NULL }, + { MAP_CALL(CelHigh), SIG_EVERYWHERE, "iOi*", NULL, NULL }, + { MAP_CALL(DrawCel), SIG_EVERYWHERE, "iiiiii*i*r*", NULL, NULL }, + { MAP_CALL(AddToPic), SIG_EVERYWHERE, "Il*", NULL, NULL }, + { MAP_CALL(NewWindow), SIG_SCIALL, SIGFOR_MAC, "*.", NULL, NULL }, + { MAP_CALL(NewWindow), SIG_EVERYWHERE, "iiiiZRi*", NULL, NULL }, + { MAP_CALL(GetPort), SIG_EVERYWHERE, "", NULL, NULL }, + { MAP_CALL(SetPort), SIG_EVERYWHERE, "ii*", NULL, NULL }, + { MAP_CALL(DisposeWindow), SIG_EVERYWHERE, "ii*", NULL, NULL }, + { MAP_CALL(DrawControl), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(HiliteControl), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(EditControl), SIG_EVERYWHERE, "ZoZo", NULL, NULL }, + { MAP_CALL(TextSize), SIG_EVERYWHERE, "rZrii*r*", NULL, NULL }, + { MAP_CALL(Display), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(GetEvent), SIG_EVERYWHERE, "ioi*", NULL, NULL }, // ^^ FIXME Mac versions pass an extra 3rd parameter (ignored - always 0?) - { MAP_CALL(GlobalToLocal), SIG_EVERYWHERE, "oo*", NULL }, - { MAP_CALL(LocalToGlobal), SIG_EVERYWHERE, "oo*", NULL }, - { MAP_CALL(MapKeyToDir), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(DrawMenuBar), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(MenuSelect), SIG_EVERYWHERE, "oi*", NULL }, - { MAP_CALL(AddMenu), SIG_EVERYWHERE, "rr", NULL }, - { MAP_CALL(DrawStatus), SIG_EVERYWHERE, "Zri*", NULL }, - { MAP_CALL(Parse), SIG_EVERYWHERE, "ro", NULL }, - { MAP_CALL(Said), SIG_EVERYWHERE, "Zr", NULL }, - { MAP_CALL(SetSynonyms), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(HaveMouse), SIG_EVERYWHERE, "", NULL }, - { MAP_CALL(SetCursor), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(MoveCursor), SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(FOpen), SIG_EVERYWHERE, "ri", NULL }, - { MAP_CALL(FPuts), SIG_EVERYWHERE, "ir", NULL }, - { MAP_CALL(FGets), SIG_EVERYWHERE, "rii", NULL }, - { MAP_CALL(FClose), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(SaveGame), SIG_EVERYWHERE, "rirr*", NULL }, - { MAP_CALL(RestoreGame), SIG_EVERYWHERE, "rir*", NULL }, - { MAP_CALL(RestartGame), SIG_EVERYWHERE, "", NULL }, - { MAP_CALL(GameIsRestarting), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(DoSound), SIG_EVERYWHERE, "iIo*", NULL }, - { MAP_CALL(NewList), SIG_EVERYWHERE, "", NULL }, - { MAP_CALL(DisposeList), SIG_EVERYWHERE, "l", NULL }, - { MAP_CALL(NewNode), SIG_EVERYWHERE, "..", NULL }, - { MAP_CALL(FirstNode), SIG_EVERYWHERE, "Zl", NULL }, - { MAP_CALL(LastNode), SIG_EVERYWHERE, "l", NULL }, - { MAP_CALL(EmptyList), SIG_EVERYWHERE, "l", NULL }, - { MAP_CALL(NextNode), SIG_EVERYWHERE, "n", NULL }, - { MAP_CALL(PrevNode), SIG_EVERYWHERE, "n", NULL }, - { MAP_CALL(NodeValue), SIG_EVERYWHERE, "Zn", NULL }, - { MAP_CALL(AddAfter), SIG_EVERYWHERE, "lnn", NULL }, - { MAP_CALL(AddToFront), SIG_EVERYWHERE, "ln", NULL }, - { MAP_CALL(AddToEnd), SIG_EVERYWHERE, "ln", NULL }, - { MAP_CALL(FindKey), SIG_EVERYWHERE, "l.", NULL }, - { MAP_CALL(DeleteKey), SIG_EVERYWHERE, "l.", NULL }, - { MAP_CALL(Random), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(Abs), SIG_EVERYWHERE, "Oi", NULL }, - { MAP_CALL(Sqrt), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(GetAngle), SIG_EVERYWHERE, "iiiii*", NULL }, + { MAP_CALL(GlobalToLocal), SIG_EVERYWHERE, "oo*", NULL, NULL }, + { MAP_CALL(LocalToGlobal), SIG_EVERYWHERE, "oo*", NULL, NULL }, + { MAP_CALL(MapKeyToDir), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(DrawMenuBar), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(MenuSelect), SIG_EVERYWHERE, "oi*", NULL, NULL }, + { MAP_CALL(AddMenu), SIG_EVERYWHERE, "rr", NULL, NULL }, + { MAP_CALL(DrawStatus), SIG_EVERYWHERE, "Zri*", NULL, NULL }, + { MAP_CALL(Parse), SIG_EVERYWHERE, "ro", NULL, NULL }, + { MAP_CALL(Said), SIG_EVERYWHERE, "Zr", NULL, NULL }, + { MAP_CALL(SetSynonyms), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(HaveMouse), SIG_EVERYWHERE, "", NULL, NULL }, + { MAP_CALL(SetCursor), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(MoveCursor), SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(FOpen), SIG_EVERYWHERE, "ri", NULL, NULL }, + { MAP_CALL(FPuts), SIG_EVERYWHERE, "ir", NULL, NULL }, + { MAP_CALL(FGets), SIG_EVERYWHERE, "rii", NULL, NULL }, + { MAP_CALL(FClose), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(SaveGame), SIG_EVERYWHERE, "rirr*", NULL, NULL }, + { MAP_CALL(RestoreGame), SIG_EVERYWHERE, "rir*", NULL, NULL }, + { MAP_CALL(RestartGame), SIG_EVERYWHERE, "", NULL, NULL }, + { MAP_CALL(GameIsRestarting), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(DoSound), SIG_EVERYWHERE, "iIo*", NULL, NULL }, + { MAP_CALL(NewList), SIG_EVERYWHERE, "", NULL, NULL }, + { MAP_CALL(DisposeList), SIG_EVERYWHERE, "l", NULL, NULL }, + { MAP_CALL(NewNode), SIG_EVERYWHERE, "..", NULL, NULL }, + { MAP_CALL(FirstNode), SIG_EVERYWHERE, "Zl", NULL, NULL }, + { MAP_CALL(LastNode), SIG_EVERYWHERE, "l", NULL, NULL }, + { MAP_CALL(EmptyList), SIG_EVERYWHERE, "l", NULL, NULL }, + { MAP_CALL(NextNode), SIG_EVERYWHERE, "n", NULL, NULL }, + { MAP_CALL(PrevNode), SIG_EVERYWHERE, "n", NULL, NULL }, + { MAP_CALL(NodeValue), SIG_EVERYWHERE, "Zn", NULL, NULL }, + { MAP_CALL(AddAfter), SIG_EVERYWHERE, "lnn", NULL, NULL }, + { MAP_CALL(AddToFront), SIG_EVERYWHERE, "ln", NULL, NULL }, + { MAP_CALL(AddToEnd), SIG_EVERYWHERE, "ln", NULL, NULL }, + { MAP_CALL(FindKey), SIG_EVERYWHERE, "l.", NULL, NULL }, + { MAP_CALL(DeleteKey), SIG_EVERYWHERE, "l.", NULL, NULL }, + { MAP_CALL(Random), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(Abs), SIG_EVERYWHERE, "Oi", NULL, NULL }, + { MAP_CALL(Sqrt), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(GetAngle), SIG_EVERYWHERE, "iiiii*", NULL, NULL }, // ^^ FIXME - occasionally KQ6 passes a 5th argument by mistake - { MAP_CALL(GetDistance), SIG_EVERYWHERE, "iiiii*", NULL }, - { MAP_CALL(Wait), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(GetTime), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(StrEnd), SIG_EVERYWHERE, "r", NULL }, - { MAP_CALL(StrCat), SIG_EVERYWHERE, "rr", NULL }, - { MAP_CALL(StrCmp), SIG_EVERYWHERE, "rri*", NULL }, - { MAP_CALL(StrLen), SIG_EVERYWHERE, "Zr", NULL }, - { MAP_CALL(StrCpy), SIG_EVERYWHERE, "rZri*", NULL }, - { MAP_CALL(Format), SIG_EVERYWHERE, "r.*", NULL }, - { MAP_CALL(GetFarText), SIG_EVERYWHERE, "iiZr", NULL }, - { MAP_CALL(ReadNumber), SIG_EVERYWHERE, "r", NULL }, - { MAP_CALL(BaseSetter), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(DirLoop), SIG_EVERYWHERE, "oi", NULL }, - { MAP_CALL(CanBeHere), SIG_EVERYWHERE, "ol*", NULL }, - { MAP_CALL(CantBeHere), SIG_EVERYWHERE, "ol*", NULL }, - { MAP_CALL(OnControl), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(InitBresen), SIG_EVERYWHERE, "oi*", NULL }, - { MAP_CALL(DoBresen), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(DoAvoider), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(SetJump), SIG_EVERYWHERE, "oiii", NULL }, - { MAP_CALL(SetDebug), SIG_EVERYWHERE, "i*", NULL }, - { MAP_CALL(MemoryInfo), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(GetMenu), SIG_EVERYWHERE, "i.", NULL }, - { MAP_CALL(SetMenu), SIG_EVERYWHERE, "i.*", NULL }, - { MAP_CALL(GetSaveFiles), SIG_EVERYWHERE, "rrr", NULL }, - { MAP_CALL(GetCWD), SIG_EVERYWHERE, "r", NULL }, - { MAP_CALL(CheckFreeSpace), SIG_EVERYWHERE, "r.*", NULL }, - { MAP_CALL(ValidPath), SIG_EVERYWHERE, "r", NULL }, - { MAP_CALL(CoordPri), SIG_EVERYWHERE, "ii*", NULL }, - { MAP_CALL(StrAt), SIG_EVERYWHERE, "rii*", NULL }, - { MAP_CALL(DeviceInfo), SIG_EVERYWHERE, "i.*", NULL }, - { MAP_CALL(GetSaveDir), SIG_EVERYWHERE, ".*", NULL }, + { MAP_CALL(GetDistance), SIG_EVERYWHERE, "iiiii*", NULL, NULL }, + { MAP_CALL(Wait), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(GetTime), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(StrEnd), SIG_EVERYWHERE, "r", NULL, NULL }, + { MAP_CALL(StrCat), SIG_EVERYWHERE, "rr", NULL, NULL }, + { MAP_CALL(StrCmp), SIG_EVERYWHERE, "rri*", NULL, NULL }, + { MAP_CALL(StrLen), SIG_EVERYWHERE, "Zr", NULL, NULL }, + { MAP_CALL(StrCpy), SIG_EVERYWHERE, "rZri*", NULL, NULL }, + { MAP_CALL(Format), SIG_EVERYWHERE, "r.*", NULL, NULL }, + { MAP_CALL(GetFarText), SIG_EVERYWHERE, "iiZr", NULL, NULL }, + { MAP_CALL(ReadNumber), SIG_EVERYWHERE, "r", NULL, NULL }, + { MAP_CALL(BaseSetter), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(DirLoop), SIG_EVERYWHERE, "oi", NULL, NULL }, + { MAP_CALL(CanBeHere), SIG_EVERYWHERE, "ol*", NULL, NULL }, + { MAP_CALL(CantBeHere), SIG_EVERYWHERE, "ol*", NULL, NULL }, + { MAP_CALL(OnControl), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(InitBresen), SIG_EVERYWHERE, "oi*", NULL, NULL }, + { MAP_CALL(DoBresen), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(DoAvoider), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(SetJump), SIG_EVERYWHERE, "oiii", NULL, NULL }, + { MAP_CALL(SetDebug), SIG_EVERYWHERE, "i*", NULL, NULL }, + { MAP_CALL(MemoryInfo), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(GetMenu), SIG_EVERYWHERE, "i.", NULL, NULL }, + { MAP_CALL(SetMenu), SIG_EVERYWHERE, "i.*", NULL, NULL }, + { MAP_CALL(GetSaveFiles), SIG_EVERYWHERE, "rrr", NULL, NULL }, + { MAP_CALL(GetCWD), SIG_EVERYWHERE, "r", NULL, NULL }, + { MAP_CALL(CheckFreeSpace), SIG_EVERYWHERE, "r.*", NULL, NULL }, + { MAP_CALL(ValidPath), SIG_EVERYWHERE, "r", NULL, NULL }, + { MAP_CALL(CoordPri), SIG_EVERYWHERE, "ii*", NULL, NULL }, + { MAP_CALL(StrAt), SIG_EVERYWHERE, "rii*", NULL, NULL }, + { MAP_CALL(DeviceInfo), SIG_EVERYWHERE, "i.*", NULL, NULL }, + { MAP_CALL(GetSaveDir), SIG_EVERYWHERE, ".*", NULL, NULL }, // ^^ FIXME accepts a parameter in SCI2+ games - { MAP_CALL(CheckSaveGame), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(ShakeScreen), SIG_EVERYWHERE, "ii*", NULL }, - { MAP_CALL(FlushResources), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(TimesSin), SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(TimesCos), SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(Graph), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(Joystick), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(FileIO), SIG_EVERYWHERE, "i.*", NULL }, - { MAP_CALL(Memory), SIG_EVERYWHERE, "i.*", NULL }, - { MAP_CALL(Sort), SIG_EVERYWHERE, "ooo", NULL }, - { MAP_CALL(AvoidPath), SIG_EVERYWHERE, "ii.*", NULL }, - { MAP_CALL(Lock), SIG_EVERYWHERE, "iii*", NULL }, - { MAP_CALL(Palette), SIG_EVERYWHERE, "i.*", NULL }, - { MAP_CALL(IsItSkip), SIG_EVERYWHERE, "iiiii", NULL }, - { MAP_CALL(StrSplit), SIG_EVERYWHERE, "rrZr", NULL }, - { "CosMult", kTimesCos, SIG_EVERYWHERE, "ii", NULL }, - { "SinMult", kTimesSin, SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(CosDiv), SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(PriCoord), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(SinDiv), SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(TimesCot), SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(TimesTan), SIG_EVERYWHERE, "ii", NULL }, - { MAP_CALL(Message), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(GetMessage), SIG_EVERYWHERE, "iiir", NULL }, - { MAP_CALL(DoAudio), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(DoSync), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(MemorySegment), SIG_EVERYWHERE, "iri*", NULL }, - { MAP_CALL(Intersections), SIG_EVERYWHERE, "iiiiriiiri", NULL }, - { MAP_CALL(MergePoly), SIG_EVERYWHERE, "rli", NULL }, - { MAP_CALL(ResCheck), SIG_EVERYWHERE, "iii*", NULL }, - { MAP_CALL(SetQuitStr), SIG_EVERYWHERE, "r", NULL }, - { MAP_CALL(ShowMovie), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(SetVideoMode), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(Platform), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(TextColors), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(TextFonts), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(Portrait), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(PalVary), SIG_EVERYWHERE, "ii*", NULL }, - { MAP_CALL(AssertPalette), SIG_EVERYWHERE, "i", NULL }, - { MAP_CALL(Empty), SIG_EVERYWHERE, ".*", NULL }, + { MAP_CALL(CheckSaveGame), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(ShakeScreen), SIG_EVERYWHERE, "ii*", NULL, NULL }, + { MAP_CALL(FlushResources), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(TimesSin), SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(TimesCos), SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(Graph), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(Joystick), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(FileIO), SIG_EVERYWHERE, "i.*", NULL, NULL }, + { MAP_CALL(Memory), SIG_EVERYWHERE, "i.*", NULL, NULL }, + { MAP_CALL(Sort), SIG_EVERYWHERE, "ooo", NULL, NULL }, + { MAP_CALL(AvoidPath), SIG_EVERYWHERE, "ii.*", NULL, NULL }, + { MAP_CALL(Lock), SIG_EVERYWHERE, "iii*", NULL, NULL }, + { MAP_CALL(Palette), SIG_EVERYWHERE, "i.*", NULL, NULL }, + { MAP_CALL(IsItSkip), SIG_EVERYWHERE, "iiiii", NULL, NULL }, + { MAP_CALL(StrSplit), SIG_EVERYWHERE, "rrZr", NULL, NULL }, + { "CosMult", kTimesCos, SIG_EVERYWHERE, "ii", NULL, NULL }, + { "SinMult", kTimesSin, SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(CosDiv), SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(PriCoord), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(SinDiv), SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(TimesCot), SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(TimesTan), SIG_EVERYWHERE, "ii", NULL, NULL }, + { MAP_CALL(Message), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(GetMessage), SIG_EVERYWHERE, "iiir", NULL, NULL }, + { MAP_CALL(DoAudio), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(DoSync), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(MemorySegment), SIG_EVERYWHERE, "iri*", NULL, NULL }, + { MAP_CALL(Intersections), SIG_EVERYWHERE, "iiiiriiiri", NULL, NULL }, + { MAP_CALL(MergePoly), SIG_EVERYWHERE, "rli", NULL, NULL }, + { MAP_CALL(ResCheck), SIG_EVERYWHERE, "iii*", NULL, NULL }, + { MAP_CALL(SetQuitStr), SIG_EVERYWHERE, "r", NULL, NULL }, + { MAP_CALL(ShowMovie), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(SetVideoMode), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(Platform), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(TextColors), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(TextFonts), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(Portrait), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(PalVary), SIG_EVERYWHERE, "ii*", NULL, NULL }, + { MAP_CALL(AssertPalette), SIG_EVERYWHERE, "i", NULL, NULL }, + { MAP_CALL(Empty), SIG_EVERYWHERE, ".*", NULL, NULL }, #ifdef ENABLE_SCI32 // SCI2 Kernel Functions - { MAP_CALL(IsHiRes), SIG_EVERYWHERE, "", NULL }, - { MAP_CALL(Array), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(ListAt), SIG_EVERYWHERE, "li", NULL }, - { MAP_CALL(String), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(AddScreenItem), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(UpdateScreenItem), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(DeleteScreenItem), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(AddPlane), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(DeletePlane), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(UpdatePlane), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(RepaintPlane), SIG_EVERYWHERE, "o", NULL }, - { MAP_CALL(GetHighPlanePri), SIG_EVERYWHERE, "", NULL }, - { MAP_CALL(FrameOut), SIG_EVERYWHERE, "", NULL }, - { MAP_CALL(ListEachElementDo), SIG_EVERYWHERE, "li.*", NULL }, - { MAP_CALL(ListFirstTrue), SIG_EVERYWHERE, "li.*", NULL }, - { MAP_CALL(ListAllTrue), SIG_EVERYWHERE, "li.*", NULL }, - { MAP_CALL(ListIndexOf), SIG_EVERYWHERE, "lZo", NULL }, - { MAP_CALL(OnMe), SIG_EVERYWHERE, "iio.*", NULL }, - { MAP_CALL(InPolygon), SIG_EVERYWHERE, "iio", NULL }, - { MAP_CALL(CreateTextBitmap), SIG_EVERYWHERE, "i.*", NULL }, + { MAP_CALL(IsHiRes), SIG_EVERYWHERE, "", NULL, NULL }, + { MAP_CALL(Array), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(ListAt), SIG_EVERYWHERE, "li", NULL, NULL }, + { MAP_CALL(String), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(AddScreenItem), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(UpdateScreenItem), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(DeleteScreenItem), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(AddPlane), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(DeletePlane), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(UpdatePlane), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(RepaintPlane), SIG_EVERYWHERE, "o", NULL, NULL }, + { MAP_CALL(GetHighPlanePri), SIG_EVERYWHERE, "", NULL, NULL }, + { MAP_CALL(FrameOut), SIG_EVERYWHERE, "", NULL, NULL }, + { MAP_CALL(ListEachElementDo), SIG_EVERYWHERE, "li.*", NULL, NULL }, + { MAP_CALL(ListFirstTrue), SIG_EVERYWHERE, "li.*", NULL, NULL }, + { MAP_CALL(ListAllTrue), SIG_EVERYWHERE, "li.*", NULL, NULL }, + { MAP_CALL(ListIndexOf), SIG_EVERYWHERE, "lZo", NULL, NULL }, + { MAP_CALL(OnMe), SIG_EVERYWHERE, "iio.*", NULL, NULL }, + { MAP_CALL(InPolygon), SIG_EVERYWHERE, "iio", NULL, NULL }, + { MAP_CALL(CreateTextBitmap), SIG_EVERYWHERE, "i.*", NULL, NULL }, // SCI2.1 Kernel Functions - { MAP_CALL(Save), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(List), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(Robot), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(PlayVMD), SIG_EVERYWHERE, ".*", NULL }, - { MAP_CALL(IsOnMe), SIG_EVERYWHERE, "iio.*", NULL }, - { MAP_CALL(MulDiv), SIG_EVERYWHERE, "iii", NULL }, - { MAP_CALL(Text), SIG_EVERYWHERE, ".*", NULL }, - { NULL, NULL, SIG_EVERYWHERE, NULL, NULL } + { MAP_CALL(Save), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(List), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(Robot), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(PlayVMD), SIG_EVERYWHERE, ".*", NULL, NULL }, + { MAP_CALL(IsOnMe), SIG_EVERYWHERE, "iio.*", NULL, NULL }, + { MAP_CALL(MulDiv), SIG_EVERYWHERE, "iii", NULL, NULL }, + { MAP_CALL(Text), SIG_EVERYWHERE, ".*", NULL, NULL }, + { NULL, NULL, SIG_EVERYWHERE, NULL, NULL, NULL } #endif };