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);
|
||||
}
|
||||
|
||||
// TODO: This should go into SciGui
|
||||
reg_t kIsItSkip(EngineState *s, int argc, reg_t *argv) {
|
||||
GuiResourceId viewId = argv[0].toSint16();
|
||||
int16 loopNo = argv[1].toSint16();
|
||||
int16 celNo = argv[2].toSint16();
|
||||
int16 y = 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;
|
||||
Common::Point position(argv[4].toUint16(), argv[3].toUint16());
|
||||
|
||||
bool result = s->_gui->isItSkip(viewId, loopNo, celNo, position);
|
||||
return make_reg(0, result);
|
||||
}
|
||||
|
||||
|
|
|
@ -626,6 +626,17 @@ bool SciGui::canBeHere(reg_t curObject, reg_t listReference) {
|
|||
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() {
|
||||
_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 setNowSeen(reg_t objectReference);
|
||||
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 showCursor();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue