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

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Fri May 29 01:49:41 CEST 2009


Revision: 40974
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40974&view=rev
Author:   athrxx
Date:     2009-05-28 23:49:41 +0000 (Thu, 28 May 2009)

Log Message:
-----------
LOL: - fix valgrind warning
- fix more input code issues
- add workround for another script bug (some invalid monster sound index in urbish mine level 2)

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/gui_lol.cpp
    scummvm/trunk/engines/kyra/gui_lol.h
    scummvm/trunk/engines/kyra/lol.cpp
    scummvm/trunk/engines/kyra/lol.h
    scummvm/trunk/engines/kyra/scene_lol.cpp
    scummvm/trunk/engines/kyra/script_lol.cpp
    scummvm/trunk/engines/kyra/sprites_lol.cpp

Modified: scummvm/trunk/engines/kyra/gui_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_lol.cpp	2009-05-28 22:48:15 UTC (rev 40973)
+++ scummvm/trunk/engines/kyra/gui_lol.cpp	2009-05-28 23:49:41 UTC (rev 40974)
@@ -746,7 +746,7 @@
 
 void LoLEngine::gui_triggerEvent(int eventType) {
 	Common::Event evt;
-	memset(&evt, 0, sizeof(Common::Event));
+	memset(&evt, 0, sizeof(Common::Event));	
 	evt.mouse.x = _mouseX;
 	evt.mouse.y = _mouseY;
 
@@ -813,6 +813,19 @@
 	_preserveEvents = true;
 }
 
+void LoLEngine::removeInputTop() {
+	if (!_eventList.empty()) {		
+		if (_eventList.begin()->event.type == Common::EVENT_LBUTTONDOWN)
+			_gui->_mouseClick = 1;
+		else if (_eventList.begin()->event.type == Common::EVENT_RBUTTONDOWN)
+			_gui->_mouseClick = 2;
+		else
+			_gui->_mouseClick = 0;
+
+		_eventList.erase(_eventList.begin());
+	}
+}
+
 void LoLEngine::gui_enableDefaultPlayfieldButtons() {
 	gui_resetButtonList();
 	gui_initButtonsFromList(_buttonList1);
@@ -1814,6 +1827,7 @@
 	_scrollDownFunctor = BUTTON_FUNCTOR(GUI_LoL, this, &GUI_LoL::scrollDown);
 	_specialProcessButton = _backUpButtonList = 0;
 	_flagsModifier = 0;
+	_mouseClick = 0;
 	_buttonListChanged = false;
 }
 
@@ -1910,7 +1924,14 @@
 
 	if (_backUpButtonList != buttonList || _buttonListChanged) {
 		_specialProcessButton = 0;
-		//flagsModifier |= 0x2200;
+
+		_flagsModifier = 0;
+		if (_mouseClick == 1)
+			_flagsModifier |= 0x200;
+		if (_mouseClick == 2)
+			_flagsModifier |= 0x2000;
+		_mouseClick = 0;
+		
 		_backUpButtonList = buttonList;
 		_buttonListChanged = false;
 

Modified: scummvm/trunk/engines/kyra/gui_lol.h
===================================================================
--- scummvm/trunk/engines/kyra/gui_lol.h	2009-05-28 22:48:15 UTC (rev 40973)
+++ scummvm/trunk/engines/kyra/gui_lol.h	2009-05-28 23:49:41 UTC (rev 40974)
@@ -57,6 +57,7 @@
 	Button *_backUpButtonList;
 	bool _buttonListChanged;
 	uint16 _flagsModifier;
+	uint8 _mouseClick;
 
 	int scrollUp(Button *button) { return 0; }
 	int scrollDown(Button *button) { return 0; }

Modified: scummvm/trunk/engines/kyra/lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/lol.cpp	2009-05-28 22:48:15 UTC (rev 40973)
+++ scummvm/trunk/engines/kyra/lol.cpp	2009-05-28 23:49:41 UTC (rev 40974)
@@ -128,6 +128,7 @@
 	_currentDirection = 0;
 	_currentBlock = 0;
 	_compassDirection = _compassDirectionIndex = -1;
+	_compassStep = 0;
 	memset(_visibleBlockIndex, 0, sizeof(_visibleBlockIndex));
 
 	_smoothScrollModeNormal = 1;
@@ -148,7 +149,7 @@
 	_levelShapeProperties = 0;
 	_levelShapes = 0;
 	_specialGuiShape = 0;
-	_specialGuiShapeX = _specialGuiShapeY = _specialGuiShapeShadowFlag = 0;
+	_specialGuiShapeX = _specialGuiShapeY = _specialGuiShapeMirrorFlag = 0;
 	_blockDrawingBuffer = 0;
 	_sceneWindowBuffer = 0;
 	memset(_doorShapes, 0, sizeof(_doorShapes));

Modified: scummvm/trunk/engines/kyra/lol.h
===================================================================
--- scummvm/trunk/engines/kyra/lol.h	2009-05-28 22:48:15 UTC (rev 40973)
+++ scummvm/trunk/engines/kyra/lol.h	2009-05-28 23:49:41 UTC (rev 40974)
@@ -503,6 +503,7 @@
 
 	void gui_updateInput();
 	void gui_triggerEvent(int eventType);
+	void removeInputTop();
 	void gui_enableDefaultPlayfieldButtons();
 	void gui_enableSequenceButtons(int x, int y, int w, int h, int enableFlags);
 	void gui_specialSceneRestoreButtons();
@@ -1015,7 +1016,7 @@
 	uint8 *_specialGuiShape;
 	uint16 _specialGuiShapeX;
 	uint16 _specialGuiShapeY;
-	uint16 _specialGuiShapeShadowFlag;
+	uint16 _specialGuiShapeMirrorFlag;
 
 	char _lastSuppFile[12];
 	char _lastOverridePalFile[12];

Modified: scummvm/trunk/engines/kyra/scene_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/scene_lol.cpp	2009-05-28 22:48:15 UTC (rev 40973)
+++ scummvm/trunk/engines/kyra/scene_lol.cpp	2009-05-28 23:49:41 UTC (rev 40974)
@@ -2047,7 +2047,7 @@
 
 	_screen->drawShape(pageNum, _specialGuiShape, _specialGuiShapeX, _specialGuiShapeY, 2, 0);
 
-	if (_specialGuiShapeShadowFlag & 1)
+	if (_specialGuiShapeMirrorFlag & 1)
 		_screen->drawShape(pageNum, _specialGuiShape, _specialGuiShapeX + _specialGuiShape[3], _specialGuiShapeY, 2, 1);
 }
 

Modified: scummvm/trunk/engines/kyra/script_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_lol.cpp	2009-05-28 22:48:15 UTC (rev 40973)
+++ scummvm/trunk/engines/kyra/script_lol.cpp	2009-05-28 23:49:41 UTC (rev 40974)
@@ -1873,11 +1873,11 @@
 		_specialGuiShape = _levelShapes[_levelShapeProperties[_wllShapeMap[stackPos(0)]].shapeIndex[stackPos(1)]];
 		_specialGuiShapeX = stackPos(2);
 		_specialGuiShapeY = stackPos(3);
-		_specialGuiShapeShadowFlag = stackPos(4);
+		_specialGuiShapeMirrorFlag = stackPos(4);
 
 	} else {
 		_specialGuiShape = 0;
-		_specialGuiShapeX = _specialGuiShapeY = _specialGuiShapeShadowFlag = 0;
+		_specialGuiShapeX = _specialGuiShapeY = _specialGuiShapeMirrorFlag = 0;
 	}
 	return 1;
 }

Modified: scummvm/trunk/engines/kyra/sprites_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sprites_lol.cpp	2009-05-28 22:48:15 UTC (rev 40973)
+++ scummvm/trunk/engines/kyra/sprites_lol.cpp	2009-05-28 23:49:41 UTC (rev 40974)
@@ -265,7 +265,7 @@
 	_levelBlockProperties[monster->block].direction = 5;
 	checkSceneUpdateNeed(monster->block);
 
-	if (monster->properties->sounds[0] == 0 || cont == false)
+	if (monster->properties->sounds[0] == 0 || monster->properties->sounds[0] == 255 || cont == false)
 		return;
 
 	if ((!(monster->properties->flags & 0x100) || ((monster->currentSubFrame & 1) == 0)) && monster->block == t)


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