aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra
diff options
context:
space:
mode:
authorFlorian Kagerer2009-06-06 14:14:07 +0000
committerFlorian Kagerer2009-06-06 14:14:07 +0000
commitad1b53472b8a5e9c89b898bd67d16548e9b3e8f7 (patch)
treeac72cc470ed3d756bfa991174f93df14fd5bd8ca /engines/kyra
parentbc6d19aa1a7fea4f1cef3f0bbeb5d42739fafa80 (diff)
downloadscummvm-rg350-ad1b53472b8a5e9c89b898bd67d16548e9b3e8f7.tar.gz
scummvm-rg350-ad1b53472b8a5e9c89b898bd67d16548e9b3e8f7.tar.bz2
scummvm-rg350-ad1b53472b8a5e9c89b898bd67d16548e9b3e8f7.zip
LOL: fixed vaelan's cube
svn-id: r41223
Diffstat (limited to 'engines/kyra')
-rw-r--r--engines/kyra/lol.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index 5c494b5180..31062e41fa 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -2713,11 +2713,11 @@ int LoLEngine::processMagicVaelansCube() {
uint16 o = _levelBlockProperties[bl].assignedObjects;
while (o & 0x8000) {
MonsterInPlay *m = &_monsters[o & 0x7fff];
- o = m->nextAssignedObject;
if (m->properties->flags & 0x1000) {
inflictDamage(o, 100, 0xffff, 0, 0x80);
v = 1;
}
+ o = m->nextAssignedObject;
}
ctime = _system->getMillis();
@@ -3079,14 +3079,14 @@ int LoLEngine::battleHitSkillTest(int16 attacker, int16 target, int skill) {
sk = 100 - _monsters[target & 0x7fff].properties->skillLevel;
} else {
hitChanceModifier = _characters[attacker].defaultModifiers[0];
- uint8 m = _characters[attacker].skillModifiers[skill];
+ int8 m = _characters[attacker].skillModifiers[skill];
if (skill == 1)
m *= 3;
sk = 100 - (_characters[attacker].skillLevels[skill] + m);
}
if (target & 0x8000) {
- evadeChanceModifier = _monsters[target & 0x7fff].properties->fightingStats[3];
+ evadeChanceModifier = (_monsterModifiers[9 + _monsterDifficulty] * _monsters[target & 0x7fff].properties->fightingStats[3]) >> 8;
_monsters[target & 0x7fff].flags |= 0x10;
} else {
evadeChanceModifier = _characters[target].defaultModifiers[3];
@@ -3096,7 +3096,7 @@ int LoLEngine::battleHitSkillTest(int16 attacker, int16 target, int skill) {
if (r >= sk)
return 2;
- uint16 v = ((_monsterModifiers[9 + _monsterDifficulty] * evadeChanceModifier) & 0xffffff00) / hitChanceModifier;
+ uint16 v = (evadeChanceModifier << 8) / hitChanceModifier;
if (r < v)
return 0;