[Scummvm-cvs-logs] SF.net SVN: scummvm:[46240] scummvm/trunk/engines/sci/gui/gui_view.cpp

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Dec 2 22:30:44 CET 2009


Revision: 46240
          http://scummvm.svn.sourceforge.net/scummvm/?rev=46240&view=rev
Author:   m_kiewitz
Date:     2009-12-02 21:30:43 +0000 (Wed, 02 Dec 2009)

Log Message:
-----------
SCI: Do clipping on celNo for case when celNo is below 0 (fixes crash in island dr. brain intro)

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gui/gui_view.cpp

Modified: scummvm/trunk/engines/sci/gui/gui_view.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_view.cpp	2009-12-02 20:25:01 UTC (rev 46239)
+++ scummvm/trunk/engines/sci/gui/gui_view.cpp	2009-12-02 21:30:43 UTC (rev 46240)
@@ -225,23 +225,20 @@
 }
 
 int16 SciGuiView::getWidth(GuiViewLoopNo loopNo, GuiViewCelNo celNo) {
-	loopNo = CLIP<int16>(loopNo, 0, _loopCount -1);
-	if (celNo >= _loop[loopNo].celCount)
-		celNo = 0;
+	loopNo = CLIP<int16>(loopNo, 0, _loopCount - 1);
+	celNo = CLIP<int16>(celNo, 0, _loop[loopNo].celCount - 1);
 	return _loopCount ? _loop[loopNo].cel[celNo].width : 0;
 }
 
 int16 SciGuiView::getHeight(GuiViewLoopNo loopNo, GuiViewCelNo celNo) {
 	loopNo = CLIP<int16>(loopNo, 0, _loopCount -1);
-	if (celNo >= _loop[loopNo].celCount)
-		celNo = 0;
+	celNo = CLIP<int16>(celNo, 0, _loop[loopNo].celCount - 1);
 	return _loopCount ? _loop[loopNo].cel[celNo].height : 0;
 }
 
 sciViewCelInfo *SciGuiView::getCelInfo(GuiViewLoopNo loopNo, GuiViewCelNo celNo) {
 	loopNo = CLIP<int16>(loopNo, 0, _loopCount - 1);
-	if (celNo >= _loop[loopNo].celCount)
-		celNo = 0;
+	celNo = CLIP<int16>(celNo, 0, _loop[loopNo].celCount - 1);
 	return _loopCount ? &_loop[loopNo].cel[celNo] : NULL;
 }
 
@@ -345,8 +342,7 @@
 
 byte *SciGuiView::getBitmap(GuiViewLoopNo loopNo, GuiViewCelNo celNo) {
 	loopNo = CLIP<int16>(loopNo, 0, _loopCount -1);
-	if (celNo >= _loop[loopNo].celCount)
-		celNo = 0;
+	celNo = CLIP<int16>(celNo, 0, _loop[loopNo].celCount - 1);
 	if (_loop[loopNo].cel[celNo].rawBitmap)
 		return _loop[loopNo].cel[celNo].rawBitmap;
 


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