[Scummvm-cvs-logs] SF.net SVN: scummvm:[46527] scummvm/trunk/engines/sci/engine
thebluegr at users.sourceforge.net
thebluegr at users.sourceforge.net
Thu Dec 24 14:50:51 CET 2009
Revision: 46527
http://scummvm.svn.sourceforge.net/scummvm/?rev=46527&view=rev
Author: thebluegr
Date: 2009-12-24 13:50:50 +0000 (Thu, 24 Dec 2009)
Log Message:
-----------
SCI32: The view related functions pass a view object as parameter, and the engine should deduce the parameters it needs from that object. Added stub view functions based on that fact. Also, added a sanity check in kCelHigh and kCelWide
Modified Paths:
--------------
scummvm/trunk/engines/sci/engine/kernel.cpp
scummvm/trunk/engines/sci/engine/kernel.h
scummvm/trunk/engines/sci/engine/kernel32.cpp
scummvm/trunk/engines/sci/engine/kgraphics.cpp
Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp 2009-12-24 13:20:23 UTC (rev 46526)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp 2009-12-24 13:50:50 UTC (rev 46527)
@@ -342,7 +342,10 @@
DEFUN("IsHiRes", kIsHiRes, ""),
DEFUN("Array", kArray, ".*"),
DEFUN("String", kString, ".*"),
-
+ DEFUN("AddScreenItem", kAddScreenItem, "o"),
+ DEFUN("UpdateScreenItem", kUpdateScreenItem, "o"),
+ DEFUN("DeleteScreenItem", kDeleteScreenItem, "o"),
+
// SCI2.1 Kernel Functions
DEFUN("Save", kSave, ".*"),
#endif
Modified: scummvm/trunk/engines/sci/engine/kernel.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.h 2009-12-24 13:20:23 UTC (rev 46526)
+++ scummvm/trunk/engines/sci/engine/kernel.h 2009-12-24 13:50:50 UTC (rev 46527)
@@ -395,6 +395,9 @@
reg_t kIsHiRes(EngineState *s, int argc, reg_t *argv);
reg_t kArray(EngineState *s, int argc, reg_t *argv);
reg_t kString(EngineState *s, int argc, reg_t *argv);
+reg_t kAddScreenItem(EngineState *s, int argc, reg_t *argv);
+reg_t kUpdateScreenItem(EngineState *s, int argc, reg_t *argv);
+reg_t kDeleteScreenItem(EngineState *s, int argc, reg_t *argv);
// SCI2.1 Kernel Functions
reg_t kSave(EngineState *s, int argc, reg_t *argv);
Modified: scummvm/trunk/engines/sci/engine/kernel32.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel32.cpp 2009-12-24 13:20:23 UTC (rev 46526)
+++ scummvm/trunk/engines/sci/engine/kernel32.cpp 2009-12-24 13:50:50 UTC (rev 46527)
@@ -589,6 +589,46 @@
return NULL_REG;
}
+reg_t kAddScreenItem(EngineState *s, int argc, reg_t *argv) {
+ reg_t viewObj = argv[0];
+ int16 viewId = GET_SEL32V(s->_segMan, viewObj, view);
+ int16 loopNo = GET_SEL32V(s->_segMan, viewObj, loop);
+ int16 celNo = GET_SEL32V(s->_segMan, viewObj, cel);
+ //int16 leftPos = 0;
+ //int16 topPos = 0;
+ int16 priority = GET_SEL32V(s->_segMan, viewObj, priority);
+ //int16 control = 0;
+ warning("kAddScreenItem, view %d, loop %d, cel %d, pri %d", viewId, loopNo, celNo, priority);
+ //s->_gui->addToPicView(viewId, loopNo, celNo, leftPos, topPos, priority, control);
+ return NULL_REG;
+}
+
+reg_t kUpdateScreenItem(EngineState *s, int argc, reg_t *argv) {
+ reg_t viewObj = argv[0];
+ int16 viewId = GET_SEL32V(s->_segMan, viewObj, view);
+ int16 loopNo = GET_SEL32V(s->_segMan, viewObj, loop);
+ int16 celNo = GET_SEL32V(s->_segMan, viewObj, cel);
+ //int16 leftPos = 0;
+ //int16 topPos = 0;
+ int16 priority = GET_SEL32V(s->_segMan, viewObj, priority);
+ //int16 control = 0;
+ warning("kUpdateScreenItem, view %d, loop %d, cel %d, pri %d", viewId, loopNo, celNo, priority);
+ return NULL_REG;
+}
+
+reg_t kDeleteScreenItem(EngineState *s, int argc, reg_t *argv) {
+ reg_t viewObj = argv[0];
+ int16 viewId = GET_SEL32V(s->_segMan, viewObj, view);
+ int16 loopNo = GET_SEL32V(s->_segMan, viewObj, loop);
+ int16 celNo = GET_SEL32V(s->_segMan, viewObj, cel);
+ //int16 leftPos = 0;
+ //int16 topPos = 0;
+ int16 priority = GET_SEL32V(s->_segMan, viewObj, priority);
+ //int16 control = 0;
+ warning("kDeleteScreenItem, view %d, loop %d, cel %d, pri %d", viewId, loopNo, celNo, priority);
+ return NULL_REG;
+}
+
} // End of namespace Sci
#endif // ENABLE_SCI32
Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp 2009-12-24 13:20:23 UTC (rev 46526)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp 2009-12-24 13:50:50 UTC (rev 46527)
@@ -403,6 +403,8 @@
reg_t kCelHigh(EngineState *s, int argc, reg_t *argv) {
GuiResourceId viewId = argv[0].toSint16();
+ if (viewId == -1) // Happens in SCI32
+ return NULL_REG;
int16 loopNo = argv[1].toSint16();
int16 celNo = (argc >= 3) ? argv[2].toSint16() : 0;
@@ -411,6 +413,8 @@
reg_t kCelWide(EngineState *s, int argc, reg_t *argv) {
GuiResourceId viewId = argv[0].toSint16();
+ if (viewId == -1) // Happens in SCI32
+ return NULL_REG;
int16 loopNo = argv[1].toSint16();
int16 celNo = (argc >= 3) ? argv[2].toSint16() : 0;
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