void CWeaponKnife::OnAnimationEnd(u32 state) { switch (state) { case eHiding: SwitchState(eHidden); break; case eFire: case eFire2: { if(m_attackStart) { m_attackStart = false; if(GetState()==eFire) m_pHUD->animPlay(random_anim(mhud_attack_e), TRUE, this, GetState()); else m_pHUD->animPlay(random_anim(mhud_attack2_e), TRUE, this, GetState()); Fvector p1, d; p1.set(get_LastFP()); d.set(get_LastFD()); if(H_Parent()) smart_cast<CEntity*>(H_Parent())->g_fireParams(this, p1,d); else break; KnifeStrike(p1,d); } else SwitchState(eIdle); }break; case eShowing: case eIdle: SwitchState(eIdle); break; } }
void CWeaponKnife::OnMotionMark(u32 state, const motion_marks& M) { inherited::OnMotionMark(state, M); if(state==eFire || state==eFire2) { Fvector p1, d; p1.set (get_LastFP()); d.set (get_LastFD()); if(H_Parent()) { smart_cast<CEntity*>(H_Parent())->g_fireParams(this, p1,d); KnifeStrike(p1,d); } } }