summaryrefslogtreecommitdiff
path: root/game/shared/cstrike/achievements_cs.h
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/cstrike/achievements_cs.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'game/shared/cstrike/achievements_cs.h')
-rw-r--r--game/shared/cstrike/achievements_cs.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/game/shared/cstrike/achievements_cs.h b/game/shared/cstrike/achievements_cs.h
new file mode 100644
index 0000000..817a73e
--- /dev/null
+++ b/game/shared/cstrike/achievements_cs.h
@@ -0,0 +1,75 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================
+
+
+#include "cbase.h"
+
+#ifdef CLIENT_DLL
+
+bool CheckWinNoEnemyCaps( IGameEvent *event, int iRole );
+bool IsLocalCSPlayerClass( int iClass );
+bool GameRulesAllowsAchievements( void );
+
+//----------------------------------------------------------------------------------------------------------------
+// Base class for all CS achievements
+class CCSBaseAchievement : public CBaseAchievement
+{
+ DECLARE_CLASS( CCSBaseAchievement, CBaseAchievement );
+public:
+
+ CCSBaseAchievement();
+
+ virtual void GetSettings( KeyValues* pNodeOut ); // serialize
+ virtual void ApplySettings( /* const */ KeyValues* pNodeIn ); // unserialize
+
+ // [dwenger] Necessary for sorting achievements by award time
+ virtual void OnAchieved();
+ bool GetAwardTime( int& year, int& month, int& day, int& hour, int& minute, int& second );
+
+ int64 GetSortKey() const { return GetUnlockTime(); }
+};
+
+
+//----------------------------------------------------------------------------------------------------------------
+// Helper class for achievements that check that the player was playing on a game team for the full round
+class CCSBaseAchievementFullRound : public CCSBaseAchievement
+{
+ DECLARE_CLASS( CCSBaseAchievementFullRound, CCSBaseAchievement );
+public:
+ virtual void Init() ;
+ virtual void ListenForEvents();
+ void FireGameEvent_Internal( IGameEvent *event );
+ bool PlayerWasInEntireRound( float flRoundTime );
+
+ virtual void Event_OnRoundComplete( float flRoundTime, IGameEvent *event ) = 0 ;
+};
+
+
+//----------------------------------------------------------------------------------------------------------------
+// Helper class for achievements based on other achievements
+class CAchievement_Meta : public CCSBaseAchievement
+{
+ DECLARE_CLASS( CAchievement_Meta, CCSBaseAchievement );
+public:
+ CAchievement_Meta();
+ virtual void Init();
+
+#if !defined(NO_STEAM)
+ STEAM_CALLBACK( CAchievement_Meta, Steam_OnUserAchievementStored, UserAchievementStored_t, m_CallbackUserAchievement );
+#endif
+
+protected:
+ void AddRequirement( int nAchievementId );
+
+private:
+ CUtlVector<int> m_requirements;
+};
+
+
+
+extern CAchievementMgr g_AchievementMgrCS; // global achievement mgr for CS
+
+#endif // CLIENT_DLL \ No newline at end of file