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
svn-id: r46527
This commit is contained in:
parent
f5d8bb1d5e
commit
69fa167902
4 changed files with 51 additions and 1 deletions
|
@ -342,6 +342,9 @@ SciKernelFunction kfunct_mappers[] = {
|
|||
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, ".*"),
|
||||
|
|
|
@ -395,6 +395,9 @@ reg_t kTextFonts(EngineState *s, int argc, reg_t *argv);
|
|||
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);
|
||||
|
|
|
@ -589,6 +589,46 @@ reg_t kSave(EngineState *s, int argc, reg_t *argv) {
|
|||
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
|
||||
|
|
|
@ -403,6 +403,8 @@ reg_t kIsItSkip(EngineState *s, int argc, reg_t *argv) {
|
|||
|
||||
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 kCelHigh(EngineState *s, int argc, reg_t *argv) {
|
|||
|
||||
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;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue