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

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Sat Mar 14 16:06:02 CET 2009


Revision: 39393
          http://scummvm.svn.sourceforge.net/scummvm/?rev=39393&view=rev
Author:   athrxx
Date:     2009-03-14 15:06:02 +0000 (Sat, 14 Mar 2009)

Log Message:
-----------
LOL: magic atlas can now be picked up (but it can't be used)

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/gui_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/script_tim.cpp
    scummvm/trunk/engines/kyra/script_tim.h
    scummvm/trunk/engines/kyra/sprites_lol.cpp

Modified: scummvm/trunk/engines/kyra/gui_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_lol.cpp	2009-03-14 14:58:19 UTC (rev 39392)
+++ scummvm/trunk/engines/kyra/gui_lol.cpp	2009-03-14 15:06:02 UTC (rev 39393)
@@ -1398,6 +1398,13 @@
 }
 
 int LoLEngine::clickedAutomap(Button *button) {
+	if (!(_gameFlags[15] & 0x1000))
+		return 0;
+
+	// displayAutopmap();
+
+	gui_drawPlayField();
+	setPaletteBrightness(_screen->_currentPalette, _brightness, _lampOilStatus);
 	return 1;
 }
 

Modified: scummvm/trunk/engines/kyra/lol.h
===================================================================
--- scummvm/trunk/engines/kyra/lol.h	2009-03-14 14:58:19 UTC (rev 39392)
+++ scummvm/trunk/engines/kyra/lol.h	2009-03-14 15:06:02 UTC (rev 39393)
@@ -500,6 +500,8 @@
 	uint16 _globalScriptVars[16];
 
 	// emc opcode
+	int olol_setWallType(EMCState *script);
+	int olol_getWallType(EMCState *script);
 	int olol_drawScene(EMCState *script);
 	int olol_delay(EMCState *script);
 	int olol_setGameFlag(EMCState *script);
@@ -534,7 +536,7 @@
 	int olol_getGlobalVar(EMCState *script);
 	int olol_setGlobalVar(EMCState *script);
 	int olol_triggerDoorSwitch(EMCState *script);
-	int olol_updateSceneAnimations(EMCState *script);
+	int olol_updateBlockAnimations(EMCState *script);
 	int olol_mapShapeToBlock(EMCState *script);
 	int olol_resetBlockShapeAssignment(EMCState *script);
 	int olol_copyRegion(EMCState *script);
@@ -760,7 +762,7 @@
 	void drawDecorations(int index);
 	void drawIceShapes(int index, int iceShapeIndex);
 	void drawScriptShapes(int pageNum);
-	void updateSceneAnimations(int block, int wall, int val);
+	void setWallType(int block, int wall, int val);
 	void updateSceneWindow();
 
 	void setSequenceGui(int x, int y, int w, int h, int enableFlags);
@@ -796,7 +798,7 @@
 	void movePartySmoothScrollTurnRight(int speed);
 
 	int smoothScrollDrawSpecialShape(int pageNum);
-	void setLF2(int block);
+	void updateAutoMap(int block);
 
 	struct OpenDoorState {
 		uint16 block;
@@ -981,7 +983,7 @@
 	// monsters
 	void loadMonsterShapes(const char *file, int monsterIndex, int b);
 	void releaseMonsterShapes(int monsterIndex);
-	int placeMonstersUnk(int block);
+	int disableMonstersForBlock(int block);
 	void setMonsterMode(MonsterInPlay *monster, int a);
 	void placeMonster(MonsterInPlay *monster, uint16 x, uint16 y);
 	int calcMonsterDirection(uint16 x1, uint16 y1, uint16 x2, uint16 y2);

Modified: scummvm/trunk/engines/kyra/scene_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/scene_lol.cpp	2009-03-14 14:58:19 UTC (rev 39392)
+++ scummvm/trunk/engines/kyra/scene_lol.cpp	2009-03-14 15:06:02 UTC (rev 39393)
@@ -84,7 +84,7 @@
 	runInfScript(filename);
 
 	addLevelItems();
-	placeMonstersUnk(_currentBlock);
+	disableMonstersForBlock(_currentBlock);
 
 	_screen->generateGrayOverlay(_screen->_currentPalette, _screen->_grayOverlay,32, 16, 0, 0, 128, true);
 
@@ -643,7 +643,7 @@
 		}		
 	}
 
-	setLF2(_currentBlock);
+	updateAutoMap(_currentBlock);
 }
 
 uint16 LoLEngine::calcNewBlockPosition(uint16 curBlock, uint16 direction) {
@@ -1103,7 +1103,7 @@
 	return 0;
 }
 
-void LoLEngine::setLF2(int block) {
+void LoLEngine::updateAutoMap(int block) {
 	if (!(_gameFlags[15] & 0x1000))
 		return;
 	_levelBlockProperties[block].flags |= 7;
@@ -1138,7 +1138,7 @@
 	_sceneUpdateRequired = false;
 }
 
-void LoLEngine::updateSceneAnimations(int block, int wall, int val) {
+void LoLEngine::setWallType(int block, int wall, int val) {
 	if (wall == -1) {
 		for (int i = 0; i < 4; i++)
 			_levelBlockProperties[block].walls[i] = val;

Modified: scummvm/trunk/engines/kyra/script_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_lol.cpp	2009-03-14 14:58:19 UTC (rev 39392)
+++ scummvm/trunk/engines/kyra/script_lol.cpp	2009-03-14 15:06:02 UTC (rev 39393)
@@ -112,6 +112,19 @@
 	return false;
 }
 
+int LoLEngine::olol_setWallType(EMCState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_setWallType(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
+	if (_wllWallFlags[stackPos(2)] & 4)
+		disableMonstersForBlock(stackPos(0));
+	setWallType(stackPos(0), stackPos(1), stackPos(2));
+	return 1;
+}
+
+int LoLEngine::olol_getWallType(EMCState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_getWallType(%p) (%d, %d)", (const void *)script, stackPos(0), stackPos(1));
+	return _levelBlockProperties[stackPos(0)].walls[stackPos(1) & 3];
+}
+
 int LoLEngine::olol_drawScene(EMCState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_drawScene(%p) (%d)", (const void *)script, stackPos(0));
 	drawScene(stackPos(0));
@@ -555,7 +568,7 @@
 	case 0:
 		_currentBlock = b;
 		calcCoordinates(_partyPosX, _partyPosY, _currentBlock, 0x80, 0x80);
-		setLF2(_currentBlock);
+		updateAutoMap(_currentBlock);
 		break;
 
 	case 1:
@@ -626,11 +639,11 @@
 	return 1;
 }
 
-int LoLEngine::olol_updateSceneAnimations(EMCState *script) {
-	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_updateSceneAnimations(%p) (%d, %d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3));
+int LoLEngine::olol_updateBlockAnimations(EMCState *script) {
+	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_updateBlockAnimations(%p) (%d, %d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2), stackPos(3));
 	int block = stackPos(0);
 	int wall = stackPos(1);
-	updateSceneAnimations(block, wall, _levelBlockProperties[block].walls[(wall == -1) ? 0 : wall] == stackPos(2) ? stackPos(3) : stackPos(2));
+	setWallType(block, wall, _levelBlockProperties[block].walls[(wall == -1) ? 0 : wall] == stackPos(2) ? stackPos(3) : stackPos(2));
 	return 0;
 }
 
@@ -1031,7 +1044,7 @@
 
 int LoLEngine::olol_processButtonClick(EMCState *script) {
 	debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_processButtonClick(%p) (%d)", (const void *)script, stackPos(0));
-	_tim->resetDialogueState(_activeTim[stackPos(0)]);
+	_tim->forceDialogue(_activeTim[stackPos(0)]);
 	return 1;
 }
 
@@ -1339,8 +1352,8 @@
 
 	SetOpcodeTable(_opcodes);
 	// 0x00
-	OpcodeUnImpl();
-	OpcodeUnImpl();
+	Opcode(olol_setWallType);
+	Opcode(olol_getWallType);
 	Opcode(olol_drawScene);
 	Opcode(o1_getRand);
 
@@ -1417,7 +1430,7 @@
 	OpcodeUnImpl();
 
 	// 0x34
-	Opcode(olol_updateSceneAnimations);
+	Opcode(olol_updateBlockAnimations);
 	Opcode(olol_mapShapeToBlock);
 	Opcode(olol_resetBlockShapeAssignment);
 	Opcode(olol_copyRegion);

Modified: scummvm/trunk/engines/kyra/script_tim.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script_tim.cpp	2009-03-14 14:58:19 UTC (rev 39392)
+++ scummvm/trunk/engines/kyra/script_tim.cpp	2009-03-14 15:06:02 UTC (rev 39393)
@@ -1125,7 +1125,7 @@
 	return res;
 }
 
-void TIMInterpreter_LoL::resetDialogueState(TIM *tim) {
+void TIMInterpreter_LoL::forceDialogue(TIM *tim) {
 	if (!tim)
 		return;
 

Modified: scummvm/trunk/engines/kyra/script_tim.h
===================================================================
--- scummvm/trunk/engines/kyra/script_tim.h	2009-03-14 14:58:19 UTC (rev 39392)
+++ scummvm/trunk/engines/kyra/script_tim.h	2009-03-14 15:06:02 UTC (rev 39393)
@@ -144,7 +144,7 @@
 	virtual void stopBackgroundAnimation(int animIndex) {}
 	virtual void updateBackgroundAnimation(int animIndex) {}
 
-	virtual void resetDialogueState(TIM *tim) {}
+	virtual void forceDialogue(TIM *tim) {}
 
 	int _drawPage2;
 
@@ -236,7 +236,7 @@
 	void stopBackgroundAnimation(int animIndex);
 	void updateBackgroundAnimation(int animIndex);	
 
-	void resetDialogueState(TIM *tim);
+	void forceDialogue(TIM *tim);
 		
 private:
 	KyraEngine_v1 *vm();

Modified: scummvm/trunk/engines/kyra/sprites_lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sprites_lol.cpp	2009-03-14 14:58:19 UTC (rev 39392)
+++ scummvm/trunk/engines/kyra/sprites_lol.cpp	2009-03-14 15:06:02 UTC (rev 39393)
@@ -135,7 +135,7 @@
 	}
 }
 
-int LoLEngine::placeMonstersUnk(int block) {
+int LoLEngine::disableMonstersForBlock(int block) {
 	int i = _levelBlockProperties[block].itemMonsterIndex;
 	int cnt = 0;
 	MonsterInPlay *t = 0;


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