neo-mat/arcemu — comment on commit 8931bdbfaa414bf621399ed53140a1b7f4834dc0
File:  line 0
By jackpoz:

***
TargetSpell->GetProto()->CastingTimeIndex > 0.0f
***
DBCStores.h defines
***
uint32 CastingTimeIndex;
***
so you are comparing a uint32 with a float. Also in the check at line 3733, are the && and || used correctly? without a proper usage of parenthesis it's harder to understand the cases. right now the if check is true when either one of these is true:
- school != 0 and getState() == SPELL_STATE_CASTING
- ChannelInterruptFlags has CHANNEL_INTERRUPT_ON_4 flag
- getState() == SPELL_STATE_PREPARING, CastingTimeIndex > 0, PreventionType == PREVENTION_TYPE_SILENCE and InterruptFlags has CAST_INTERRUPT_ON_INTERRUPT_SCHOOL flag
In the old code in the school was 0 the if check would have been false while in the new code it can be true even if the school is 0. is this intended? does this affect in any way how the code behaves?