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

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Wed Jun 3 21:58:06 CEST 2009


Revision: 41148
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41148&view=rev
Author:   athrxx
Date:     2009-06-03 19:58:06 +0000 (Wed, 03 Jun 2009)

Log Message:
-----------
LOL: implemented guardian spell

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/lol.cpp
    scummvm/trunk/engines/kyra/lol.h

Modified: scummvm/trunk/engines/kyra/lol.cpp
===================================================================
--- scummvm/trunk/engines/kyra/lol.cpp	2009-06-03 19:11:11 UTC (rev 41147)
+++ scummvm/trunk/engines/kyra/lol.cpp	2009-06-03 19:58:06 UTC (rev 41148)
@@ -1915,7 +1915,7 @@
 }
 
 int LoLEngine::castGuardian(ActiveSpell *a) {
-	processMagicGuardian(a->charNum, a->level);
+	processMagicGuardian(a->charNum);
 	return 1;
 }
 
@@ -2655,6 +2655,7 @@
 	mov->close();
 
 	_screen->copyPage(12, 0);
+	_screen->updateScreen();
 	updateDrawPage2();
 
 	snd_playQueuedEffects();
@@ -2663,7 +2664,41 @@
 	delete mov;
 }
 
-void LoLEngine::processMagicGuardian(int charNum, int spellLevel) {
+void LoLEngine::processMagicGuardian(int charNum) {
+	uint16 targetBlock = 0;
+	int dist = getSpellTargetBlock(_currentBlock, _currentDirection, 3, targetBlock);
+
+	int cp = _screen->setCurPage(2);
+	_screen->copyPage(0, 2);
+	_screen->copyPage(2, 12);
+
+	WSAMovie_v2 *mov = new WSAMovie_v2(this, _screen);
+	mov->open("guardian.wsa", 0, 0);
+	if (!mov->opened())
+		error("Guardian: Unable to load guardian.wsa");
+	snd_playSoundEffect(156, -1);
+	playSpellAnimation(mov, 0, 37, 2, 112, 0, 0, 0, 0, 0, false);
+
+	_screen->copyPage(2, 12);
+	
+	uint16 bl = calcNewBlockPosition(_currentBlock, _currentDirection);
+	bool a = (_levelBlockProperties[bl].assignedObjects & 0x8000) ? true : false;
+	inflictMagicalDamageForBlock(bl, charNum, 200, 0x80);
+
+	_screen->copyPage(12, 2);
+	updateDrawPage2();
+	gui_drawScene(2);
+
+	_screen->copyPage(2, 12);
+	snd_playSoundEffect(176, -1);
+	playSpellAnimation(mov, 38, 48, 8, 112, 0, 0, 0, 0, 0, false);
+	
+	mov->close();
+	delete mov;
+
+	_screen->setCurPage(cp);
+	gui_drawPlayField();
+	updateDrawPage2();
 }
 
 void LoLEngine::callbackProcessMagicSwarm(WSAMovie_v2 *mov, int x, int y) {

Modified: scummvm/trunk/engines/kyra/lol.h
===================================================================
--- scummvm/trunk/engines/kyra/lol.h	2009-06-03 19:11:11 UTC (rev 41147)
+++ scummvm/trunk/engines/kyra/lol.h	2009-06-03 19:58:06 UTC (rev 41148)
@@ -1340,7 +1340,7 @@
 	void processMagicLightning(int charNum, int spellLevel);
 	void processMagicFog();
 	void processMagicSwarm(int charNum, int damage);
-	void processMagicGuardian(int charNum, int spellLevel);
+	void processMagicGuardian(int charNum);
 
 	void callbackProcessMagicSwarm(WSAMovie_v2 *mov, int x, int y);
 	void callbackProcessMagicLightning(WSAMovie_v2 *mov, int x, int y);


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