summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/status.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/map/status.c b/src/map/status.c
index bce2fd246..4b8a9f9f2 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -2648,8 +2648,10 @@ void status_calc_bl(struct block_list *bl, unsigned long flag)
{
status->mode = status_calc_mode(bl, sc, b_status->mode);
//Since mode changed, reset their state.
- unit_stop_attack(bl);
- unit_stop_walking(bl,0);
+ if (!(status->mode&MD_CANATTACK))
+ unit_stop_attack(bl);
+ if (!(status->mode&MD_CANMOVE))
+ unit_stop_walking(bl,0);
}
// No status changes alter these yet.