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

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Fri Oct 9 21:50:20 CEST 2009


Revision: 44844
          http://scummvm.svn.sourceforge.net/scummvm/?rev=44844&view=rev
Author:   m_kiewitz
Date:     2009-10-09 19:50:20 +0000 (Fri, 09 Oct 2009)

Log Message:
-----------
SCI/newgui: moved priority band initialization to init() call of SciGui to avoid having to call usesOldGfxFunctions() within constructor, where it would crash on some games (sq3)

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gui/gui.cpp
    scummvm/trunk/engines/sci/gui/gui_gfx.cpp
    scummvm/trunk/engines/sci/gui/gui_gfx.h
    scummvm/trunk/engines/sci/gui/gui_picture.cpp

Modified: scummvm/trunk/engines/sci/gui/gui.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.cpp	2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui.cpp	2009-10-09 19:50:20 UTC (rev 44844)
@@ -64,6 +64,12 @@
 }
 
 void SciGui::init(bool usesOldGfxFunctions) {
+	// Initialize priority bands
+	if (usesOldGfxFunctions) {
+		_gfx->PriorityBandsInit(15, 42, 200);
+	} else {
+		_gfx->PriorityBandsInit(14, 42, 190);
+	}
 }
 
 

Modified: scummvm/trunk/engines/sci/gui/gui_gfx.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.cpp	2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.cpp	2009-10-09 19:50:20 UTC (rev 44844)
@@ -65,15 +65,6 @@
 	SetFont(0);
 	_menuPort->rect = Common::Rect(0, 0, _screen->_width, _screen->_height);
 	_menuRect = Common::Rect(0, 0, _screen->_width, 9);
-
-	// Initialize priority bands
-	if (_s->usesOldGfxFunctions()) {
-		_priorityBandCount = 15;
-		PriorityBandsInit(42, 200);
-	} else {
-		_priorityBandCount = 14;
-		PriorityBandsInit(42, 190);
-	}
 }
 
 GuiPort *SciGuiGfx::SetPort(GuiPort *newPort) {
@@ -773,10 +764,13 @@
 		return value;
 }
 
-void SciGuiGfx::PriorityBandsInit(int16 top, int16 bottom) {
+void SciGuiGfx::PriorityBandsInit(int16 bandCount, int16 top, int16 bottom) {
 	double bandSize;
 	int16 y;
 
+	if (bandCount != -1)
+		_priorityBandCount = bandCount;
+
 	_priorityTop = top;
 	_priorityBottom = bottom;
 	bandSize = (_priorityBottom - _priorityTop) / (_priorityBandCount - 1);

Modified: scummvm/trunk/engines/sci/gui/gui_gfx.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_gfx.h	2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui_gfx.h	2009-10-09 19:50:20 UTC (rev 44844)
@@ -109,7 +109,7 @@
 
 	uint16 onControl(uint16 screenMask, Common::Rect rect);
 
-	void PriorityBandsInit(int16 top, int16 bottom);
+	void PriorityBandsInit(int16 bandCount, int16 top, int16 bottom);
 	void PriorityBandsInit(byte *data);
 	byte CoordinateToPriority(int16 y);
 	int16 PriorityToCoordinate(byte priority);

Modified: scummvm/trunk/engines/sci/gui/gui_picture.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_picture.cpp	2009-10-09 19:41:39 UTC (rev 44843)
+++ scummvm/trunk/engines/sci/gui/gui_picture.cpp	2009-10-09 19:50:20 UTC (rev 44844)
@@ -482,7 +482,7 @@
 					curPos += size;
 					break;
 				case PIC_OPX_VGA_PRIORITY_TABLE_EQDIST:
-					_gfx->PriorityBandsInit(READ_LE_UINT16(data + curPos), READ_LE_UINT16(data + curPos + 2));
+					_gfx->PriorityBandsInit(-1, READ_LE_UINT16(data + curPos), READ_LE_UINT16(data + curPos + 2));
 					curPos += 4;
 					break;
 				case PIC_OPX_VGA_PRIORITY_TABLE_EXPLICIT:


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