aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorFlorian Kagerer2009-05-31 00:25:05 +0000
committerFlorian Kagerer2009-05-31 00:25:05 +0000
commitf2516e648ea1d7a3460895b72068b3c597f48d71 (patch)
treee284239a5484f96116244a0ea6d3a24384527d60 /engines
parent76406c35ec9cfcc247dc326c44a8d7fc00327fbc (diff)
downloadscummvm-rg350-f2516e648ea1d7a3460895b72068b3c597f48d71.tar.gz
scummvm-rg350-f2516e648ea1d7a3460895b72068b3c597f48d71.tar.bz2
scummvm-rg350-f2516e648ea1d7a3460895b72068b3c597f48d71.zip
LOL: fix some valgrind warnings
svn-id: r41052
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/script_lol.cpp8
-rw-r--r--engines/kyra/sprites_lol.cpp14
2 files changed, 17 insertions, 5 deletions
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp
index 43173e0f3a..108190132b 100644
--- a/engines/kyra/script_lol.cpp
+++ b/engines/kyra/script_lol.cpp
@@ -114,8 +114,10 @@ bool LoLEngine::checkSceneUpdateNeed(int func) {
int LoLEngine::olol_setWallType(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_setWallType(%p) (%d, %d, %d)", (const void *)script, stackPos(0), stackPos(1), stackPos(2));
- if (_wllWallFlags[stackPos(2)] & 4)
- deleteMonstersFromBlock(stackPos(0));
+ if (stackPos(2) != -1) {
+ if (_wllWallFlags[stackPos(2)] & 4)
+ deleteMonstersFromBlock(stackPos(0));
+ }
setWallType(stackPos(0), stackPos(1), stackPos(2));
return 1;
}
@@ -227,7 +229,7 @@ int LoLEngine::olol_testGameFlag(EMCState *script) {
int LoLEngine::olol_loadLevelGraphics(EMCState *script) {
debugC(3, kDebugLevelScriptFuncs, "LoLEngine::olol_loadLevelGraphics(%p) (%s, %d, %d, %d, %d, %d)", (const void *)script, stackPosString(0), stackPos(1), stackPos(2), stackPos(3), stackPos(4), stackPos(5));
- loadLevelGraphics(stackPosString(0), stackPos(1), stackPos(2), (uint16)stackPos(3), (uint16)stackPos(4), (stackPos(5) == -1) ? 0 : stackPosString(5));
+ loadLevelGraphics(stackPosString(0), stackPos(1), stackPos(2), stackPos(3) == -1 ? -1 : (uint16)stackPos(3), stackPos(4) == -1 ? -1 : (uint16)stackPos(4), (stackPos(5) == -1) ? 0 : stackPosString(5));
return 1;
}
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) {