SCI/newgui: IsItSkip moved into SciGui
svn-id: r45479
This commit is contained in:
parent
5abe6c8054
commit
88e56f87eb
3 changed files with 14 additions and 11 deletions
|
@ -371,22 +371,13 @@ reg_t kCantBeHere(EngineState *s, int argc, reg_t *argv) {
|
||||||
return make_reg(0, !canBeHere);
|
return make_reg(0, !canBeHere);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: This should go into SciGui
|
|
||||||
reg_t kIsItSkip(EngineState *s, int argc, reg_t *argv) {
|
reg_t kIsItSkip(EngineState *s, int argc, reg_t *argv) {
|
||||||
GuiResourceId viewId = argv[0].toSint16();
|
GuiResourceId viewId = argv[0].toSint16();
|
||||||
int16 loopNo = argv[1].toSint16();
|
int16 loopNo = argv[1].toSint16();
|
||||||
int16 celNo = argv[2].toSint16();
|
int16 celNo = argv[2].toSint16();
|
||||||
int16 y = argv[3].toUint16();
|
Common::Point position(argv[4].toUint16(), argv[3].toUint16());
|
||||||
int16 x = argv[4].toUint16();
|
|
||||||
|
|
||||||
SciGuiView *tmpView = new SciGuiView(s->resMan, NULL, NULL, viewId);
|
|
||||||
sciViewCelInfo *celInfo = tmpView->getCelInfo(loopNo, celNo);
|
|
||||||
x = CLIP<int>(x, 0, celInfo->width - 1);
|
|
||||||
y = CLIP<int>(y, 0, celInfo->height - 1);
|
|
||||||
byte *celData = tmpView->getBitmap(loopNo, celNo);
|
|
||||||
int result = (celData[y * celInfo->width + x] == celInfo->clearKey);
|
|
||||||
delete tmpView;
|
|
||||||
|
|
||||||
|
bool result = s->_gui->isItSkip(viewId, loopNo, celNo, position);
|
||||||
return make_reg(0, result);
|
return make_reg(0, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -626,6 +626,17 @@ bool SciGui::canBeHere(reg_t curObject, reg_t listReference) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool SciGui::isItSkip(GuiResourceId viewId, int16 loopNo, int16 celNo, Common::Point position) {
|
||||||
|
SciGuiView *tmpView = new SciGuiView(_s->resMan, NULL, NULL, viewId);
|
||||||
|
sciViewCelInfo *celInfo = tmpView->getCelInfo(loopNo, celNo);
|
||||||
|
position.x = CLIP<int>(position.x, 0, celInfo->width - 1);
|
||||||
|
position.y = CLIP<int>(position.y, 0, celInfo->height - 1);
|
||||||
|
byte *celData = tmpView->getBitmap(loopNo, celNo);
|
||||||
|
bool result = (celData[position.y * celInfo->width + position.x] == celInfo->clearKey);
|
||||||
|
delete tmpView;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
void SciGui::hideCursor() {
|
void SciGui::hideCursor() {
|
||||||
_cursor->hide();
|
_cursor->hide();
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,6 +116,7 @@ public:
|
||||||
virtual void addToPicView(GuiResourceId viewId, GuiViewLoopNo loopNo, GuiViewCelNo celNo, int16 leftPos, int16 topPos, int16 priority, int16 control);
|
virtual void addToPicView(GuiResourceId viewId, GuiViewLoopNo loopNo, GuiViewCelNo celNo, int16 leftPos, int16 topPos, int16 priority, int16 control);
|
||||||
virtual void setNowSeen(reg_t objectReference);
|
virtual void setNowSeen(reg_t objectReference);
|
||||||
virtual bool canBeHere(reg_t curObject, reg_t listReference);
|
virtual bool canBeHere(reg_t curObject, reg_t listReference);
|
||||||
|
virtual bool isItSkip(GuiResourceId viewId, int16 loopNo, int16 celNo, Common::Point position);
|
||||||
|
|
||||||
virtual void hideCursor();
|
virtual void hideCursor();
|
||||||
virtual void showCursor();
|
virtual void showCursor();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue