SCI32: Fix kSetShowStyle signature for SCI3

This commit is contained in:
Colin Snover 2017-01-02 10:13:02 -06:00
parent ec8845a6bf
commit 97a47852c1
2 changed files with 5 additions and 12 deletions

View file

@ -868,7 +868,8 @@ static SciKernelMapEntry s_kernelMap[] = {
// our own memory manager and garbage collector, thus we simply call FlushResources, which in turn invokes // our own memory manager and garbage collector, thus we simply call FlushResources, which in turn invokes
// our garbage collector (i.e. the SCI0-SCI1.1 semantics). // our garbage collector (i.e. the SCI0-SCI1.1 semantics).
{ "Purge", kFlushResources, SIG_EVERYWHERE, "i", NULL, NULL }, { "Purge", kFlushResources, SIG_EVERYWHERE, "i", NULL, NULL },
{ MAP_CALL(SetShowStyle), SIG_EVERYWHERE, "ioiiiii([ri])(i)", NULL, NULL }, { MAP_CALL(SetShowStyle), SIG_THRU_SCI21MID, SIGFOR_ALL, "ioiiiii([ri])(i)", NULL, NULL },
{ MAP_CALL(SetShowStyle), SIG_SINCE_SCI21LATE, SIGFOR_ALL, "ioiiiiii(r)(i)", NULL, NULL },
{ MAP_CALL(String), SIG_EVERYWHERE, "(.*)", kString_subops, NULL }, { MAP_CALL(String), SIG_EVERYWHERE, "(.*)", kString_subops, NULL },
{ MAP_CALL(UpdatePlane), SIG_EVERYWHERE, "o", NULL, NULL }, { MAP_CALL(UpdatePlane), SIG_EVERYWHERE, "o", NULL, NULL },
{ MAP_CALL(UpdateScreenItem), SIG_EVERYWHERE, "o", NULL, NULL }, { MAP_CALL(UpdateScreenItem), SIG_EVERYWHERE, "o", NULL, NULL },

View file

@ -389,13 +389,13 @@ reg_t kSetShowStyle(EngineState *s, int argc, reg_t *argv) {
pFadeArray = NULL_REG; pFadeArray = NULL_REG;
divisions = argc > 7 ? argv[7].toSint16() : -1; divisions = argc > 7 ? argv[7].toSint16() : -1;
} }
// SCI 2.1mid2.1late // SCI 2.1mid
else if (getSciVersion() < SCI_VERSION_3) { else if (getSciVersion() < SCI_VERSION_2_1_LATE) {
blackScreen = 0; blackScreen = 0;
pFadeArray = argc > 7 ? argv[7] : NULL_REG; pFadeArray = argc > 7 ? argv[7] : NULL_REG;
divisions = argc > 8 ? argv[8].toSint16() : -1; divisions = argc > 8 ? argv[8].toSint16() : -1;
} }
// SCI 3 // SCI 2.1late-3
else { else {
blackScreen = argv[7].toSint16(); blackScreen = argv[7].toSint16();
pFadeArray = argc > 8 ? argv[8] : NULL_REG; pFadeArray = argc > 8 ? argv[8] : NULL_REG;
@ -406,14 +406,6 @@ reg_t kSetShowStyle(EngineState *s, int argc, reg_t *argv) {
error("Illegal show style %d for plane %04x:%04x", type, PRINT_REG(planeObj)); error("Illegal show style %d for plane %04x:%04x", type, PRINT_REG(planeObj));
} }
// TODO: Reuse later for SCI2 and SCI3 implementation and then discard
// warning("kSetShowStyle: effect %d, plane: %04x:%04x (%s), sec: %d, "
// "dir: %d, prio: %d, animate: %d, ref frame: %d, black screen: %d, "
// "pFadeArray: %04x:%04x (%s), divisions: %d",
// type, PRINT_REG(planeObj), s->_segMan->getObjectName(planeObj), seconds,
// back, priority, animate, refFrame, blackScreen,
// PRINT_REG(pFadeArray), s->_segMan->getObjectName(pFadeArray), divisions);
// NOTE: The order of planeObj and showStyle are reversed // NOTE: The order of planeObj and showStyle are reversed
// because this is how SCI3 called the corresponding method // because this is how SCI3 called the corresponding method
// on the KernelMgr // on the KernelMgr