
Untitled
By: a guest on
May 2nd, 2012 | syntax:
C | size: 1.19 KB | hits: 19 | expires: Never
bool condition = ( flag&SCB_STATECOND )?true:false;
if( !sc )
return;
if( flag&SCB_NOMOVE ) {
if ( sc->count ) {
if( !condition )
sc->cant.move += ( start ? 1 : -1 );
else if( (sc->data[SC_SPIDERWEB] && sc->data[SC_SPIDERWEB]->val1)
|| (sc->data[SC_DANCING] && sc->data[SC_DANCING]->val4 && (
!sc->data[SC_LONGING] ||
(sc->data[SC_DANCING]->val1&0xFFFF) == CG_MOONLIT ||
(sc->data[SC_DANCING]->val1&0xFFFF) == CG_HERMODE
) )
|| (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_FEAR] && sc->data[SC_FEAR]->val2 > 0)
) {
sc->cant.move += ( start ? 1 : -1 );
}
} else /* no sc at all, we can zero without any extra weight over our conciousness */
sc->cant.move = 0;
}