[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