[Scummvm-cvs-logs] SF.net SVN: scummvm:[44611] scummvm/trunk/engines/sci/gui
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Sun Oct 4 17:34:43 CEST 2009
Revision: 44611
http://scummvm.svn.sourceforge.net/scummvm/?rev=44611&view=rev
Author: m_kiewitz
Date: 2009-10-04 15:34:43 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
SCI/newgui: getCellRect() getLoopInfo() implemented, cleanup
Modified Paths:
--------------
scummvm/trunk/engines/sci/gui/gui_view.cpp
scummvm/trunk/engines/sci/gui/gui_view.h
Modified: scummvm/trunk/engines/sci/gui/gui_view.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_view.cpp 2009-10-04 15:20:43 UTC (rev 44610)
+++ scummvm/trunk/engines/sci/gui/gui_view.cpp 2009-10-04 15:34:43 UTC (rev 44611)
@@ -181,12 +181,27 @@
}
sciViewCellInfo *SciGUIview::getCellInfo(uint16 loopNo, uint16 cellNo) {
- loopNo = CLIP<int16>(loopNo, 0, _loopCount -1);
+ loopNo = CLIP<int16>(loopNo, 0, _loopCount - 1);
if (cellNo >= _loop[loopNo].cellCount)
cellNo = 0;
return _loopCount ? &_loop[loopNo].cell[cellNo] : NULL;
}
+sciViewLoopInfo *SciGUIview::getLoopInfo(uint16 loopNo) {
+ loopNo = CLIP<int16>(loopNo, 0, _loopCount - 1);
+ return _loopCount ? &_loop[loopNo] : NULL;
+}
+
+void SciGUIview::getCellRect(uint16 loopNo, uint16 cellNo, int16 x, int16 y, int16 z, Common::Rect *outRect) {
+ sciViewCellInfo *cellInfo = getCellInfo(loopNo, cellNo);
+ if (cellInfo) {
+ outRect->left = x + cellInfo->displaceX - (cellInfo->width >> 1);
+ outRect->right = outRect->left + cellInfo->width;
+ outRect->bottom = y + cellInfo->displaceY - z + 1;
+ outRect->top = outRect->bottom - cellInfo->height;
+ }
+}
+
void SciGUIview::unpackView(uint16 loopNo, uint16 cellNo, byte *outPtr, uint16 pixelCount) {
byte *rlePtr = _resourceData + _loop[loopNo].cell[cellNo].offsetRLE;
byte *literalPtr = _resourceData + _loop[loopNo].cell[cellNo].offsetLiteral;
Modified: scummvm/trunk/engines/sci/gui/gui_view.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_view.h 2009-10-04 15:20:43 UTC (rev 44610)
+++ scummvm/trunk/engines/sci/gui/gui_view.h 2009-10-04 15:34:43 UTC (rev 44611)
@@ -51,8 +51,9 @@
sciResourceId getResourceId();
int16 getWidth(uint16 loopNo, uint16 cellNo);
int16 getHeight(uint16 loopNo, uint16 cellNo);
- sciViewCellInfo *getCellInfo(uint16 loop, uint16 cel);
- sciViewLoopInfo *getLoopInfo(uint16 loop);
+ sciViewCellInfo *getCellInfo(uint16 loopNo, uint16 cellNo);
+ sciViewLoopInfo *getLoopInfo(uint16 loopNo);
+ void getCellRect(uint16 loopNo, uint16 cellNo, int16 x, int16 y, int16 z, Common::Rect *outRect);
byte *getBitmap(uint16 loopNo, uint16 cellNo);
void draw(Common::Rect rect, Common::Rect clipRect, uint16 loopNo, uint16 cellNo, byte priority, uint16 paletteNo);
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