[Scummvm-cvs-logs] SF.net SVN: scummvm: [31494] scummvm/trunk/engines/kyra/sequences_v2.cpp

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Sun Apr 13 01:55:26 CEST 2008


Revision: 31494
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31494&view=rev
Author:   athrxx
Date:     2008-04-12 16:55:26 -0700 (Sat, 12 Apr 2008)

Log Message:
-----------
fix crash and graphic glitch in non-playable HOF demo

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/sequences_v2.cpp

Modified: scummvm/trunk/engines/kyra/sequences_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sequences_v2.cpp	2008-04-12 23:54:09 UTC (rev 31493)
+++ scummvm/trunk/engines/kyra/sequences_v2.cpp	2008-04-12 23:55:26 UTC (rev 31494)
@@ -2557,12 +2557,10 @@
 
 	if (dstH > 0) {
 		for (int i = 0; i < 4; i++) {
-			int p = _screen->setCurPage(4);
 			const ItemAnimData_v1 *def = &_demoAnimData[i];
 			ActiveItemAnim *a = &_activeItemAnim[i];
 
-			_screen->drawBox(12, def->y - 8, 28, def->y + 8, 0);
-			_screen->setCurPage(p);
+			_screen->fillRect(12, def->y - 8, 28, def->y + 8, 0, 4);
 			_screen->drawShape(4, _defaultShapeTable[def->itemIndex + def->frames[a->currentFrame]], 12, def->y - 8, 0, 0);
 			if(_seqFrameCounter % 2 == 0)
 				a->currentFrame = ++a->currentFrame % 20;
@@ -2635,16 +2633,17 @@
 			numShp++;
 			_defaultShapeTable[numShp] = _screen->getPtrToShape(_newShapeFiledata, numShp);
 		} while (_defaultShapeTable[numShp]);
+		_menu = 0;
+	} else {	
+		MainMenu::StaticData data = {
+			{ _sequenceStrings[97], _sequenceStrings[96], _sequenceStrings[95], _sequenceStrings[98] },
+			{ 0x01, 0x04, 0x0C, 0x04, 0x00, 0xd7, 0xd6, 0x00, 0x01, 0x02, 0x03 },
+			{ 0xd8, 0xda, 0xd9, 0xd8 },
+			0xd7, 0xd6
+		};
+		_menu = new MainMenu(this);
+		_menu->init(data, MainMenu::Animation());
 	}
-
-	MainMenu::StaticData data = {
-		{ _sequenceStrings[97], _sequenceStrings[96], _sequenceStrings[95], _sequenceStrings[98] },
-		{ 0x01, 0x04, 0x0C, 0x04, 0x00, 0xd7, 0xd6, 0x00, 0x01, 0x02, 0x03 },
-		{ 0xd8, 0xda, 0xd9, 0xd8 },
-		0xd7, 0xd6
-	};
-	_menu = new MainMenu(this);
-	_menu->init(data, MainMenu::Animation());
 }
 
 void KyraEngine_v2::seq_uninit() {
@@ -2668,8 +2667,10 @@
 
 	memset(&_defaultShapeTable, 0, sizeof(_defaultShapeTable));
 
-	delete _menu;
-	_menu = 0;
+	if (_menu) {
+		delete _menu;
+		_menu = 0;
+	}
 }
 
 #pragma mark -


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