diff options
Diffstat (limited to 'engines/kyra/sprites_lol.cpp')
-rw-r--r-- | engines/kyra/sprites_lol.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/engines/kyra/sprites_lol.cpp b/engines/kyra/sprites_lol.cpp index a68fc003e7..adc3fd09e7 100644 --- a/engines/kyra/sprites_lol.cpp +++ b/engines/kyra/sprites_lol.cpp @@ -506,6 +506,7 @@ int LoLEngine::calcMonsterSkillLevel(int id, int a) { const uint16 *c = getCharacterOrMonsterStats(id); int r = (a << 8) / c[4]; + /* if (!(id & 0x8000)) r = (r * _monsterModifiers[3 + _monsterDifficulty]) >> 8; @@ -514,9 +515,18 @@ int LoLEngine::calcMonsterSkillLevel(int id, int a) { if (_characters[id].skillLevels[1] <= 3) return r; else if (_characters[id].skillLevels[1] <= 7) - return (r- (r >> 2)); + return (r- (r >> 2));*/ - return (r- (r >> 1)); + if (id & 0x8000) { + r = (r * _monsterModifiers[3 + _monsterDifficulty]) >> 8; + } else { + if (_characters[id].skillLevels[1] > 7) + r = (r- (r >> 1)); + else if (_characters[id].skillLevels[1] > 3 && _characters[id].skillLevels[1] <= 7) + r = (r- (r >> 2)); + } + + return r; } int LoLEngine::checkBlockOccupiedByParty(int x, int y, int testFlag) { |