forked from haithun/CoD4X17a_testing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
scr_vm_classfunc.c
67 lines (49 loc) · 2.05 KB
/
scr_vm_classfunc.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
===========================================================================
Copyright (C) 2010-2013 Ninja and TheKelm of the IceOps-Team
This file is part of CoD4X17a-Server source code.
CoD4X17a-Server source code is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
CoD4X17a-Server source code is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>
===========================================================================
*/
#include "q_shared.h"
#include "player.h"
#include "scr_vm.h"
#include "g_shared.h"
#include "misc.h"
#include "g_sv_shared.h"
#include "hl2rcon.h"
__cdecl void ClientScr_SetSessionTeam(gclient_t* gcl, client_fields_t* gfl)
{
short index;
int cid;
if((void*)gcl - (void*)level.clients >= MAX_CLIENTS * sizeof(gclient_t))
{
Scr_Error("Client is not pointing to the level.clients array.");
return;
}
index = Scr_GetConstString(0);
if(index == stringIndex.axis)
gcl->sess.sessionTeam = TEAM_RED;
else if(index == stringIndex.allies)
gcl->sess.sessionTeam = TEAM_BLUE;
else if(index == stringIndex.spectator)
gcl->sess.sessionTeam = TEAM_SPECTATOR;
else if(index == stringIndex.none)
gcl->sess.sessionTeam = TEAM_FREE;
else{
Scr_Error(va("'%s' is an illegal sessionteam string. Must be allies, axis, none, or spectator.", SL_ConvertToString(index)));
return;
}
cid = gcl - level.clients;
ClientUserinfoChanged( cid );
HL2Rcon_EventClientEnterTeam( cid, gcl->sess.sessionTeam );
}