diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/client/dod/dod_hud_playerstatus_fireselect.cpp | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/client/dod/dod_hud_playerstatus_fireselect.cpp')
| -rw-r--r-- | game/client/dod/dod_hud_playerstatus_fireselect.cpp | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/game/client/dod/dod_hud_playerstatus_fireselect.cpp b/game/client/dod/dod_hud_playerstatus_fireselect.cpp new file mode 100644 index 0000000..7540b99 --- /dev/null +++ b/game/client/dod/dod_hud_playerstatus_fireselect.cpp @@ -0,0 +1,123 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#include "cbase.h" +#include <KeyValues.h> +#include <vgui/IScheme.h> +#include <vgui/ISurface.h> +#include <vgui/ISystem.h> +#include <vgui_controls/AnimationController.h> +#include <vgui_controls/EditablePanel.h> +#include <vgui_controls/ImagePanel.h> + +#include <vgui/ISurface.h> + +#include "c_dod_team.h" +#include "c_dod_playerresource.h" +#include "c_dod_player.h" + +#include "weapon_dodfireselect.h" +#include "dodcornercutpanel.h" +#include "dod_hud_playerstatus_fireselect.h" + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +CDoDHudFireSelect::CDoDHudFireSelect( vgui::Panel *parent, const char *name ) : vgui::EditablePanel( parent, name ) +{ + m_pBackground = new CDoDCutEditablePanel( this, "FireSelectBackground" ); + + m_pIconMP44 = new CIconPanel( this, "Icon_MP44" ); + m_pIconBAR = new CIconPanel( this, "Icon_BAR" ); + + m_pBulletLeft = new CIconPanel( this, "Bullet_Left" ); + m_pBulletCenter = new CIconPanel( this, "Bullet_Center" ); + m_pBulletRight = new CIconPanel( this, "Bullet_Right" ); + + m_pBulletRight->SetVisible( true ); +} + +void CDoDHudFireSelect::ApplySchemeSettings( vgui::IScheme *pScheme ) +{ + LoadControlSettings( "resource/UI/HudPlayerStatusFireSelect.res" ); + + BaseClass::ApplySchemeSettings( pScheme ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CDoDHudFireSelect::SetVisible( bool state ) +{ + if ( m_pBackground && m_pBackground->IsVisible() != state ) + { + m_pBackground->SetVisible( state ); + } + + m_pBulletLeft->SetVisible( state ); + m_pBulletCenter->SetVisible( state ); + m_pBulletRight->SetVisible( state ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CDoDHudFireSelect::OnThink() +{ + BaseClass::OnThink(); + + C_DODPlayer *pPlayer = C_DODPlayer::GetLocalDODPlayer(); + if ( pPlayer ) + { + CWeaponDODBase *pWeapon = pPlayer->GetActiveDODWeapon(); + if ( pWeapon ) + { + bool bSemiAutoWpn = false; + + if ( pWeapon->IsA( WEAPON_MP44 ) ) + { + m_pIconBAR->SetVisible( false ); + m_pIconMP44->SetVisible( true ); + + bSemiAutoWpn = true; + } + else if ( pWeapon->IsA( WEAPON_BAR ) ) + { + m_pIconBAR->SetVisible( true ); + m_pIconMP44->SetVisible( false ); + + bSemiAutoWpn = true; + } + else + { + m_pIconBAR->SetVisible( false ); + m_pIconMP44->SetVisible( false ); + } + + if ( bSemiAutoWpn ) + { + SetVisible( true ); + + CDODFireSelectWeapon *pFireSelect = dynamic_cast<CDODFireSelectWeapon *>(pWeapon); + + if ( pFireSelect && pFireSelect->IsSemiAuto() ) + { + m_pBulletLeft->SetVisible( false ); + m_pBulletCenter->SetVisible( false ); + } + else + { + m_pBulletLeft->SetVisible( true ); + m_pBulletCenter->SetVisible( true ); + } + } + else + { + SetVisible( false ); + } + } + } +} |