summaryrefslogtreecommitdiff
path: root/game/shared/tf/achievements_tf_replay.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /game/shared/tf/achievements_tf_replay.cpp
downloadarchived-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.cpp187
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
+
+
+