mirror of
https://github.com/DrBeef/ioq3quest.git
synced 2024-11-10 14:52:00 +00:00
* Some game bug fixes from http://www.quake3world.com/ubb/Forum4/HTML/006208.html
This commit is contained in:
parent
317d40b046
commit
82f7989714
3 changed files with 29 additions and 4 deletions
|
@ -323,7 +323,7 @@ static void CG_ConfigStringModified( void ) {
|
||||||
cg.intermissionStarted = atoi( str );
|
cg.intermissionStarted = atoi( str );
|
||||||
} else if ( num >= CS_MODELS && num < CS_MODELS+MAX_MODELS ) {
|
} else if ( num >= CS_MODELS && num < CS_MODELS+MAX_MODELS ) {
|
||||||
cgs.gameModels[ num-CS_MODELS ] = trap_R_RegisterModel( str );
|
cgs.gameModels[ num-CS_MODELS ] = trap_R_RegisterModel( str );
|
||||||
} else if ( num >= CS_SOUNDS && num < CS_SOUNDS+MAX_MODELS ) {
|
} else if ( num >= CS_SOUNDS && num < CS_SOUNDS+MAX_SOUNDS ) {
|
||||||
if ( str[0] != '*' ) { // player specific sounds don't register here
|
if ( str[0] != '*' ) { // player specific sounds don't register here
|
||||||
cgs.gameSounds[ num-CS_SOUNDS] = trap_S_RegisterSound( str, qfalse );
|
cgs.gameSounds[ num-CS_SOUNDS] = trap_S_RegisterSound( str, qfalse );
|
||||||
}
|
}
|
||||||
|
|
|
@ -923,7 +923,7 @@ char *ClientConnect( int clientNum, qboolean firstTime, qboolean isBot ) {
|
||||||
// we don't check password for bots and local client
|
// we don't check password for bots and local client
|
||||||
// NOTE: local client <-> "ip" "localhost"
|
// NOTE: local client <-> "ip" "localhost"
|
||||||
// this means this client is not running in our current process
|
// this means this client is not running in our current process
|
||||||
if ( !( ent->r.svFlags & SVF_BOT ) && (strcmp(value, "localhost") != 0)) {
|
if ( !isBot && (strcmp(value, "localhost") != 0)) {
|
||||||
// check for a password
|
// check for a password
|
||||||
value = Info_ValueForKey (userinfo, "password");
|
value = Info_ValueForKey (userinfo, "password");
|
||||||
if ( g_password.string[0] && Q_stricmp( g_password.string, "none" ) &&
|
if ( g_password.string[0] && Q_stricmp( g_password.string, "none" ) &&
|
||||||
|
@ -1324,6 +1324,16 @@ void ClientDisconnect( int clientNum ) {
|
||||||
ClientUserinfoChanged( level.sortedClients[0] );
|
ClientUserinfoChanged( level.sortedClients[0] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( g_gametype.integer == GT_TOURNAMENT &&
|
||||||
|
ent->client->sess.sessionTeam == TEAM_FREE &&
|
||||||
|
level.intermissiontime ) {
|
||||||
|
|
||||||
|
trap_SendConsoleCommand( EXEC_APPEND, "map_restart 0\n" );
|
||||||
|
level.restarted = qtrue;
|
||||||
|
level.changemap = NULL;
|
||||||
|
level.intermissiontime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
trap_UnlinkEntity (ent);
|
trap_UnlinkEntity (ent);
|
||||||
ent->s.modelindex = 0;
|
ent->s.modelindex = 0;
|
||||||
ent->inuse = qfalse;
|
ent->inuse = qfalse;
|
||||||
|
|
|
@ -1021,6 +1021,8 @@ or moved to a new level based on the "nextmap" cvar
|
||||||
void ExitLevel (void) {
|
void ExitLevel (void) {
|
||||||
int i;
|
int i;
|
||||||
gclient_t *cl;
|
gclient_t *cl;
|
||||||
|
char nextmap[MAX_STRING_CHARS];
|
||||||
|
char d1[MAX_STRING_CHARS];
|
||||||
|
|
||||||
//bot interbreeding
|
//bot interbreeding
|
||||||
BotInterbreedEndMatch();
|
BotInterbreedEndMatch();
|
||||||
|
@ -1038,8 +1040,16 @@ void ExitLevel (void) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trap_Cvar_VariableStringBuffer( "nextmap", nextmap, sizeof(nextmap) );
|
||||||
|
trap_Cvar_VariableStringBuffer( "d1", d1, sizeof(d1) );
|
||||||
|
|
||||||
|
if( !Q_stricmp( nextmap, "map_restart 0" ) && Q_stricmp( d1, "" ) ) {
|
||||||
|
trap_Cvar_Set( "nextmap", "vstr d2" );
|
||||||
|
trap_SendConsoleCommand( EXEC_APPEND, "vstr d1\n" );
|
||||||
|
} else {
|
||||||
trap_SendConsoleCommand( EXEC_APPEND, "vstr nextmap\n" );
|
trap_SendConsoleCommand( EXEC_APPEND, "vstr nextmap\n" );
|
||||||
|
}
|
||||||
|
|
||||||
level.changemap = NULL;
|
level.changemap = NULL;
|
||||||
level.intermissiontime = 0;
|
level.intermissiontime = 0;
|
||||||
|
|
||||||
|
@ -1436,7 +1446,12 @@ void CheckTournament( void ) {
|
||||||
if ( level.warmupTime < 0 ) {
|
if ( level.warmupTime < 0 ) {
|
||||||
if ( level.numPlayingClients == 2 ) {
|
if ( level.numPlayingClients == 2 ) {
|
||||||
// fudge by -1 to account for extra delays
|
// fudge by -1 to account for extra delays
|
||||||
|
if ( g_warmup.integer > 1 ) {
|
||||||
level.warmupTime = level.time + ( g_warmup.integer - 1 ) * 1000;
|
level.warmupTime = level.time + ( g_warmup.integer - 1 ) * 1000;
|
||||||
|
} else {
|
||||||
|
level.warmupTime = 0;
|
||||||
|
}
|
||||||
|
|
||||||
trap_SetConfigstring( CS_WARMUP, va("%i", level.warmupTime) );
|
trap_SetConfigstring( CS_WARMUP, va("%i", level.warmupTime) );
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue