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/shared/tf/achievements_tf_replay.cpp | |
| download | archived-source-engine-2018-hl2-src-master.tar.xz archived-source-engine-2018-hl2-src-master.zip | |
Diffstat (limited to 'game/shared/tf/achievements_tf_replay.cpp')
| -rw-r--r-- | game/shared/tf/achievements_tf_replay.cpp | 187 |
1 files changed, 187 insertions, 0 deletions
diff --git a/game/shared/tf/achievements_tf_replay.cpp b/game/shared/tf/achievements_tf_replay.cpp new file mode 100644 index 0000000..ea6f4b2 --- /dev/null +++ b/game/shared/tf/achievements_tf_replay.cpp @@ -0,0 +1,187 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + + +#include "cbase.h" + +#ifdef CLIENT_DLL + +#include "achievementmgr.h" +#include "baseachievement.h" +#include "c_tf_player.h" +#include "c_tf_playerresource.h" +#include "tf_gamerules.h" +#include "achievements_tf.h" + +//====================================================================================================================================== +// REPLAY ACHIEVEMENTS +//====================================================================================================================================== + +class CReplayAchievement : public CBaseTFAchievement +{ +public: + virtual bool AlwaysListen() { return true; } + virtual bool LocalPlayerCanEarn() { return true; } + virtual bool AlwaysEnabled() { return true; } +}; + +//---------------------------------------------------------------------------------------------------------------- +class CAchievementTFReplay_SaveReplay : public CReplayAchievement +{ +public: + void Init() + { + SetFlags( ACH_SAVE_GLOBAL ); + ListenForGameEvent( "replay_saved" ); + SetGoal( 1 ); + } + + virtual void FireGameEvent_Internal( IGameEvent *event ) + { + if ( FStrEq( event->GetName(), "replay_saved" ) ) + { + IncrementCount(); + } + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_SaveReplay, ACHIEVEMENT_TF_REPLAY_SAVE_REPLAY, "TF_REPLAY_SAVE_REPLAY", 5 ); + +//---------------------------------------------------------------------------------------------------------------- +class CAchievementTFReplay_PerformanceMode : public CReplayAchievement +{ + void Init() + { + SetFlags( ACH_SAVE_GLOBAL ); + ListenForGameEvent( "entered_performance_mode" ); + SetGoal( 1 ); + } + + virtual void FireGameEvent_Internal( IGameEvent *event ) + { + if ( FStrEq( event->GetName(), "entered_performance_mode" ) ) + { + IncrementCount(); + } + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_PerformanceMode, ACHIEVEMENT_TF_REPLAY_PERFORMANCE_MODE, "TF_REPLAY_PERFORMANCE_MODE", 5 ); + +//---------------------------------------------------------------------------------------------------------------- +class CAchievementTFReplay_BrowseReplays : public CReplayAchievement +{ + void Init() + { + SetFlags( ACH_SAVE_GLOBAL ); + ListenForGameEvent( "browse_replays" ); + SetGoal( 1 ); + } + + virtual void FireGameEvent_Internal( IGameEvent *event ) + { + if ( FStrEq( event->GetName(), "browse_replays" ) ) + { + IncrementCount(); + } + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_BrowseReplays, ACHIEVEMENT_TF_REPLAY_BROWSE_REPLAYS, "TF_REPLAY_BROWSE_REPLAYS", 5 ); + +//---------------------------------------------------------------------------------------------------------------- +class CAchievementTFReplay_EditTime : public CReplayAchievement +{ + void Init() + { + SetFlags( ACH_SAVE_GLOBAL ); + SetGoal( 1 ); + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_EditTime, ACHIEVEMENT_TF_REPLAY_EDIT_TIME, "TF_REPLAY_EDIT_TIME", 5 ); + + +//---------------------------------------------------------------------------------------------------------------- + +class CAchievementTFReplay_YouTube_Views_Tier : public CReplayAchievement +{ +public: + void Init() + { + SetFlags( ACH_SAVE_GLOBAL ); + ListenForGameEvent( "replay_youtube_stats" ); + SetStoreProgressInSteam( true ); + SetStat( "TF_REPLAY_YOUTUBE_VIEWS" ); + } + + virtual void FireGameEvent_Internal( IGameEvent *event ) + { + if ( FStrEq( event->GetName(), "replay_youtube_stats" ) ) + { + int iCurrentCount = GetCount(); + int iNewCount = event->GetInt( "views" ); + if ( iNewCount > iCurrentCount ) + { + IncrementCount( iNewCount - iCurrentCount ); + } + } + } + + virtual bool ShouldShowProgressNotification() { return false; } +}; + +class CAchievementTFReplay_YouTube_Views_Tier1 : public CAchievementTFReplay_YouTube_Views_Tier +{ + DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier ); +public: + void Init() + { + BaseClass::Init(); + + SetGoal( 100 ); + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Tier1, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_TIER1, "TF_REPLAY_YOUTUBE_VIEWS_TIER1", 5 ); + +class CAchievementTFReplay_YouTube_Views_Tier2 : public CAchievementTFReplay_YouTube_Views_Tier +{ + DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier ); +public: + void Init() + { + BaseClass::Init(); + SetGoal( 1000 ); + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Tier2, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_TIER2, "TF_REPLAY_YOUTUBE_VIEWS_TIER2", 5 ); + +class CAchievementTFReplay_YouTube_Views_Tier3 : public CAchievementTFReplay_YouTube_Views_Tier +{ + DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier ); +public: + void Init() + { + BaseClass::Init(); + SetGoal( 10000 ); + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Tier3, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_TIER3, "TF_REPLAY_YOUTUBE_VIEWS_TIER3", 5 ); + +class CAchievementTFReplay_YouTube_Views_Highest : public CAchievementTFReplay_YouTube_Views_Tier +{ + DECLARE_CLASS( CAchievementTFReplay_YouTube_Views_Tier1, CAchievementTFReplay_YouTube_Views_Tier ); +public: + void Init() + { + BaseClass::Init(); + SetGoal( 100000 ); + } +}; +DECLARE_ACHIEVEMENT( CAchievementTFReplay_YouTube_Views_Highest, ACHIEVEMENT_TF_REPLAY_YOUTUBE_VIEWS_HIGHEST, "TF_REPLAY_YOUTUBE_VIEWS_HIGHEST", 5 ); + +//---------------------------------------------------------------------------------------------------------------- + +#endif // CLIENT_DLL + + + |