void CASW_Weapon::GetButtons(bool& bAttack1, bool& bAttack2, bool& bReload, bool& bOldReload, bool& bOldAttack1 ) { CASW_Marine *pMarine = GetMarine(); if (!pMarine) { CBasePlayer *pOwner = dynamic_cast<CBasePlayer*>(GetOwner()); if (pOwner) { bAttack1 = !!(pOwner->m_nButtons & IN_ATTACK); bAttack2 = !!(pOwner->m_nButtons & IN_ATTACK2); bReload = !!(pOwner->m_nButtons & IN_RELOAD); bOldReload = false; bOldAttack1 = false; return; } bAttack1 = false; bAttack2 = false; bReload = false; bOldReload = false; bOldAttack1 = false; return; } // don't allow firing when frozen/stopped from a pickup/kick if ( pMarine->IsControllingTurret() || ( pMarine->GetFlags() & FL_FROZEN ) || ( gpGlobals->curtime < pMarine->GetStopTime() ) || pMarine->GetCurrentMeleeAttack() ) { bAttack1 = false; bAttack2 = false; bReload = false; bOldReload = false; bOldAttack1 = false; return; } if (pMarine->IsInhabited() && pMarine->GetCommander()) { bAttack1 = !!(pMarine->GetCommander()->m_nButtons & IN_ATTACK); bAttack2 = !!(pMarine->GetCommander()->m_nButtons & IN_ATTACK2); bReload = !!(pMarine->GetCommander()->m_nButtons & IN_RELOAD); bOldReload = !!(pMarine->m_nOldButtons & IN_RELOAD); bOldAttack1 = !!(pMarine->m_nOldButtons & IN_ATTACK); return; } // does our uninhabited marine want to fire? #ifdef GAME_DLL bAttack1 = pMarine->AIWantsToFire(); bAttack2 = pMarine->AIWantsToFire2(); bReload = pMarine->AIWantsToReload(); bOldReload = false; bOldAttack1 = false; return; #endif bAttack1 = false; bAttack2 = false; bReload = false; bOldReload = false; bOldAttack1 = false; return; }