|
|
//========= 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
|