[Scummvm-cvs-logs] SF.net SVN: scummvm:[55163] scummvm/trunk/engines/sci/engine
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Sat Jan 8 13:28:47 CET 2011
Revision: 55163
http://scummvm.svn.sourceforge.net/scummvm/?rev=55163&view=rev
Author: thebluegr
Date: 2011-01-08 12:28:47 +0000 (Sat, 08 Jan 2011)
Log Message:
-----------
SCI2.1: Some stubs used by SQ6
- Added a stub and some info about the (large) kScrollWindow kernel call
- Added info about kMovePlaneItems
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kernel.h
scummvm/trunk/engines/sci/engine/kernel_tables.h
scummvm/trunk/engines/sci/engine/kgraphics.cpp
Modified: scummvm/trunk/engines/sci/engine/kernel.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.h 2011-01-08 11:59:58 UTC (rev 55162)
+++ scummvm/trunk/engines/sci/engine/kernel.h 2011-01-08 12:28:47 UTC (rev 55163)
@@ -471,6 +471,7 @@
reg_t kGetConfig(EngineState *s, int argc, reg_t *argv);
reg_t kCelInfo(EngineState *s, int argc, reg_t *argv);
reg_t kSetLanguage(EngineState *s, int argc, reg_t *argv);
+reg_t kScrollWindow(EngineState *s, int argc, reg_t *argv);
#endif
reg_t kDoSoundInit(EngineState *s, int argc, reg_t *argv);
Modified: scummvm/trunk/engines/sci/engine/kernel_tables.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel_tables.h 2011-01-08 11:59:58 UTC (rev 55162)
+++ scummvm/trunk/engines/sci/engine/kernel_tables.h 2011-01-08 12:28:47 UTC (rev 55163)
@@ -546,6 +546,7 @@
{ MAP_CALL(GetConfig), SIG_EVERYWHERE, "ro", NULL, NULL },
{ MAP_CALL(CelInfo), SIG_EVERYWHERE, "iiiiii", NULL, NULL },
{ MAP_CALL(SetLanguage), SIG_EVERYWHERE, "r", NULL, NULL },
+ { MAP_CALL(ScrollWindow), SIG_EVERYWHERE, "(.*)", NULL, NULL },
// SCI2.1 Empty Functions
@@ -586,13 +587,11 @@
// SCI2.1 unmapped functions - TODO!
// Bitmap
- // MovePlaneItems - used by SQ6
+ // MovePlaneItems - used by SQ6 to scroll through the inventory via the up/down buttons
// Font
- // ScrollWindow - used by Phantasmagoria 1 and SQ6
// AddLine - used by Torin's Passage to highlight the chapter buttons
// DeleteLine - used by Torin's Passage to delete the highlight from the chapter buttons
// UpdateLine = used by LSL6
- // GetConfig - used by Phantasmagoria 1
// SetPalStyleRange
// NewRoom
// MorphOn - used by SQ6
Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp 2011-01-08 11:59:58 UTC (rev 55162)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp 2011-01-08 12:28:47 UTC (rev 55163)
@@ -1517,6 +1517,110 @@
return s->r_acc;
}
+reg_t kScrollWindow(EngineState *s, int argc, reg_t *argv) {
+ // Used by Phantasmagoria 1 and SQ6. In SQ6, it is used for the messages
+ // shown in the scroll window at the bottom of the screen.
+
+ // TODO: This is all a stub/skeleton, thus we're invoking kStub() for now
+ kStub(s, argc, argv);
+
+ switch (argv[0].toUint16()) {
+ case 0: // Init
+ // 2 parameters
+ // argv[1] points to the scroll object (e.g. textScroller in SQ6)
+ // argv[2] is an integer (e.g. 0x32)
+ break;
+ case 1: // Show message
+ // 5 or 6 parameters
+ // Seems to be called with 5 parameters when the narrator speaks, and
+ // with 6 when Roger speaks
+ // argv[1] unknown (usually 0)
+ // argv[2] the text to show
+ // argv[3] a small integer (e.g. 0x32)
+ // argv[4] a small integer (e.g. 0x54)
+ // argv[5] optional, unknown (usually 0)
+ warning("kScrollWindow: '%s'", s->_segMan->getString(argv[2]).c_str());
+ break;
+ case 2: // Clear
+ // 2 parameters
+ // TODO
+ break;
+ case 3: // Page up
+ // 2 parameters
+ // TODO
+ break;
+ case 4: // Page down
+ // 2 parameters
+ // TODO
+ break;
+ case 5: // Up arrow
+ // 2 parameters
+ // TODO
+ break;
+ case 6: // Down arrow
+ // 2 parameters
+ // TODO
+ break;
+ case 7: // Home
+ // 2 parameters
+ // TODO
+ break;
+ case 8: // End
+ // 2 parameters
+ // TODO
+ break;
+ case 9: // Resize
+ // 3 parameters
+ // TODO
+ break;
+ case 10: // Where
+ // 3 parameters
+ // TODO
+ break;
+ case 11: // Go
+ // 4 parameters
+ // TODO
+ break;
+ case 12: // Insert
+ // 7 parameters
+ // TODO
+ break;
+ case 13: // Delete
+ // 3 parameters
+ // TODO
+ break;
+ case 14: // Modify
+ // 7 or 8 parameters
+ // TODO
+ break;
+ case 15: // Hide
+ // 2 parameters
+ // TODO
+ break;
+ case 16: // Show
+ // 2 parameters
+ // TODO
+ break;
+ case 17: // Destroy
+ // 2 parameters
+ // TODO
+ break;
+ case 18: // Text
+ // 2 parameters
+ // TODO
+ break;
+ case 19: // Reconstruct
+ // 3 parameters
+ // TODO
+ break;
+ default:
+ error("kScrollWindow: unknown subop %d", argv[0].toUint16());
+ break;
+ }
+
+ return s->r_acc;
+}
+
#endif
} // End of namespace Sci
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list