[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