rott/kf_sources/Engine/Classes/VotingHandler.uc
2026-07-14 20:27:09 +07:00

95 lines
2.9 KiB
Ucode

// ====================================================================
// Class: Engine.VotingHandler
//
// Base class for the VotingHandler that handles the server side of
// map and kick voting.
//
// Written by Bruce Bickar
// (c) 2003, Epic Games, Inc. All Rights Reserved
// ====================================================================
class VotingHandler extends Info;
struct MapVoteGameConfig
{
var string GameClass; // code class of game type. XGame.xDeathMatch
var string Prefix; // MapName Prefix. DM, CTF, BR etc.
var string Acronym; // Game Acronym (appended to map names in messages to help identify game type for map)
var string GameName; // Name or Title of the game type. "DeathMatch", "Capture The Flag"
var string Mutators; // Mutators to load with this gametype. "XGame.MutInstaGib,UnrealGame.MutBigHead,UnrealGame.MutLowGrav"
var string Options; // Game Options
};
struct MapVoteGameConfigLite
{
var string GameClass; // code class of game type. XGame.xDeathMatch
var string Prefix; // MapName Prefix. DM, CTF, BR etc.
var string GameName; // Name or Title of the game type. "DeathMatch", "Capture The Flag"
};
struct MapVoteMapList
{
var string MapName;
var int PlayCount;
var int Sequence;
var bool bEnabled;
};
struct MapHistoryInfo
{
var string M; // MapName - Used short/single character var names to keep ini file smaller
var int P; // Play count. Number of times map has been played
var int S; // Sequence. The order in which the map was played
var string G; // per map game options
var string U; // per map mutators
};
struct MapVoteScore
{
var int MapIndex;
var int GameConfigIndex;
var int VoteCount;
};
struct KickVoteScore
{
var int PlayerID;
//var string PlayerName;
var int Team;
var int KickVoteCount;
};
struct AccumulationData // used to save player's unused vote between maps when in Accumulation mode
{
var string Name;
var int VoteCount;
};
function PlayerJoin(PlayerController Player);
function PlayerExit(Controller Exiting);
function bool HandleRestartGame()
{
return true;
}
function string GetConfigArrayData(string ConfigArrayName, int RowIndex, int ColumnIndex); // should return "type;maxlength;value"
function string GetConfigArrayColumnTitle(string ConfigArrayName, int ColumnIndex);
function DeleteConfigArrayItem(string ConfigArrayName, int RowIndex);
function int AddConfigArrayItem(string ConfigArrayName);
function UpdateConfigArrayItem(string ConfigArrayName, int RowIndex, int ColumnIndex, string NewValue);
function int GetConfigArrayItemCount(string ConfigArrayName);
static function FillPlayInfo(PlayInfo PlayInfo)
{
Super.FillPlayInfo(PlayInfo);
}
static function bool IsEnabled()
{
return false;
}
function ReloadAll( optional bool bParam );
// server querying
function GetServerDetails( out GameInfo.ServerResponseLine ServerState );