diff options
Diffstat (limited to 'engines/sci/engine/kernel.cpp')
-rw-r--r-- | engines/sci/engine/kernel.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/engines/sci/engine/kernel.cpp b/engines/sci/engine/kernel.cpp index 2fc338b618..85cad99226 100644 --- a/engines/sci/engine/kernel.cpp +++ b/engines/sci/engine/kernel.cpp @@ -171,8 +171,11 @@ void Kernel::loadSelectorNames() { // (io) -> optionally integer AND an object // (i) -> optional integer // . -> any type -// i* -> optional multiple integers -// .* -> any parameters afterwards (or none) +// i* -> at least one integer, more integers may follow after that +// (i*) -> optional multiple integers +// .* -> at least one parameter of any type and more parameters of any type may follow +// (.*) -> any parameters afterwards (or none) +// * -> means "more of the last parameter may follow (or none at all)", must be at the end of a signature. Is not valid anywhere else. static uint16 *parseKernelSignature(const char *kernelName, const char *writtenSig) { const char *curPos; char curChar; @@ -407,7 +410,7 @@ uint16 Kernel::findRegType(reg_t reg) { case SEG_TYPE_HUNK: #ifdef ENABLE_SCI32 case SEG_TYPE_ARRAY: - case SEG_TYPE_STRING: + case SEG_TYPE_BITMAP: #endif result |= SIG_TYPE_REFERENCE; break; @@ -885,8 +888,8 @@ void Kernel::loadKernelNames(GameFeatures *features) { // how kDoSound is called from Sound::play(). // Known games that use this: // GK2 demo - // KQ7 1.4 - // PQ4 SWAT demo + // KQ7 1.4/1.51 + // PQ:SWAT demo // LSL6 // PQ4CD // QFG4CD @@ -897,7 +900,7 @@ void Kernel::loadKernelNames(GameFeatures *features) { _kernelNames = Common::StringArray(sci2_default_knames, kKernelEntriesGk2Demo); // OnMe is IsOnMe here, but they should be compatible - _kernelNames[0x23] = "Robot"; // Graph in SCI2 + _kernelNames[0x23] = g_sci->getGameId() == GID_LSL6HIRES ? "Empty" : "Robot"; // Graph in SCI2 _kernelNames[0x2e] = "Priority"; // DisposeTextBitmap in SCI2 } else { // Normal SCI2.1 kernel table |