summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcookiecrumbs <cookiecrumbs@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-08-07 19:11:54 +0000
committercookiecrumbs <cookiecrumbs@54d463be-8e91-2dee-dedb-b68131a5f0ec>2012-08-07 19:11:54 +0000
commit193477a496b615adb2894f90c608ff064a805439 (patch)
tree078431dd81d0a4bb19f26f55998d5d9e63893b39
parentb6db5047e42c24093ed908385d80fe759140e250 (diff)
downloadhercules-193477a496b615adb2894f90c608ff064a805439.tar.gz
hercules-193477a496b615adb2894f90c608ff064a805439.tar.bz2
hercules-193477a496b615adb2894f90c608ff064a805439.tar.xz
hercules-193477a496b615adb2894f90c608ff064a805439.zip
Follow up to r16479 fixed a bug where SC_CLOAKING would freeze the character on equipment switch (example: using Frilldora card on a Garment and unequipping).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16596 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/status.c3
-rw-r--r--src/map/unit.c2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/map/status.c b/src/map/status.c
index 32020004f..18b5a343b 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -986,7 +986,6 @@ void initChangeTables(void) {
StatusChangeStateTable[SC_STOP] |= SCS_NOMOVE;
StatusChangeStateTable[SC_CLOSECONFINE] |= SCS_NOMOVE;
StatusChangeStateTable[SC_CLOSECONFINE2] |= SCS_NOMOVE;
- StatusChangeStateTable[SC_CLOAKING] |= SCS_NOMOVE|SCS_NOMOVECOND;
StatusChangeStateTable[SC_MADNESSCANCEL] |= SCS_NOMOVE;
StatusChangeStateTable[SC_GRAVITATION] |= SCS_NOMOVE|SCS_NOMOVECOND;
StatusChangeStateTable[SC_WHITEIMPRISON] |= SCS_NOMOVE;
@@ -3449,8 +3448,6 @@ void status_calc_state( struct block_list *bl, struct status_change *sc, enum sc
(sc->data[SC_GOSPEL] && sc->data[SC_GOSPEL]->val4 == BCT_SELF) // cannot move while gospel is in effect
|| (sc->data[SC_BASILICA] && sc->data[SC_BASILICA]->val4 == bl->id) // Basilica caster cannot move
|| (sc->data[SC_GRAVITATION] && sc->data[SC_GRAVITATION]->val3 == BCT_SELF)
- || (sc->data[SC_CLOAKING] && //Need wall at level 1-2
- sc->data[SC_CLOAKING]->val1 < 3 && !(sc->data[SC_CLOAKING]->val4&1))
|| (sc->data[SC_CRYSTALIZE] && bl->type != BL_MOB)
|| (sc->data[SC_CAMOUFLAGE] && sc->data[SC_CAMOUFLAGE]->val1 < 3
&& !(sc->data[SC_CAMOUFLAGE]->val3&1))
diff --git a/src/map/unit.c b/src/map/unit.c
index 339f0a988..089a5520e 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -925,6 +925,8 @@ int unit_can_move(struct block_list *bl)
(sc->data[SC_DANCING]->val1&0xFFFF) == CG_MOONLIT ||
(sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE
) )
+ || (sc->data[SC_CLOAKING] && //Need wall at level 1-2
+ sc->data[SC_CLOAKING]->val1 < 3 && !(sc->data[SC_CLOAKING]->val4&1))
)
return 0;