summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 0be72cc2e..d3d9f3544 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -502,6 +502,7 @@ void initChangeTables(void)
StatusChangeFlagTable[SC_ARMOR_ELEMENT] |= SCB_PC;
StatusChangeFlagTable[SC_ARMOR_RESIST] |= SCB_PC;
StatusChangeFlagTable[SC_SPCOST_RATE] |= SCB_PC;
+ StatusChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED;
if (!battle_config.display_hallucination) //Disable Hallucination.
StatusIconChangeTable[SC_HALLUCINATION] = SI_BLANK;
@@ -3706,7 +3707,6 @@ static signed short status_calc_mdef2(struct block_list *bl, struct status_chang
static unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed)
{
-
//Default speed coming in means there's no speed_rate adjustments.
int new_speed = speed;
bool default_speed = (speed == DEFAULT_WALK_SPEED);
@@ -3714,6 +3714,9 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha
if(!sc || !sc->count)
return cap_value(speed,10,USHRT_MAX);
+ if(sc->data[SC_WALKSPEED])
+ new_speed = sc->data[SC_WALKSPEED]->val1;
+
// Fixed reductions
if(sc->data[SC_CURSE])
new_speed += 450;
@@ -3739,8 +3742,6 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha
if(sc->data[SC_FUSION])
new_speed -= new_speed * 25/100;
-
-
//These only apply if you don't have increase agi and/or fusion and/or sprint
if(speed == new_speed)
{