plugins/include/mapchooser.inc
author David Anderson <dvander@alliedmods.net>
Fri Jul 11 05:14:32 2008 +0000 (2008-07-11)
branchrefac-jit
changeset 2190 880e81f30b5e
parent 2168 c24a6fa957db
child 2212 24fcd7ac70f7
permissions -rw-r--r--
GetContext() now returns 'this' as a hack (shouldn't+can't be accessed anyway)
dvander@2168
     1
#if defined _mapchooser_included_
dvander@2168
     2
  #endinput
dvander@2168
     3
#endif
dvander@2168
     4
#define _mapchooser_included_
dvander@2168
     5
dvander@2168
     6
enum NominateResult
dvander@2168
     7
{
dvander@2168
     8
	Nominate_Added,			/** The map was added to the nominate list */
dvander@2168
     9
	Nominate_Replaced,		/** A clients existing nomination was replaced */
dvander@2168
    10
	Nominate_AlreadyInVote,	/** Specified map was already in the vote */
dvander@2168
    11
	Nominate_InvalidMap,	/** Mapname specifed wasn't a valid map */
dvander@2168
    12
	Nominate_VoteFull,		/** This will only occur if force was set to false */
dvander@2168
    13
};
dvander@2168
    14
dvander@2168
    15
enum MapChange
dvander@2168
    16
{
dvander@2168
    17
	MapChange_Instant,		/** Change map as soon as the voting results have come in */
dvander@2168
    18
	MapChange_RoundEnd,		/** Change map at the end of the round */
dvander@2168
    19
	MapChange_MapEnd,		/** Change the sm_nextmap cvar */
dvander@2168
    20
};
dvander@2168
    21
dvander@2168
    22
/**
dvander@2168
    23
 * Attempt to add a map to the mapchooser map list.
dvander@2168
    24
 *
dvander@2168
    25
 * @param map		Map to add.
dvander@2168
    26
 * @param force		Should we force the map in even if it requires overwriting an existing nomination?
dvander@2168
    27
 * @param owner		Client index of the nominater. If the client disconnects the nomination will be removed. Use 0 for constant nominations
dvander@2168
    28
 * @return			Nominate Result of the outcome
dvander@2168
    29
 */
dvander@2168
    30
native NominateResult:NominateMap(const String:map[], bool:force, owner);
dvander@2168
    31
dvander@2168
    32
/**
dvander@2168
    33
 * Gets the current list of excluded maps.
dvander@2168
    34
 *
dvander@2168
    35
 * @param array		An ADT array handle to add the map strings to. Needs to be 
dvander@2168
    36
 * @noreturn
dvander@2168
    37
 */
dvander@2168
    38
native GetExcludeMapList(Handle:array);
dvander@2168
    39
dvander@2168
    40
/**
dvander@2168
    41
 * Checks if MapChooser will allow a vote
dvander@2168
    42
 *
dvander@2168
    43
 * @return			True if a vote can be held, or false if mapchooser is already holding a vote.
dvander@2168
    44
 */
dvander@2168
    45
native bool:CanMapChooserStartVote();
dvander@2168
    46
dvander@2168
    47
/**
dvander@2168
    48
 * Initiates a MapChooser map vote
dvander@2168
    49
 *
dvander@2168
    50
 * Note: If no input array is specified mapchooser will use its internal list. This includes
dvander@2168
    51
 * any nominations and excluded maps (as per mapchoosers convars).
dvander@2168
    52
 *
dvander@2168
    53
 * @param when			MapChange consant of when the resulting mapchange should occur.
dvander@2168
    54
 * @param inputarray	ADT array list of maps to add to the vote.
dvander@2168
    55
 */
dvander@2168
    56
native InitiateMapChooserVote(MapChange:when, Handle:inputarray=INVALID_HANDLE);
dvander@2168
    57
dvander@2168
    58
dvander@2168
    59
/**
dvander@2168
    60
 * A horribly named native that checks if MapChooser's end of map vote has completed.
dvander@2168
    61
 */
dvander@2168
    62
native bool:HasEndOfMapVoteFinished();
dvander@2168
    63
dvander@2168
    64
/**
dvander@2168
    65
 * Called when mapchooser removes a nomination from its list.
dvander@2168
    66
 * Nominations cleared on map start will not trigger this forward
dvander@2168
    67
 */
dvander@2168
    68
forward OnNominationRemoved(String:map[], owner);
dvander@2168
    69
dvander@2168
    70
dvander@2168
    71
public SharedPlugin:__pl_mapchooser = 
dvander@2168
    72
{
dvander@2168
    73
	name = "mapchooser",
dvander@2168
    74
	file = "mapchooser.smx",
dvander@2168
    75
#if defined REQUIRE_PLUGIN
dvander@2168
    76
	required = 1,
dvander@2168
    77
#else
dvander@2168
    78
	required = 0,
dvander@2168
    79
#endif
dvander@2168
    80
};