mirror of
https://github.com/Q3Rally-Team/q3rally.git
synced 2024-11-21 19:41:36 +00:00
Fix issues and formatting from adding LCS
See "NEW GAME MODE: LAST CAR STANDING"
commit 227e401356
This commit is contained in:
parent
4561b7e035
commit
89c4886605
9 changed files with 46 additions and 83 deletions
|
@ -417,7 +417,7 @@ static float CG_DrawTimes( float y ) {
|
||||||
// Best Time
|
// Best Time
|
||||||
//
|
//
|
||||||
|
|
||||||
if ( cgs.gametype != GT_DERBY || cgs.gametype != GT_LCS ){
|
if ( cgs.gametype != GT_DERBY && cgs.gametype != GT_LCS ){
|
||||||
time = getStringForTime( cent->bestLapTime );
|
time = getStringForTime( cent->bestLapTime );
|
||||||
|
|
||||||
Com_sprintf(s, sizeof(s), "B: %s", time);
|
Com_sprintf(s, sizeof(s), "B: %s", time);
|
||||||
|
@ -436,7 +436,7 @@ static float CG_DrawTimes( float y ) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (cgs.gametype != GT_DERBY || cgs.gametype != GT_LCS ){
|
if ( cgs.gametype != GT_DERBY && cgs.gametype != GT_LCS ){
|
||||||
time = getStringForTime(lapTime);
|
time = getStringForTime(lapTime);
|
||||||
|
|
||||||
Com_sprintf(s, sizeof(s), "L: %s", time);
|
Com_sprintf(s, sizeof(s), "L: %s", time);
|
||||||
|
|
|
@ -1572,7 +1572,7 @@ void ClientThink_real( gentity_t *ent ) {
|
||||||
if ( g_forcerespawn.integer > 0 &&
|
if ( g_forcerespawn.integer > 0 &&
|
||||||
( level.time - client->respawnTime ) > g_forcerespawn.integer * 1000 ) {
|
( level.time - client->respawnTime ) > g_forcerespawn.integer * 1000 ) {
|
||||||
// STONELANCE
|
// STONELANCE
|
||||||
if (g_gametype.integer != GT_DERBY || g_gametype.integer != GT_LCS || !ent->client->finishRaceTime)
|
if ((g_gametype.integer != GT_DERBY && g_gametype.integer != GT_LCS) || !ent->client->finishRaceTime)
|
||||||
// END
|
// END
|
||||||
ClientRespawn( ent );
|
ClientRespawn( ent );
|
||||||
return;
|
return;
|
||||||
|
@ -1581,7 +1581,7 @@ void ClientThink_real( gentity_t *ent ) {
|
||||||
// pressing attack or use is the normal respawn method
|
// pressing attack or use is the normal respawn method
|
||||||
if ( ucmd->buttons & ( BUTTON_ATTACK | BUTTON_USE_HOLDABLE ) ) {
|
if ( ucmd->buttons & ( BUTTON_ATTACK | BUTTON_USE_HOLDABLE ) ) {
|
||||||
// STONELANCE
|
// STONELANCE
|
||||||
if (g_gametype.integer != GT_DERBY || g_gametype.integer != GT_LCS || !ent->client->finishRaceTime)
|
if ((g_gametype.integer != GT_DERBY && g_gametype.integer != GT_LCS) || !ent->client->finishRaceTime)
|
||||||
// END
|
// END
|
||||||
ClientRespawn( ent );
|
ClientRespawn( ent );
|
||||||
}
|
}
|
||||||
|
|
|
@ -530,7 +530,7 @@ void player_die( gentity_t *self, gentity_t *inflictor, gentity_t *attacker, int
|
||||||
self->client->ps.pm_type = PM_DEAD;
|
self->client->ps.pm_type = PM_DEAD;
|
||||||
|
|
||||||
// STONELANCE
|
// STONELANCE
|
||||||
if (g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS || level.startRaceTime){
|
if ((g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS) && level.startRaceTime){
|
||||||
self->client->finishRaceTime = level.time;
|
self->client->finishRaceTime = level.time;
|
||||||
trap_SendServerCommand( -1, va("raceFinishTime %i %i", self->s.number, self->client->finishRaceTime) );
|
trap_SendServerCommand( -1, va("raceFinishTime %i %i", self->s.number, self->client->finishRaceTime) );
|
||||||
}
|
}
|
||||||
|
|
|
@ -926,7 +926,7 @@ int QDECL SortRanks( const void *a, const void *b ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// sort by finish time if derby
|
// sort by finish time if derby
|
||||||
else if (g_gametype.integer == GT_DERBY && g_gametype.integer == GT_LCS ){
|
else if (g_gametype.integer == GT_DERBY || g_gametype.integer == GT_LCS ){
|
||||||
if ( ca->finishRaceTime && cb->finishRaceTime ) {
|
if ( ca->finishRaceTime && cb->finishRaceTime ) {
|
||||||
if (ca->finishRaceTime < cb->finishRaceTime)
|
if (ca->finishRaceTime < cb->finishRaceTime)
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -1705,7 +1705,7 @@ void CheckExitRules( void ) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_gametype.integer == GT_LCS && level.startRaceTime && !level.finishRaceTime) {
|
if (g_gametype.integer == GT_LCS && level.startRaceTime && !level.finishRaceTime) {
|
||||||
gclient_t *winner = NULL;
|
gclient_t *winner = NULL;
|
||||||
|
|
||||||
|
@ -1730,31 +1730,6 @@ void CheckExitRules( void ) {
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_gametype.integer == GT_LCS && level.startRaceTime && !level.finishRaceTime) {
|
|
||||||
gclient_t *winner = NULL;
|
|
||||||
|
|
||||||
for ( i=0, count = 0 ; i< g_maxclients.integer ; i++ ) {
|
|
||||||
cl = level.clients + i;
|
|
||||||
if ( cl->pers.connected != CON_CONNECTED ) continue;
|
|
||||||
if ( cl->sess.sessionTeam == TEAM_SPECTATOR ) continue;
|
|
||||||
if ( isRaceObserver( cl->ps.clientNum ) ) continue;
|
|
||||||
if ( cl->ps.stats[STAT_HEALTH] <= 0 ) continue;
|
|
||||||
|
|
||||||
count++;
|
|
||||||
winner = cl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (winner && count == 1) {
|
|
||||||
level.winnerNumber = winner->ps.clientNum;
|
|
||||||
level.finishRaceTime = level.time;
|
|
||||||
|
|
||||||
trap_SendServerCommand( -1, va("print \"%s won the last car standing!\n\"", winner->pers.netname ));
|
|
||||||
trap_SendServerCommand( level.winnerNumber, "cp \"You won the last car standing!\n\"");
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
for ( i = 0, count = 0 ; i< g_maxclients.integer ; i++ ) {
|
for ( i = 0, count = 0 ; i< g_maxclients.integer ; i++ ) {
|
||||||
|
|
|
@ -436,7 +436,7 @@ void RallyStarter_Think( gentity_t *ent ){
|
||||||
|
|
||||||
Rally_Sound( ent, EV_GLOBAL_SOUND, CHAN_ANNOUNCER, G_SoundIndex("sound/rally/race/go.wav") );
|
Rally_Sound( ent, EV_GLOBAL_SOUND, CHAN_ANNOUNCER, G_SoundIndex("sound/rally/race/go.wav") );
|
||||||
|
|
||||||
if (g_gametype.integer != GT_DERBY || g_gametype.integer != GT_LCS)
|
if (g_gametype.integer != GT_DERBY && g_gametype.integer != GT_LCS)
|
||||||
ent->think = RallyRace_Think;
|
ent->think = RallyRace_Think;
|
||||||
}
|
}
|
||||||
else if ( level.time > ent->pain_debounce_time + 4000 ){
|
else if ( level.time > ent->pain_debounce_time + 4000 ){
|
||||||
|
|
|
@ -200,7 +200,7 @@ static char* gamenames[] = {
|
||||||
"Race DM",
|
"Race DM",
|
||||||
"SP ",
|
"SP ",
|
||||||
"Derby",
|
"Derby",
|
||||||
"LCS ",
|
"LCS",
|
||||||
"DM ",
|
"DM ",
|
||||||
"TRace",
|
"TRace",
|
||||||
"TRace DM",
|
"TRace DM",
|
||||||
|
|
|
@ -148,7 +148,7 @@ static const char *gametype_items[] = {
|
||||||
// STONELANCE
|
// STONELANCE
|
||||||
// gametype_items[gametype_remap2[s_serveroptions.gametype]]
|
// gametype_items[gametype_remap2[s_serveroptions.gametype]]
|
||||||
static int gametype_remap[] = {GT_RACING, GT_RACING_DM, GT_DERBY, GT_LCS, GT_DEATHMATCH, GT_TEAM, GT_TEAM_RACING, GT_TEAM_RACING_DM, GT_CTF, GT_DOMINATION};
|
static int gametype_remap[] = {GT_RACING, GT_RACING_DM, GT_DERBY, GT_LCS, GT_DEATHMATCH, GT_TEAM, GT_TEAM_RACING, GT_TEAM_RACING_DM, GT_CTF, GT_DOMINATION};
|
||||||
static int gametype_remap2[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
|
static int gametype_remap2[] = {0, 1, 0, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||||
|
|
||||||
int allowLength[3];
|
int allowLength[3];
|
||||||
int reversable;
|
int reversable;
|
||||||
|
@ -2188,56 +2188,50 @@ if (s_serveroptions.gametype == GT_DOMINATION) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// STONELANCE
|
// STONELANCE
|
||||||
if( s_serveroptions.gametype == GT_DERBY || s_serveroptions.gametype == GT_LCS ) {
|
if( s_serveroptions.gametype == GT_CTF || s_serveroptions.gametype == GT_DOMINATION ) {
|
||||||
// Your code here
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.flaglimit );
|
||||||
}
|
}
|
||||||
// END
|
else if( s_serveroptions.gametype != GT_DERBY && s_serveroptions.gametype != GT_LCS ) {
|
||||||
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.fraglimit );
|
||||||
|
}
|
||||||
|
// END
|
||||||
|
|
||||||
if( s_serveroptions.gametype != GT_CTF && s_serveroptions.gametype != GT_DOMINATION
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.timelimit );
|
||||||
&& s_serveroptions.gametype != GT_DERBY && s_serveroptions.gametype != GT_LCS ) {
|
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.fraglimit );
|
|
||||||
}
|
|
||||||
else if( s_serveroptions.gametype == GT_CTF || s_serveroptions.gametype == GT_DOMINATION ) {
|
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.flaglimit );
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.timelimit );
|
if( s_serveroptions.gametype >= GT_TEAM ) {
|
||||||
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.friendlyfire );
|
||||||
|
}
|
||||||
|
|
||||||
if( s_serveroptions.gametype >= GT_TEAM ) {
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.pure );
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.friendlyfire );
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.pure );
|
// STONELANCE
|
||||||
|
if( s_serveroptions.gametype == GT_RACING || s_serveroptions.gametype == GT_RACING_DM
|
||||||
|
|| s_serveroptions.gametype == GT_TEAM_RACING || s_serveroptions.gametype == GT_TEAM_RACING_DM) {
|
||||||
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.trackLength );
|
||||||
|
|
||||||
// STONELANCE
|
if ( reversable )
|
||||||
if( s_serveroptions.gametype == GT_RACING || s_serveroptions.gametype == GT_RACING_DM
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.reversed );
|
||||||
|| s_serveroptions.gametype == GT_TEAM_RACING || s_serveroptions.gametype == GT_TEAM_RACING_DM) {
|
}
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.trackLength );
|
// END
|
||||||
|
|
||||||
|
|
||||||
if ( reversable )
|
if( s_serveroptions.multiplayer ) {
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.reversed );
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.dedicated );
|
||||||
}
|
}
|
||||||
// END
|
|
||||||
|
|
||||||
if( s_serveroptions.multiplayer ) {
|
if( s_serveroptions.multiplayer ) {
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.dedicated );
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.hostname );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( s_serveroptions.multiplayer ) {
|
if (s_serveroptions.gametype == GT_DOMINATION) {
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.hostname );
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.dominationSpawnStyle );
|
||||||
}
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.sigillocator );
|
||||||
|
}
|
||||||
|
|
||||||
if (s_serveroptions.gametype == GT_DOMINATION) {
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.back );
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.dominationSpawnStyle );
|
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.go );
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.sigillocator );
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.back );
|
ServerOptions_SetMenuItems();
|
||||||
Menu_AddItem( &s_serveroptions.menu, &s_serveroptions.go );
|
|
||||||
|
|
||||||
ServerOptions_SetMenuItems();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -97,15 +97,14 @@ static startserver_t s_startserver;
|
||||||
static const char *gametype_items[] = {
|
static const char *gametype_items[] = {
|
||||||
"Free For All",
|
"Free For All",
|
||||||
"Team Deathmatch",
|
"Team Deathmatch",
|
||||||
"Demolition Derby",
|
"Tournament",
|
||||||
"Last Car Standing",
|
|
||||||
"Capture the Flag",
|
"Capture the Flag",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
// STONELANCE - removed gametype
|
// STONELANCE - removed gametype
|
||||||
// static int gametype_remap[] = {GT_FFA, GT_TEAM, GT_TOURNAMENT, GT_CTF};
|
// static int gametype_remap[] = {GT_FFA, GT_TEAM, GT_TOURNAMENT, GT_CTF};
|
||||||
static int gametype_remap[] = {GT_RACING, GT_TEAM, GT_DERBY, GT_LCS, GT_CTF};
|
static int gametype_remap[] = {GT_RACING, GT_TEAM, GT_DERBY, GT_CTF};
|
||||||
// END
|
// END
|
||||||
static int gametype_remap2[] = {0, 2, 0, 1, 3};
|
static int gametype_remap2[] = {0, 2, 0, 1, 3};
|
||||||
|
|
||||||
|
|
|
@ -210,11 +210,6 @@ void TeamMain_MenuInit( void ) {
|
||||||
case GT_RACING_DM:
|
case GT_RACING_DM:
|
||||||
case GT_DEATHMATCH:
|
case GT_DEATHMATCH:
|
||||||
case GT_DERBY:
|
case GT_DERBY:
|
||||||
s_teammain.joinred.generic.flags |= QMF_GRAYED;
|
|
||||||
s_teammain.joinblue.generic.flags |= QMF_GRAYED;
|
|
||||||
s_teammain.joingreen.generic.flags |= QMF_GRAYED;
|
|
||||||
s_teammain.joinyellow.generic.flags |= QMF_GRAYED;
|
|
||||||
break;
|
|
||||||
case GT_LCS:
|
case GT_LCS:
|
||||||
s_teammain.joinred.generic.flags |= QMF_GRAYED;
|
s_teammain.joinred.generic.flags |= QMF_GRAYED;
|
||||||
s_teammain.joinblue.generic.flags |= QMF_GRAYED;
|
s_teammain.joinblue.generic.flags |= QMF_GRAYED;
|
||||||
|
|
Loading…
Reference in a new issue