aboutsummaryrefslogtreecommitdiffstats
path: root/code/game/g_session.c
diff options
context:
space:
mode:
authorzakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea>2005-08-26 17:39:27 +0000
committerzakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea>2005-08-26 17:39:27 +0000
commit6bf20c78f5b69d40bcc4931df93d29198435ab67 (patch)
treee3eda937a05d7db42de725b7013bd0344b987f34 /code/game/g_session.c
parent872d4d7f55af706737ffb361bb76ad13e7496770 (diff)
downloadioquake3-aero-6bf20c78f5b69d40bcc4931df93d29198435ab67.tar.gz
ioquake3-aero-6bf20c78f5b69d40bcc4931df93d29198435ab67.zip
newlines fixed
git-svn-id: svn://svn.icculus.org/quake3/trunk@6 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/game/g_session.c')
-rwxr-xr-xcode/game/g_session.c386
1 files changed, 193 insertions, 193 deletions
diff --git a/code/game/g_session.c b/code/game/g_session.c
index e65c3e1..c2c01d5 100755
--- a/code/game/g_session.c
+++ b/code/game/g_session.c
@@ -1,193 +1,193 @@
-/*
-===========================================================================
-Copyright (C) 1999-2005 Id Software, Inc.
-
-This file is part of Quake III Arena source code.
-
-Quake III Arena source code is free software; you can redistribute it
-and/or modify it under the terms of the GNU General Public License as
-published by the Free Software Foundation; either version 2 of the License,
-or (at your option) any later version.
-
-Quake III Arena 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 General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Foobar; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-===========================================================================
-*/
-//
-#include "g_local.h"
-
-
-/*
-=======================================================================
-
- SESSION DATA
-
-Session data is the only data that stays persistant across level loads
-and tournament restarts.
-=======================================================================
-*/
-
-/*
-================
-G_WriteClientSessionData
-
-Called on game shutdown
-================
-*/
-void G_WriteClientSessionData( gclient_t *client ) {
- const char *s;
- const char *var;
-
- s = va("%i %i %i %i %i %i %i",
- client->sess.sessionTeam,
- client->sess.spectatorTime,
- client->sess.spectatorState,
- client->sess.spectatorClient,
- client->sess.wins,
- client->sess.losses,
- client->sess.teamLeader
- );
-
- var = va( "session%i", client - level.clients );
-
- trap_Cvar_Set( var, s );
-}
-
-/*
-================
-G_ReadSessionData
-
-Called on a reconnect
-================
-*/
-void G_ReadSessionData( gclient_t *client ) {
- char s[MAX_STRING_CHARS];
- const char *var;
-
- // bk001205 - format
- int teamLeader;
- int spectatorState;
- int sessionTeam;
-
- var = va( "session%i", client - level.clients );
- trap_Cvar_VariableStringBuffer( var, s, sizeof(s) );
-
- sscanf( s, "%i %i %i %i %i %i %i",
- &sessionTeam, // bk010221 - format
- &client->sess.spectatorTime,
- &spectatorState, // bk010221 - format
- &client->sess.spectatorClient,
- &client->sess.wins,
- &client->sess.losses,
- &teamLeader // bk010221 - format
- );
-
- // bk001205 - format issues
- client->sess.sessionTeam = (team_t)sessionTeam;
- client->sess.spectatorState = (spectatorState_t)spectatorState;
- client->sess.teamLeader = (qboolean)teamLeader;
-}
-
-
-/*
-================
-G_InitSessionData
-
-Called on a first-time connect
-================
-*/
-void G_InitSessionData( gclient_t *client, char *userinfo ) {
- clientSession_t *sess;
- const char *value;
-
- sess = &client->sess;
-
- // initial team determination
- if ( g_gametype.integer >= GT_TEAM ) {
- if ( g_teamAutoJoin.integer ) {
- sess->sessionTeam = PickTeam( -1 );
- BroadcastTeamChange( client, -1 );
- } else {
- // always spawn as spectator in team games
- sess->sessionTeam = TEAM_SPECTATOR;
- }
- } else {
- value = Info_ValueForKey( userinfo, "team" );
- if ( value[0] == 's' ) {
- // a willing spectator, not a waiting-in-line
- sess->sessionTeam = TEAM_SPECTATOR;
- } else {
- switch ( g_gametype.integer ) {
- default:
- case GT_FFA:
- case GT_SINGLE_PLAYER:
- if ( g_maxGameClients.integer > 0 &&
- level.numNonSpectatorClients >= g_maxGameClients.integer ) {
- sess->sessionTeam = TEAM_SPECTATOR;
- } else {
- sess->sessionTeam = TEAM_FREE;
- }
- break;
- case GT_TOURNAMENT:
- // if the game is full, go into a waiting mode
- if ( level.numNonSpectatorClients >= 2 ) {
- sess->sessionTeam = TEAM_SPECTATOR;
- } else {
- sess->sessionTeam = TEAM_FREE;
- }
- break;
- }
- }
- }
-
- sess->spectatorState = SPECTATOR_FREE;
- sess->spectatorTime = level.time;
-
- G_WriteClientSessionData( client );
-}
-
-
-/*
-==================
-G_InitWorldSession
-
-==================
-*/
-void G_InitWorldSession( void ) {
- char s[MAX_STRING_CHARS];
- int gt;
-
- trap_Cvar_VariableStringBuffer( "session", s, sizeof(s) );
- gt = atoi( s );
-
- // if the gametype changed since the last session, don't use any
- // client sessions
- if ( g_gametype.integer != gt ) {
- level.newSession = qtrue;
- G_Printf( "Gametype changed, clearing session data.\n" );
- }
-}
-
-/*
-==================
-G_WriteSessionData
-
-==================
-*/
-void G_WriteSessionData( void ) {
- int i;
-
- trap_Cvar_Set( "session", va("%i", g_gametype.integer) );
-
- for ( i = 0 ; i < level.maxclients ; i++ ) {
- if ( level.clients[i].pers.connected == CON_CONNECTED ) {
- G_WriteClientSessionData( &level.clients[i] );
- }
- }
-}
+/*
+===========================================================================
+Copyright (C) 1999-2005 Id Software, Inc.
+
+This file is part of Quake III Arena source code.
+
+Quake III Arena source code is free software; you can redistribute it
+and/or modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation; either version 2 of the License,
+or (at your option) any later version.
+
+Quake III Arena 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Foobar; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+===========================================================================
+*/
+//
+#include "g_local.h"
+
+
+/*
+=======================================================================
+
+ SESSION DATA
+
+Session data is the only data that stays persistant across level loads
+and tournament restarts.
+=======================================================================
+*/
+
+/*
+================
+G_WriteClientSessionData
+
+Called on game shutdown
+================
+*/
+void G_WriteClientSessionData( gclient_t *client ) {
+ const char *s;
+ const char *var;
+
+ s = va("%i %i %i %i %i %i %i",
+ client->sess.sessionTeam,
+ client->sess.spectatorTime,
+ client->sess.spectatorState,
+ client->sess.spectatorClient,
+ client->sess.wins,
+ client->sess.losses,
+ client->sess.teamLeader
+ );
+
+ var = va( "session%i", client - level.clients );
+
+ trap_Cvar_Set( var, s );
+}
+
+/*
+================
+G_ReadSessionData
+
+Called on a reconnect
+================
+*/
+void G_ReadSessionData( gclient_t *client ) {
+ char s[MAX_STRING_CHARS];
+ const char *var;
+
+ // bk001205 - format
+ int teamLeader;
+ int spectatorState;
+ int sessionTeam;
+
+ var = va( "session%i", client - level.clients );
+ trap_Cvar_VariableStringBuffer( var, s, sizeof(s) );
+
+ sscanf( s, "%i %i %i %i %i %i %i",
+ &sessionTeam, // bk010221 - format
+ &client->sess.spectatorTime,
+ &spectatorState, // bk010221 - format
+ &client->sess.spectatorClient,
+ &client->sess.wins,
+ &client->sess.losses,
+ &teamLeader // bk010221 - format
+ );
+
+ // bk001205 - format issues
+ client->sess.sessionTeam = (team_t)sessionTeam;
+ client->sess.spectatorState = (spectatorState_t)spectatorState;
+ client->sess.teamLeader = (qboolean)teamLeader;
+}
+
+
+/*
+================
+G_InitSessionData
+
+Called on a first-time connect
+================
+*/
+void G_InitSessionData( gclient_t *client, char *userinfo ) {
+ clientSession_t *sess;
+ const char *value;
+
+ sess = &client->sess;
+
+ // initial team determination
+ if ( g_gametype.integer >= GT_TEAM ) {
+ if ( g_teamAutoJoin.integer ) {
+ sess->sessionTeam = PickTeam( -1 );
+ BroadcastTeamChange( client, -1 );
+ } else {
+ // always spawn as spectator in team games
+ sess->sessionTeam = TEAM_SPECTATOR;
+ }
+ } else {
+ value = Info_ValueForKey( userinfo, "team" );
+ if ( value[0] == 's' ) {
+ // a willing spectator, not a waiting-in-line
+ sess->sessionTeam = TEAM_SPECTATOR;
+ } else {
+ switch ( g_gametype.integer ) {
+ default:
+ case GT_FFA:
+ case GT_SINGLE_PLAYER:
+ if ( g_maxGameClients.integer > 0 &&
+ level.numNonSpectatorClients >= g_maxGameClients.integer ) {
+ sess->sessionTeam = TEAM_SPECTATOR;
+ } else {
+ sess->sessionTeam = TEAM_FREE;
+ }
+ break;
+ case GT_TOURNAMENT:
+ // if the game is full, go into a waiting mode
+ if ( level.numNonSpectatorClients >= 2 ) {
+ sess->sessionTeam = TEAM_SPECTATOR;
+ } else {
+ sess->sessionTeam = TEAM_FREE;
+ }
+ break;
+ }
+ }
+ }
+
+ sess->spectatorState = SPECTATOR_FREE;
+ sess->spectatorTime = level.time;
+
+ G_WriteClientSessionData( client );
+}
+
+
+/*
+==================
+G_InitWorldSession
+
+==================
+*/
+void G_InitWorldSession( void ) {
+ char s[MAX_STRING_CHARS];
+ int gt;
+
+ trap_Cvar_VariableStringBuffer( "session", s, sizeof(s) );
+ gt = atoi( s );
+
+ // if the gametype changed since the last session, don't use any
+ // client sessions
+ if ( g_gametype.integer != gt ) {
+ level.newSession = qtrue;
+ G_Printf( "Gametype changed, clearing session data.\n" );
+ }
+}
+
+/*
+==================
+G_WriteSessionData
+
+==================
+*/
+void G_WriteSessionData( void ) {
+ int i;
+
+ trap_Cvar_Set( "session", va("%i", g_gametype.integer) );
+
+ for ( i = 0 ; i < level.maxclients ; i++ ) {
+ if ( level.clients[i].pers.connected == CON_CONNECTED ) {
+ G_WriteClientSessionData( &level.clients[i] );
+ }
+ }
+}