diff options
Diffstat (limited to 'game/server/tf/tf_voteissues.h')
| -rw-r--r-- | game/server/tf/tf_voteissues.h | 260 |
1 files changed, 260 insertions, 0 deletions
diff --git a/game/server/tf/tf_voteissues.h b/game/server/tf/tf_voteissues.h new file mode 100644 index 0000000..e70b14f --- /dev/null +++ b/game/server/tf/tf_voteissues.h @@ -0,0 +1,260 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: TF-specific things to vote on +// +//============================================================================= + +#ifndef TF_VOTEISSUES_H +#define TF_VOTEISSUES_H + +#ifdef _WIN32 +#pragma once +#endif + +#include "vote_controller.h" + +class CTFPlayer; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CBaseTFIssue : public CBaseIssue +{ + // Overrides to BaseIssue standard to this mod. +public: + CBaseTFIssue(const char *typeString) : CBaseIssue(typeString) + { + } +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CRestartGameIssue : public CBaseTFIssue +{ +public: + CRestartGameIssue() : CBaseTFIssue( "RestartGame" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_RestartGame") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *forWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CKickIssue : public CBaseTFIssue +{ +public: + CKickIssue() : CBaseTFIssue( "Kick" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_Kick") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *pForWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual bool IsTeamRestrictedVote( void ) OVERRIDE { return true; } + virtual void OnVoteFailed( int iEntityHoldingVote ) OVERRIDE; + virtual void OnVoteStarted( void ) OVERRIDE; + virtual const char *GetDetailsString( void ) OVERRIDE; + virtual bool NeedsPermissionFromGC( void ) OVERRIDE; + +private: + void Init( void ); + bool CreateVoteDataFromDetails( const char *pszDetails ); + void NotifyGCAdHocKick( bool bKickedSuccessfully ); + void PrintLogData( void ); + + CSteamID m_steamIDVoteCaller; + CSteamID m_steamIDVoteTarget; + char m_szTargetPlayerName[MAX_PLAYER_NAME_LENGTH]; + uint32 m_unKickReason; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CChangeLevelIssue : public CBaseTFIssue +{ +public: + CChangeLevelIssue() : CBaseTFIssue( "ChangeLevel" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_ChangeLevel") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanTeamCallVote( int iTeam ) const OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *pForWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual const char *GetDetailsString( void ) OVERRIDE; + virtual bool IsYesNoVote( void ) OVERRIDE; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CNextLevelIssue : public CBaseTFIssue +{ +public: + CNextLevelIssue() : CBaseTFIssue( "NextLevel" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_NextLevel") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanTeamCallVote( int iTeam ) const OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *pForWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual const char *GetDetailsString( void ) OVERRIDE; + virtual bool IsYesNoVote( void ) OVERRIDE; + virtual int GetNumberVoteOptions( void ) OVERRIDE; + virtual bool GetVoteOptions( CUtlVector <const char*> &vecNames ) OVERRIDE; + virtual float GetQuorumRatio( void ) OVERRIDE; + +private: + CUtlVector <const char *> m_IssueOptions; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CExtendLevelIssue : public CBaseTFIssue +{ +public: + CExtendLevelIssue() : CBaseTFIssue( "ExtendLevel" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_ExtendLevel") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *pForWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual float GetQuorumRatio( void ) OVERRIDE; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CScrambleTeams : public CBaseTFIssue +{ +public: + CScrambleTeams() : CBaseTFIssue( "ScrambleTeams" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_ScrambleTeams") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *pForWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CMannVsMachineChangeChallengeIssue : public CBaseTFIssue +{ +public: + CMannVsMachineChangeChallengeIssue() : CBaseTFIssue( "ChangeMission" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_ChangeMission") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanTeamCallVote( int iTeam ) const OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *pForWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual const char *GetDetailsString( void ) OVERRIDE; + virtual bool IsYesNoVote( void ) OVERRIDE; + virtual int GetNumberVoteOptions( void ) OVERRIDE; + +private: + CUtlVector <const char *> m_IssueOptions; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CEnableTemporaryHalloweenIssue : public CBaseTFIssue +{ +public: + CEnableTemporaryHalloweenIssue() : CBaseTFIssue( "Eternaween" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_Eternaween") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual void OnVoteFailed( int iEntityHoldingVote ) OVERRIDE; + + virtual bool IsYesNoVote( void ) OVERRIDE { return true; } + virtual bool IsEnabled( void ) OVERRIDE { return false; } // we'll manually set up this vote when an item gets used + virtual const char *GetDisplayString( void ) OVERRIDE { return "#TF_vote_eternaween"; } + virtual const char *GetVotePassedString( void ) OVERRIDE { return "#TF_vote_passed_eternaween"; } + + virtual bool BRecordVoteFailureEventForEntity( int iVoteCallingEntityIndex ) const OVERRIDE { return true; } + + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *forWhom ) OVERRIDE; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CTeamAutoBalanceIssue : public CBaseTFIssue +{ +public: + CTeamAutoBalanceIssue() : CBaseTFIssue( "TeamAutoBalance" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_TeamAutoBalance") + + virtual const char *GetTypeStringLocalized( void ) OVERRIDE; + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *forWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual float GetQuorumRatio( void ) OVERRIDE; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CClassLimitsIssue : public CBaseTFIssue +{ +public: + CClassLimitsIssue() : CBaseTFIssue( "ClassLimits" ) { } // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_ClassLimits") + + virtual const char *GetTypeStringLocalized( void ) OVERRIDE; + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *forWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual const char *GetDetailsString( void ) OVERRIDE; +private: + CUtlString m_sRetString; +}; + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +class CPauseGameIssue : public CBaseTFIssue +{ +public: + CPauseGameIssue() : CBaseTFIssue( "PauseGame" ) {} // This string will have "Vote_" glued onto the front for localization (i.e. "#Vote_PauseGame") + + virtual void ExecuteCommand( void ) OVERRIDE; + virtual bool IsEnabled( void ) OVERRIDE; + virtual bool CanCallVote( int iEntIndex, const char *pszDetails, vote_create_failed_t &nFailCode, int &nTime ) OVERRIDE; + virtual const char *GetDisplayString( void ) OVERRIDE; + virtual void ListIssueDetails( CBasePlayer *forWhom ) OVERRIDE; + virtual const char *GetVotePassedString( void ) OVERRIDE; + virtual const char *GetDetailsString( void ) OVERRIDE; +private: + CUtlString m_sRetString; +}; + + +static const char* g_pszVoteKickString = "#TF_Vote_kicked"; + +#endif // TF_VOTEISSUES_H |