diff --git a/src/droid.c b/src/droid.c index a5382e555..6b5e3c1df 100644 --- a/src/droid.c +++ b/src/droid.c @@ -2455,9 +2455,6 @@ UDWORD calcDroidSpeed(UDWORD baseSpeed, UDWORD terrainType, UDWORD propIndex, UD // Factor in terrain speed *= getSpeedFactor(terrainType, propulsion->propulsionType); speed /= 100; - // Factor in experience - speed *= (100 + EXP_SPEED_BONUS * level); - speed /= 100; // Need to ensure doesn't go over the max speed possible for this propulsion if (speed > propulsion->maxSpeed) @@ -2465,6 +2462,10 @@ UDWORD calcDroidSpeed(UDWORD baseSpeed, UDWORD terrainType, UDWORD propIndex, UD speed = propulsion->maxSpeed; } + // Factor in experience + speed *= (100 + EXP_SPEED_BONUS * level); + speed /= 100; + return speed; } diff --git a/src/move.c b/src/move.c index 2af417670..05eaa389f 100644 --- a/src/move.c +++ b/src/move.c @@ -1857,7 +1857,7 @@ SDWORD moveCalcDroidSpeed(DROID *psDroid) } // now offset the speed for the slope of the droid speed = (MAX_SPEED_PITCH - pitch) * speed / MAX_SPEED_PITCH; - if (speed <= 0) + if (speed <= 10) { // Very nasty hack to deal with buggy maps, where some cliffs are // not properly marked as being cliffs, but too steep to drive over.