[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