diff options
author | Florian Kagerer | 2009-06-06 14:14:07 +0000 |
---|---|---|
committer | Florian Kagerer | 2009-06-06 14:14:07 +0000 |
commit | ad1b53472b8a5e9c89b898bd67d16548e9b3e8f7 (patch) | |
tree | ac72cc470ed3d756bfa991174f93df14fd5bd8ca | |
parent | bc6d19aa1a7fea4f1cef3f0bbeb5d42739fafa80 (diff) | |
download | scummvm-rg350-ad1b53472b8a5e9c89b898bd67d16548e9b3e8f7.tar.gz scummvm-rg350-ad1b53472b8a5e9c89b898bd67d16548e9b3e8f7.tar.bz2 scummvm-rg350-ad1b53472b8a5e9c89b898bd67d16548e9b3e8f7.zip |
LOL: fixed vaelan's cube
svn-id: r41223
-rw-r--r-- | engines/kyra/lol.cpp | 8 |
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; |