SCI32: Implement kCelLink

kCelLink exists in SSCI since 2.1mid, but it is only known to be
used in Lighthouse, during the weapon creation puzzle near the end
of the game.
This commit is contained in:
Colin Snover 2017-08-04 18:53:00 -05:00
parent d2b4e16ab2
commit 43a07abb46
5 changed files with 65 additions and 1 deletions

View file

@ -574,6 +574,16 @@ static const SciKernelMapSubEntry kCelInfo_subops[] = {
SCI_SUBOPENTRY_TERMINATOR
};
// version, subId, function-mapping, signature, workarounds
static const SciKernelMapSubEntry kCelLink_subops[] = {
{ SIG_SINCE_SCI21MID, 0, MAP_DUMMY(CelLink0), "", NULL },
{ SIG_SINCE_SCI21MID, 1, MAP_DUMMY(CelLink1), "", NULL },
{ SIG_SINCE_SCI21MID, 2, MAP_CALL(CelLinkGetX), "iiii", NULL },
{ SIG_SINCE_SCI21MID, 3, MAP_CALL(CelLinkGetY), "iiii", NULL },
{ SIG_SINCE_SCI21MID, 4, MAP_DUMMY(CelLink4), "", NULL },
SCI_SUBOPENTRY_TERMINATOR
};
// version, subId, function-mapping, signature, workarounds
static const SciKernelMapSubEntry kScrollWindow_subops[] = {
{ SIG_SCI32, 0, MAP_CALL(ScrollWindowCreate), "oi", NULL },
@ -988,7 +998,7 @@ static SciKernelMapEntry s_kernelMap[] = {
{ MAP_DUMMY(FindClass), SIG_EVERYWHERE, "(.*)", NULL, NULL },
{ MAP_DUMMY(CelRect), SIG_EVERYWHERE, "(.*)", NULL, NULL },
{ MAP_DUMMY(BaseLineSpan), SIG_EVERYWHERE, "(.*)", NULL, NULL },
{ MAP_DUMMY(CelLink), SIG_EVERYWHERE, "(.*)", NULL, NULL },
{ MAP_CALL(CelLink), SIG_SINCE_SCI21MID, SIGFOR_ALL, "(.*)", kCelLink_subops, NULL },
{ MAP_DUMMY(AddPolygon), SIG_EVERYWHERE, "(.*)", NULL, NULL },
{ MAP_DUMMY(DeletePolygon), SIG_EVERYWHERE, "(.*)", NULL, NULL },
{ MAP_DUMMY(UpdatePolygon), SIG_EVERYWHERE, "(.*)", NULL, NULL },