summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/status.c6
2 files changed, 7 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index c5fc31863..2597bc998 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/07/07
+ * Status_calc_bl will no longer stop you from attacking/walking when the
+ mode is changed unless the new mode no longer includes
+ "can-attack"/"can-move" respectively. [Skotlex]
* Should have fixed clif_item_sub to properly store pet egg/armor data.
There should be no more "random refine levels" bugs related to these.
[Skotlex]
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.