Added 4-Team-Domination

Added default bots to arena files
This commit is contained in:
q3rally 2021-06-11 04:29:41 +00:00
parent cc348d4b56
commit cad778cadc
28 changed files with 2061 additions and 187 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,7 @@
{
map "q3r_babel"
longname "Babel's Military Base"
bots "Tobias Ivan Josh Steve Tanya Tony"
fraglimit 150
type "q3r_dom"
starts "16"

View file

@ -1,6 +1,7 @@
{
map "q3r_country01"
longname "Roll On Down The Line"
bots "Bee Dean Minori"
fraglimit 5
type "q3r_racing q3r_team_racing"
starts "9"

View file

@ -1,6 +1,7 @@
{
map "q3r_david5"
longname "Underground Battle Arena"
bots "Jim Bobby Sam"
type "q3r_dm q3r_team_dm q3r_derby"
starts "4"
laps "-"

View file

@ -1,6 +1,7 @@
{
map "q3r_demobowl"
longname "Destroy Yourself Now"
bots "Jennifer Samuel Vlad"
fraglimit 20
type "q3r_dm q3r_team_dm q3r_derby"
starts "17"

View file

@ -1,6 +1,7 @@
{
map "q3r_dirtyfun"
longname "Dirty Fun"
bots "Zack Kuro Paul"
author "Stecki"
type "q3r_racing q3r_team_racing"
starts "8"

View file

@ -1,6 +1,7 @@
{
map "q3r_dm02"
longname "Classic Demolition Derby"
bots "Emma Ivan Kuro"
fraglimit 30
type "q3r_derby q3r_dm q3r_team_dm"
starts "8"

View file

@ -1,6 +1,7 @@
{
map "q3r_downtown"
longname "Down Town"
bots "Tobias Josh Bee"
author "OliverV"
fraglimit "10"
type "q3r_racing q3r_team_racing"

View file

@ -1,6 +1,7 @@
{
map "q3r_lavafalls"
longname "Lava Falls"
bots "Steve Paul Tanya"
author "Cyberdemon (updated by insellium)"
fraglimit 5
type "q3r_racing q3r_team_racing q3r_racing_dm q3r_team_racing_dm"

View file

@ -1,6 +1,7 @@
{
map "q3r_nightcity"
longname "Night City"
bots "Tony Minori Carla"
fraglimit "30"
type "q3r_racing q3r_team_racing q3r_racing_dm q3r_team_racing_dm"
starts "16"

View file

@ -1,6 +1,7 @@
{
map "q3r_sk1"
longname "Canyon Cruise"
bots "Samuel Jim Sam"
fraglimit 5
type "q3r_racing q3r_team_racing"
starts "8"

View file

@ -1,6 +1,7 @@
{
map "q3r_valley"
longname "Desert Valley"
bots "Ivan Tony Bee"
fraglimit 6
type "q3r_racing q3r_team_racing q3r_racing_dm q3r_team_racing_dm"
starts "6"

View file

@ -541,16 +541,24 @@ void CG_DrawSigilHUD( void ) {
{
case SIGIL_ISWHITE:
CG_DrawPic( x, y, 18, 18, cgs.media.sigilShader );
break;
CG_DrawPic( x, y, 18, 18, cgs.media.sigilShader );
break;
case SIGIL_ISRED:
CG_DrawPic( x, y, 18, 18, cgs.media.redsigilShader );
break;
CG_DrawPic( x, y, 18, 18, cgs.media.redsigilShader );
break;
case SIGIL_ISBLUE:
CG_DrawPic( x, y, 18, 18, cgs.media.bluesigilShader );
break;
CG_DrawPic( x, y, 18, 18, cgs.media.bluesigilShader );
break;
case SIGIL_ISGREEN:
CG_DrawPic( x, y, 18, 18, cgs.media.greensigilShader );
break;
case SIGIL_ISYELLOW:
CG_DrawPic( x, y, 18, 18, cgs.media.yellowsigilShader );
break;
}
x+= 19;
}
@ -1334,16 +1342,12 @@ Draw the small two score display
=================
*/
#ifndef MISSIONPACK
// Q3Rally Code Start
// static float CG_DrawScores( float y ) {
float CG_DrawScores( float x, float y ) {
// Q3Rally Code END
const char *s;
int s1, s2, score;
// Q3Rally Code Start
// int x, w;
int s3, s4, w;
// Q3Rally Code END
int v;
vec4_t color;
float y1;
@ -1351,23 +1355,19 @@ float CG_DrawScores( float x, float y ) {
s1 = cgs.scores1;
s2 = cgs.scores2;
// Q3Rally Code Start
s3 = cgs.scores3;
s4 = cgs.scores4;
// y -= BIGCHAR_HEIGHT + 8;
// y1 = y;
y1 = y + 18;
// Q3Rally Code END
// draw from the right side to left
if ( cgs.gametype >= GT_TEAM ) {
// Q3Rally Code Start
// x = 640;
CG_FillRect( x - 96, y, 96, 18, bgColor );
if (cgs.gametype != GT_CTF){
// if (cgs.gametype != GT_CTF){
if (cgs.gametype >= GT_TEAM){
// draw yellow
color[0] = 1.0f;
color[1] = 1.0f;
@ -1396,47 +1396,34 @@ float CG_DrawScores( float x, float y ) {
}
CG_DrawTinyDigitalString( x + 4, y+4, s, 1.0F);
}
// Q3Rally Code END
color[0] = 0.0f;
color[1] = 0.0f;
color[2] = 1.0f;
color[3] = 0.33f;
s = va( "%2i", s2 );
// Q3Rally Code Start
// w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
w = CG_DrawStrlen( s ) * TINYCHAR_WIDTH + 8;
// Q3Rally Code END
x -= w;
// Q3Rally Code Start
// CG_FillRect( x, y-4, w, BIGCHAR_HEIGHT+8, color );
CG_FillRect( x+1, y+1, w-2, 16, color );
// Q3Rally Code END
if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_BLUE ) {
// Q3Rally Code Start
// CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
CG_DrawPic( x+1, y+1, w-2, 16, cgs.media.selectShader );
// Q3Rally Code END
}
// Q3Rally Code Start
// CG_DrawBigString( x + 4, y, s, 1.0F);
CG_DrawTinyDigitalString( x + 4, y+4, s, 1.0F);
// Q3Rally Code END
if ( cgs.gametype == GT_CTF ) {
// Display flag status
item = BG_FindItemForPowerup( PW_BLUEFLAG );
if (item) {
// Q3Rally Code Start
y1 = y + TINYCHAR_HEIGHT + 8;
// y1 = y - BIGCHAR_HEIGHT - 8;
// Q3Rally Code END
y1 = y + TINYCHAR_HEIGHT + 8;
if( cgs.blueflag >= 0 && cgs.blueflag <= 2 ) {
// Q3Rally Code Start
// CG_DrawPic( x, y1-4, w, BIGCHAR_HEIGHT+8, cgs.media.blueFlagShader[cgs.blueflag] );
CG_DrawPic( x+1, y1+1, w-2, 16, cgs.media.blueFlagShader[cgs.blueflag] );
// Q3Rally Code END
}
}
}
@ -1446,40 +1433,29 @@ float CG_DrawScores( float x, float y ) {
color[2] = 0.0f;
color[3] = 0.33f;
s = va( "%2i", s1 );
// Q3Rally Code Start
// w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
w = CG_DrawStrlen( s ) * TINYCHAR_WIDTH + 8;
// Q3Rally Code END
x -= w;
// Q3Rally Code Start
// CG_FillRect( x, y-4, w, BIGCHAR_HEIGHT+8, color );
CG_FillRect( x+1, y+1, w-2, 16, color );
// Q3Rally Code END
if ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_RED ) {
// Q3Rally Code Start
// CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
CG_DrawPic( x+1, y+1, w-2, 16, cgs.media.selectShader );
// Q3Rally Code END
}
// Q3Rally Code Start
// CG_DrawBigString( x + 4, y, s, 1.0F);
CG_DrawTinyDigitalString( x + 4, y+4, s, 1.0F);
// Q3Rally Code END
if ( cgs.gametype == GT_CTF ) {
// Display flag status
item = BG_FindItemForPowerup( PW_REDFLAG );
if (item) {
// Q3Rally Code Start
// y1 = y - BIGCHAR_HEIGHT - 8;
y1 = y + TINYCHAR_HEIGHT + 8;
// Q3Rally Code END
if( cgs.redflag >= 0 && cgs.redflag <= 2 ) {
// Q3Rally Code Start
// CG_DrawPic( x, y1-4, w, BIGCHAR_HEIGHT+8, cgs.media.redFlagShader[cgs.redflag] );
CG_DrawPic( x+1, y1+1, w-2, 16, cgs.media.redFlagShader[cgs.redflag] );
// Q3Rally Code END
}
}
}
@ -1502,30 +1478,21 @@ float CG_DrawScores( float x, float y ) {
} else {
v = cgs.fraglimit;
}
// Q3Rally Code Start
// if ( v ) {
if ( v && !isRallyRace()) {
// Q3Rally Code END
s = va( "%2i", v );
// Q3Rally Code Start
// w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
w = CG_DrawStrlen( s ) * TINYCHAR_WIDTH + 8;
// Q3Rally Code END
x -= w;
// Q3Rally Code Start
// CG_DrawBigString( x + 4, y, s, 1.0F);
CG_DrawTinyDigitalString( x + 4, y+4, s, 1.0F);
// Q3Rally Code END
}
} else {
qboolean spectator;
// Q3Rally Code Start
// x = 640;
CG_FillRect( x - 96, y, 96, 18, bgColor );
// Q3Rally Code END
score = cg.snap->ps.persistant[PERS_SCORE];
spectator = ( cg.snap->ps.persistant[PERS_TEAM] == TEAM_SPECTATOR );
@ -1536,92 +1503,72 @@ float CG_DrawScores( float x, float y ) {
}
if ( s2 != SCORE_NOT_PRESENT ) {
s = va( "%2i", s2 );
// Q3Rally Code Start
// w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
w = CG_DrawStrlen( s ) * TINYCHAR_WIDTH + 8;
// Q3Rally Code END
x -= w;
if ( !spectator && score == s2 && score != s1 ) {
color[0] = 1.0f;
color[1] = 0.0f;
color[2] = 0.0f;
color[3] = 0.33f;
// Q3Rally Code Start
// CG_FillRect( x, y-4, w, BIGCHAR_HEIGHT+8, color );
// CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
CG_FillRect( x+1, y+1, w-2, 16, color );
CG_DrawPic( x+1, y+1, w-2, 16, cgs.media.selectShader );
// Q3Rally Code END
} else {
color[0] = 0.5f;
color[1] = 0.5f;
color[2] = 0.5f;
color[3] = 0.33f;
// Q3Rally Code Start
// CG_FillRect( x, y-4, w, BIGCHAR_HEIGHT+8, color );
CG_FillRect( x+1, y+1, w-2, 16, color );
// Q3Rally Code END
}
// Q3Rally Code Start
// CG_DrawBigString( x + 4, y, s, 1.0F);
CG_DrawTinyDigitalString( x + 4, y+4, s, 1.0F);
// Q3Rally Code END
}
// first place
if ( s1 != SCORE_NOT_PRESENT ) {
s = va( "%2i", s1 );
// Q3Rally Code Start
// w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
w = CG_DrawStrlen( s ) * TINYCHAR_WIDTH + 8;
// Q3Rally Code END
x -= w;
if ( !spectator && score == s1 ) {
color[0] = 0.0f;
color[1] = 0.0f;
color[2] = 1.0f;
color[3] = 0.33f;
// Q3Rally Code Start
// CG_FillRect( x, y-4, w, BIGCHAR_HEIGHT+8, color );
// CG_DrawPic( x, y-4, w, BIGCHAR_HEIGHT+8, cgs.media.selectShader );
CG_FillRect( x+1, y+1, w-2, 16, color );
CG_DrawPic( x+1, y+1, w-2, 16, cgs.media.selectShader );
// Q3Rally Code END
} else {
color[0] = 0.5f;
color[1] = 0.5f;
color[2] = 0.5f;
color[3] = 0.33f;
// Q3Rally Code Start
// CG_FillRect( x, y-4, w, BIGCHAR_HEIGHT+8, color );
CG_FillRect( x+1, y+1, w-2, 16, color );
// Q3Rally Code END
}
// Q3Rally Code Start
// CG_DrawBigString( x + 4, y, s, 1.0F);
CG_DrawTinyDigitalString( x + 4, y+4, s, 1.0F);
// Q3Rally Code END
}
if ( cgs.fraglimit ) {
s = va( "%2i", cgs.fraglimit );
// Q3Rally Code Start
// w = CG_DrawStrlen( s ) * BIGCHAR_WIDTH + 8;
w = CG_DrawStrlen( s ) * TINYCHAR_WIDTH + 8;
// Q3Rally Code END
x -= w;
// Q3Rally Code Start
// CG_DrawBigString( x + 4, y, s, 1.0F);
CG_DrawTinyDigitalString( x + 4, y+4, s, 1.0F);
// Q3Rally Code END
}
}
// Q3Rally Code Start
// return y1 - 8;
return y1;
// Q3Rally Code END
}
#endif // MISSIONPACK
@ -3195,7 +3142,7 @@ static void CG_DrawSigilLocations( void ) {
snapshot_t *snap;
int i;
vec3_t origin, end;
int redSigil, blueSigil, whiteSigil;
int redSigil, blueSigil, greenSigil, yellowSigil, whiteSigil;
if ( cgs.gametype != GT_DOMINATION)
return;
@ -3211,6 +3158,8 @@ static void CG_DrawSigilLocations( void ) {
VectorCopy(cg.snap->ps.origin,origin);
redSigil = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILRED ) );
blueSigil = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILBLUE ) );
greenSigil = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILGREEN ) );
yellowSigil = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILYELLOW ) );
whiteSigil = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILWHITE ) );
for ( i = 0; i < snap->numEntities; i++ )
@ -3220,7 +3169,7 @@ static void CG_DrawSigilLocations( void ) {
if (target->currentState.eType != ET_ITEM)
continue;
if ( target->currentState.modelindex != redSigil && target->currentState.modelindex != blueSigil && target->currentState.modelindex != whiteSigil )
if ( target->currentState.modelindex != redSigil && target->currentState.modelindex != blueSigil && target->currentState.modelindex != greenSigil && target->currentState.modelindex != yellowSigil && target->currentState.modelindex != whiteSigil )
continue;
VectorCopy(target->lerpOrigin,end);
@ -3231,6 +3180,12 @@ static void CG_DrawSigilLocations( void ) {
else if (target->currentState.modelindex == blueSigil)
CG_DrawSigilLocationInfo(origin, end, cgs.media.blueFlagShader[0], colorBlue);
else if (target->currentState.modelindex == greenSigil)
CG_DrawSigilLocationInfo(origin, end, cgs.media.greenFlagShader[0], colorGreen);
else if (target->currentState.modelindex == yellowSigil)
CG_DrawSigilLocationInfo(origin, end, cgs.media.yellowFlagShader[0], colorYellow);
else if (target->currentState.modelindex == whiteSigil)
CG_DrawSigilLocationInfo(origin, end, cgs.media.sigilShader, colorWhite);
}

View file

@ -112,6 +112,8 @@ extern vec4_t bgColor; // Q3Rally Code - UPDATE change variable name?
#define DEFAULT_REDTEAM_NAME "Red Devils"
#define DEFAULT_BLUETEAM_NAME "Blue Angels"
#define DEFAULT_GREENTEAM_NAME "Green Hornets"
#define DEFAULT_YELLOWTEAM_NAME "Yellow Beasts"
typedef enum {
FOOTSTEP_NORMAL,
@ -836,14 +838,20 @@ typedef struct {
#endif
qhandle_t redFlagModel;
qhandle_t blueFlagModel;
qhandle_t greenFlagModel;
qhandle_t yellowFlagModel;
qhandle_t neutralFlagModel;
qhandle_t redFlagShader[3];
qhandle_t blueFlagShader[3];
qhandle_t greenFlagShader[3];
qhandle_t yellowFlagShader[3];
qhandle_t flagShader[4];
// Q3Rally Code Start
qhandle_t sigilShader;
qhandle_t redsigilShader;
qhandle_t bluesigilShader;
qhandle_t sigilShader;
qhandle_t redsigilShader;
qhandle_t bluesigilShader;
qhandle_t greensigilShader;
qhandle_t yellowsigilShader;
// Q3Rally Code END
qhandle_t flagPoleModel;
qhandle_t flagFlapModel;

View file

@ -401,6 +401,8 @@ static cvarTable_t cvarTable[] = {
#ifdef MISSIONPACK
{ &cg_redTeamName, "g_redteam", DEFAULT_REDTEAM_NAME, CVAR_ARCHIVE | CVAR_SERVERINFO | CVAR_USERINFO },
{ &cg_blueTeamName, "g_blueteam", DEFAULT_BLUETEAM_NAME, CVAR_ARCHIVE | CVAR_SERVERINFO | CVAR_USERINFO },
{ &cg_greenTeamName, "g_greenteam", DEFAULT_GREENTEAM_NAME, CVAR_ARCHIVE | CVAR_SERVERINFO | CVAR_USERINFO },
{ &cg_yellowTeamName, "g_yellowteam", DEFAULT_YELLOWTEAM_NAME, CVAR_ARCHIVE | CVAR_SERVERINFO | CVAR_USERINFO },
{ &cg_currentSelectedPlayer, "cg_currentSelectedPlayer", "0", CVAR_ARCHIVE},
{ &cg_currentSelectedPlayerName, "cg_currentSelectedPlayerName", "", CVAR_ARCHIVE},
{ &cg_singlePlayer, "ui_singlePlayerActive", "0", CVAR_USERINFO},
@ -1094,16 +1096,26 @@ static void CG_RegisterGraphics( void ) {
#endif
cgs.media.redFlagModel = trap_R_RegisterModel( "models/flags/r_flag.md3" );
cgs.media.blueFlagModel = trap_R_RegisterModel( "models/flags/b_flag.md3" );
cgs.media.greenFlagModel = trap_R_RegisterModel( "models/flags/g_flag.md3" );
cgs.media.yellowFlagModel = trap_R_RegisterModel( "models/flags/y_flag.md3" );
cgs.media.redFlagShader[0] = trap_R_RegisterShaderNoMip( "icons/iconf_red1" );
cgs.media.redFlagShader[1] = trap_R_RegisterShaderNoMip( "icons/iconf_red2" );
cgs.media.redFlagShader[2] = trap_R_RegisterShaderNoMip( "icons/iconf_red3" );
cgs.media.blueFlagShader[0] = trap_R_RegisterShaderNoMip( "icons/iconf_blu1" );
cgs.media.blueFlagShader[1] = trap_R_RegisterShaderNoMip( "icons/iconf_blu2" );
cgs.media.blueFlagShader[2] = trap_R_RegisterShaderNoMip( "icons/iconf_blu3" );
cgs.media.greenFlagShader[0] = trap_R_RegisterShaderNoMip( "icons/iconf_green1" );
cgs.media.greenFlagShader[1] = trap_R_RegisterShaderNoMip( "icons/iconf_green2" );
cgs.media.greenFlagShader[2] = trap_R_RegisterShaderNoMip( "icons/iconf_green3" );
cgs.media.yellowFlagShader[0] = trap_R_RegisterShaderNoMip( "icons/iconf_yell1" );
cgs.media.yellowFlagShader[1] = trap_R_RegisterShaderNoMip( "icons/iconf_yell2" );
cgs.media.yellowFlagShader[2] = trap_R_RegisterShaderNoMip( "icons/iconf_yell3" );
// Q3Rally Code Start
cgs.media.sigilShader = trap_R_RegisterShaderNoMip( "icons/iconf_neutral1" );
cgs.media.redsigilShader = trap_R_RegisterShaderNoMip( "icons/iconf_red1" );
cgs.media.bluesigilShader = trap_R_RegisterShaderNoMip( "icons/iconf_blu1" );
cgs.media.bluesigilShader = trap_R_RegisterShaderNoMip( "icons/iconf_blu1" );
cgs.media.greensigilShader = trap_R_RegisterShaderNoMip( "icons/iconf_green1" );
cgs.media.yellowsigilShader = trap_R_RegisterShaderNoMip( "icons/iconf_yell1" );
// Q3Rally Code END
#ifdef MISSIONPACK

View file

@ -1207,6 +1207,8 @@ const char *CG_GameTypeString(void) {
return "Team Deathmatch";
} else if ( cgs.gametype == GT_CTF ) {
return "Capture the Flag";
} else if ( cgs.gametype == GT_DOMINATION ) {
return "Domination";
} else if ( cgs.gametype == GT_1FCTF ) {
return "One Flag CTF";
} else if ( cgs.gametype == GT_OBELISK ) {

View file

@ -844,7 +844,7 @@ static qboolean CG_RegisterClientModelname( clientInfo_t *ci, const char *modelN
if ( !ci->headModel ) {
Com_Printf( S_COLOR_YELLOW "Q3R Warning: Failed to load head model: %s\n", filename );
// use default wheel model
// use default head model
Com_sprintf( filename, sizeof(filename), "models/players/heads/%s.md3", DEFAULT_HEAD );
ci->headModel = trap_R_RegisterModel( filename );
if( !ci->headModel ) {
@ -950,14 +950,14 @@ static void CG_LoadClientInfo( int clientNum, clientInfo_t *ci ) {
Q_strncpyz(teamname, cg_blueTeamName.string, sizeof(teamname) );
}
// Q3Rally Code Start
/*
else if( ci->team == TEAM_GREEN ) {
Q_strncpyz(teamname, cg_greenTeamName.string, sizeof(teamname) );
}
else if( ci->team == TEAM_YELLOW ) {
Q_strncpyz(teamname, cg_yellowTeamName.string, sizeof(teamname) );
}
*/
// END
else {
Q_strncpyz(teamname, cg_redTeamName.string, sizeof(teamname) );
@ -985,7 +985,14 @@ static void CG_LoadClientInfo( int clientNum, clientInfo_t *ci ) {
// keep skin name
if( ci->team == TEAM_BLUE ) {
Q_strncpyz(teamname, DEFAULT_BLUETEAM_NAME, sizeof(teamname) );
} else {
}
else if( ci->team == TEAM_GREEN ) {
Q_strncpyz(teamname, DEFAULT_GREENTEAM_NAME, sizeof(teamname) );
}
else if( ci->team == TEAM_YELLOW ) {
Q_strncpyz(teamname, DEFAULT_YELLOWTEAM_NAME, sizeof(teamname) );
}
else {
Q_strncpyz(teamname, DEFAULT_REDTEAM_NAME, sizeof(teamname) );
}
// Q3Rally Code Start
@ -2089,7 +2096,7 @@ static void CG_SnowTrail( centity_t *cent ) {
cgs.media.snowPuffShader );
}
// #endif
/*
===============

View file

@ -925,6 +925,40 @@ Only in Domination games
/* precache */ "",
/* sounds */ ""
},
/*QUAKED team_DOMINATION_sigil_green
Only in Domination games
*/
{
"team_DOMINATION_sigil_green",
NULL,
{ "models/flags/g_flag.md3",
0, 0, 0 },
/* icon */ "icons/iconf_green1",
/* pickup */ "Flag",
0,
IT_SIGIL,
PW_SIGILGREEN,
/* precache */ "",
/* sounds */ ""
},
/*QUAKED team_DOMINATION_sigil_yellow
Only in Domination games
*/
{
"team_DOMINATION_sigil_yellow",
NULL,
{ "models/flags/y_flag.md3",
0, 0, 0 },
/* icon */ "icons/iconf_yell1",
/* pickup */ "Flag",
0,
IT_SIGIL,
PW_SIGILYELLOW,
/* precache */ "",
/* sounds */ ""
},
/*QUAKED team_DOMINATION_sigil
Only in Domination games

View file

@ -430,6 +430,8 @@ typedef enum {
PW_SIGILWHITE,
PW_SIGILRED,
PW_SIGILBLUE,
PW_SIGILGREEN,
PW_SIGILYELLOW,
PW_NUM_POWERUPS

View file

@ -88,6 +88,8 @@ void UpdateTournamentInfo( void ) {
if (g_gametype.integer >= GT_CTF) {
score1 = level.teamScores[TEAM_RED];
score2 = level.teamScores[TEAM_BLUE];
score3 = level.teamScores[TEAM_GREEN];
score4 = level.teamScores[TEAM_YELLOW];
if (level.clients[playerClientNum].sess.sessionTeam == TEAM_RED) {
won = (level.teamScores[TEAM_RED] > level.teamScores[TEAM_BLUE]);
} else {

View file

@ -168,7 +168,7 @@ static void G_LoadArenas( void ) {
else {
// STONELANCE
// G_LoadArenasFromFile("scripts/arenas.txt");
// G_LoadArenasFromFile("scripts/q3r_arenas.txt");
G_LoadArenasFromFile("scripts/q3r_arenas.txt");
// END
}

View file

@ -0,0 +1,11 @@
/*
** Copyright (C) 2004 by the Q3Rally Development team
** All rights reserved.
**
** g_rally_object_physics.c
**
** Contains scripted obejct physics code. This portion was never completed.
**
** Author: STONELANCE
*/

View file

@ -331,6 +331,8 @@ qboolean G_CallSpawn( gentity_t *ent ) {
RegisterItem(BG_FindItemForPowerup(PW_SIGILWHITE));
RegisterItem(BG_FindItemForPowerup(PW_SIGILRED));
RegisterItem(BG_FindItemForPowerup(PW_SIGILBLUE));
RegisterItem(BG_FindItemForPowerup(PW_SIGILGREEN));
RegisterItem(BG_FindItemForPowerup(PW_SIGILYELLOW));
}
// Q3Rally Code END

View file

@ -1116,10 +1116,50 @@ int Pickup_Team( gentity_t *ent, gentity_t *other ) {
Sigil_Think
===================
*/
void Sigil_Think( gentity_t *ent ) {
team_t team;
switch( ent->s.powerups ) {
case PW_SIGILRED :
team = TEAM_RED;
break;
case PW_SIGILBLUE :
team = TEAM_BLUE;
break;
case PW_SIGILGREEN :
team = TEAM_GREEN;
break;
case PW_SIGILYELLOW :
team = TEAM_YELLOW;
break;
default :
team = TEAM_RED;
}
ent->count = 0;
level.teamScores[team]++;
ent->nextthink = level.time + 10000;
// refresh scoreboard
CalculateRanks();
}
/*
void Sigil_Think( gentity_t *ent ) {
team_t team;
team = (ent->s.powerups == PW_SIGILRED) ? TEAM_RED : TEAM_BLUE;
if (team = (ent->s.powerups == PW_SIGILRED) ? TEAM_RED : TEAM_BLUE);
else if (team = (ent->s.powerups == PW_SIGILBLUE) ? TEAM_BLUE : TEAM_BLUE);
else if (team = (ent->s.powerups == PW_SIGILGREEN) ? TEAM_GREEN : TEAM_BLUE);
else if (team = (ent->s.powerups == PW_SIGILYELLOW) ? TEAM_YELLOW : TEAM_BLUE);
ent->count = 0;
level.teamScores[team]++;
ent->nextthink = level.time + 10000;
@ -1127,6 +1167,7 @@ void Sigil_Think( gentity_t *ent ) {
// refresh scoreboard
CalculateRanks();
}
*/
/*
====================================
@ -1155,8 +1196,8 @@ int Sigil_Touch( gentity_t *ent, gentity_t *other ) {
ent->s.powerups = PW_SIGILRED;
ent->s.modelindex = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILRED ) );
ent->count = 1;
}
else if ( cl->sess.sessionTeam == TEAM_BLUE && ent->s.powerups != PW_SIGILBLUE )
}
else if ( cl->sess.sessionTeam == TEAM_BLUE && ent->s.powerups != PW_SIGILBLUE )
{
Team_SetSigilStatus(sigilNum, SIGIL_ISBLUE);
ent->nextthink = level.time - (level.time % 4000) + 4000;
@ -1165,6 +1206,24 @@ int Sigil_Touch( gentity_t *ent, gentity_t *other ) {
ent->s.modelindex = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILBLUE ) );
ent->count = 1;
}
if ( cl->sess.sessionTeam == TEAM_GREEN && ent->s.powerups != PW_SIGILGREEN )
{
Team_SetSigilStatus(sigilNum, SIGIL_ISGREEN);
ent->nextthink = level.time - (level.time % 4000) + 4000;
ent->think = Sigil_Think;
ent->s.powerups = PW_SIGILGREEN;
ent->s.modelindex = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILGREEN ) );
ent->count = 1;
}
if ( cl->sess.sessionTeam == TEAM_YELLOW && ent->s.powerups != PW_SIGILYELLOW )
{
Team_SetSigilStatus(sigilNum, SIGIL_ISYELLOW);
ent->nextthink = level.time - (level.time % 4000) + 4000;
ent->think = Sigil_Think;
ent->s.powerups = PW_SIGILYELLOW;
ent->s.modelindex = ITEM_INDEX( BG_FindItemForPowerup( PW_SIGILYELLOW ) );
ent->count = 1;
}
return 0;
}

View file

@ -42,7 +42,7 @@ typedef void (*voidfunc_f)(void);
#define DEFAULT_MODEL "sidepipe"
#define DEFAULT_SKIN "red"
#define DEFAULT_TEAM_MODEL "sidepipe"
#define DEFAULT_TEAM_HEAD "doom"
#define DEFAULT_TEAM_HEAD "doom"
#define DEFAULT_HEAD "doom"
#define DEFAULT_RIM "svt_cobra"
#define DEFAULT_PLATE "plate_usa"

View file

@ -1603,48 +1603,11 @@ static void ServerOptions_LevelshotDraw( void *self ) {
}
}
/*
===============
ServerOptions_LevelshotDraw
ServerOptions_InitBotNames
===============
*/
/*
static void ServerOptions_LevelshotDraw( void *self ) {
menubitmap_s *b;
int x;
int y;
// strange place for this, but it works
if( s_serveroptions.newBot ) {
Q_strncpyz( s_serveroptions.playerNameBuffers[s_serveroptions.newBotIndex], s_serveroptions.newBotName, 16 );
s_serveroptions.newBot = qfalse;
}
b = (menubitmap_s *)self;
Bitmap_Draw( b );
x = b->generic.x;
y = b->generic.y + b->height;
UI_FillRect( x, y, b->width, 40, colorBlack );
x += b->width / 2;
y += 4;
// STONELANCE
//UI_DrawString( x, y, s_serveroptions.mapnamebuffer, UI_CENTER|UI_SMALLFONT, color_orange );
UI_DrawString( x, y, s_serveroptions.mapnamebuffer, UI_CENTER|UI_SMALLFONT, text_color_normal );
// END
y += SMALLCHAR_HEIGHT;
// STONELANCE
//UI_DrawString( x, y, gametype_items[gametype_remap2[s_serveroptions.gametype]], UI_CENTER|UI_SMALLFONT, color_orange );
UI_DrawString( x, y, gametype_items[gametype_remap2[s_serveroptions.gametype]], UI_CENTER|UI_SMALLFONT, text_color_normal );
// END
}
*/
// END
static void ServerOptions_InitBotNames( void ) {
int count;
int n;
@ -1657,9 +1620,9 @@ static void ServerOptions_InitBotNames( void ) {
if( s_serveroptions.gametype >= GT_TEAM ) {
Q_strncpyz( s_serveroptions.playerNameBuffers[1], "Bobby", 16 );
Q_strncpyz( s_serveroptions.playerNameBuffers[2], "Carla", 16 );
if( s_serveroptions.gametype == GT_TEAM ) {
Q_strncpyz( s_serveroptions.playerNameBuffers[3], "Paul", 16 );
}
if( s_serveroptions.gametype == GT_TEAM ) {
Q_strncpyz( s_serveroptions.playerNameBuffers[3], "Paul", 16 );
}
else {
s_serveroptions.playerType[3].curvalue = 2;
}
@ -1669,8 +1632,8 @@ static void ServerOptions_InitBotNames( void ) {
Q_strncpyz( s_serveroptions.playerNameBuffers[6], "Alexandra", 16 );
Q_strncpyz( s_serveroptions.playerNameBuffers[7], "Sam", 16 );
Q_strncpyz( s_serveroptions.playerNameBuffers[8], "Dean", 16 );
if( s_serveroptions.gametype == GT_TEAM ) {
Q_strncpyz( s_serveroptions.playerNameBuffers[9], "Janine", 16 );
if( s_serveroptions.gametype == GT_TEAM ) {
Q_strncpyz( s_serveroptions.playerNameBuffers[9], "Janine", 16 );
}
else {
s_serveroptions.playerType[9].curvalue = 2;

View file

@ -67,7 +67,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#define BASETA "missionpack"
#ifndef PRODUCT_VERSION
#define PRODUCT_VERSION "v0.3b_r408"
#define PRODUCT_VERSION "v0.3b_r412"
#endif
@ -1799,7 +1799,9 @@ typedef enum _flag_status {
typedef enum _sigil_status {
SIGIL_ISWHITE = 0,
SIGIL_ISRED,
SIGIL_ISBLUE
SIGIL_ISBLUE,
SIGIL_ISGREEN,
SIGIL_ISYELLOW
} sigilStatus_t;
// Q3Rally Code END

View file

@ -18,6 +18,32 @@ HTServer=localhost
q3rallycode
+engine
+code
-renderergl1
engine\code\renderergl1\tr_world.c
engine\code\renderergl1\tr_surface.c
engine\code\renderergl1\tr_subs.c
engine\code\renderergl1\tr_sky.c
engine\code\renderergl1\tr_shadows.c
engine\code\renderergl1\tr_shader.c
engine\code\renderergl1\tr_shade_calc.c
engine\code\renderergl1\tr_shade.c
engine\code\renderergl1\tr_scene.c
engine\code\renderergl1\tr_model_iqm.c
engine\code\renderergl1\tr_model.c
engine\code\renderergl1\tr_mesh.c
engine\code\renderergl1\tr_marks.c
engine\code\renderergl1\tr_main.c
engine\code\renderergl1\tr_local.h
engine\code\renderergl1\tr_light.c
engine\code\renderergl1\tr_init.c
engine\code\renderergl1\tr_image.c
engine\code\renderergl1\tr_flares.c
engine\code\renderergl1\tr_curve.c
engine\code\renderergl1\tr_cmds.c
engine\code\renderergl1\tr_bsp.c
engine\code\renderergl1\tr_backend.c
engine\code\renderergl1\tr_animation.c
engine\code\renderergl1\tr_altivec.c
-AL
engine\code\AL\al.h
engine\code\AL\alc.h
@ -96,7 +122,7 @@ q3rallycode
engine\code\botlib\l_utils.h
engine\code\botlib\lcc.mak
engine\code\botlib\linux-i386.mak
+cgame
-cgame
engine\code\cgame\cg_atmospheric.c
engine\code\cgame\cg_consolecmds.c
engine\code\cgame\cg_draw.c
@ -863,16 +889,30 @@ q3rallycode
1=engine\code\qcommon\qcommon.h
2=engine\code\cgame\cg_info.c
3=engine\code\qcommon\files.c
4=engine\code\game\g_spawn.c
5=engine\code\cgame\cg_main.c
6=engine\code\cgame\cg_local.h
7=engine\code\cgame\cg_rally_tools.c
4=engine\code\game\bg_public.h
5=engine\code\cgame\cg_local.h
6=engine\code\cgame\cg_main.c
7=engine\code\cgame\cg_players.c
8=engine\code\cgame\cg_draw.c
9=engine\code\cgame\cg_newdraw.c
10=engine\code\cgame\cg_rally_hud.c
11=engine\code\cgame\cg_rally_hud2.c
12=engine\code\game\g_team.c
13=engine\code\cgame\cg_scoreboard.c
14=engine\code\game\g_client.c
15=engine\code\game\g_cmds.c
16=engine\code\renderergl1\tr_shade_calc.c
17=engine\code\cgame\cg_servercmds.c
18=engine\code\game\bg_misc.c
19=engine\code\game\g_items.c
20=engine\code\game\g_spawn.c
21=engine\code\game\g_arenas.c
[Selected Project Files]
Main=
Selected=engine\code\qcommon\q_shared.h
Selected=engine\code\game\g_team.c
[engine\code\qcommon\q_shared.h]
TopLine=42
Caret=36,70
TopLine=1787
Caret=17,1804
[engine\code\qcommon\qcommon.h]
TopLine=700
Caret=1,715
@ -882,15 +922,57 @@ Caret=1,210
[engine\code\qcommon\files.c]
TopLine=193
Caret=21,210
[engine\code\game\g_spawn.c]
TopLine=730
Caret=1,745
[engine\code\cgame\cg_main.c]
TopLine=984
Caret=29,1000
[engine\code\game\bg_public.h]
TopLine=417
Caret=24,434
[engine\code\cgame\cg_local.h]
TopLine=1909
Caret=1,1924
[engine\code\cgame\cg_rally_tools.c]
TopLine=611
Caret=1,618
TopLine=676
Caret=1,684
[engine\code\cgame\cg_main.c]
TopLine=1095
Caret=25,1097
[engine\code\cgame\cg_players.c]
TopLine=2084
Caret=1,2099
[engine\code\cgame\cg_draw.c]
TopLine=533
Caret=27,561
[engine\code\cgame\cg_newdraw.c]
TopLine=1192
Caret=29,1211
[engine\code\cgame\cg_rally_hud.c]
TopLine=828
Caret=1,835
[engine\code\cgame\cg_rally_hud2.c]
TopLine=114
Caret=1,129
[engine\code\game\g_team.c]
TopLine=1137
Caret=3,1170
[engine\code\cgame\cg_scoreboard.c]
TopLine=444
Caret=1,457
[engine\code\game\g_client.c]
TopLine=686
Caret=1,700
[engine\code\game\g_cmds.c]
TopLine=110
Caret=1,124
[engine\code\renderergl1\tr_shade_calc.c]
TopLine=896
Caret=44,909
[engine\code\cgame\cg_servercmds.c]
TopLine=397
Caret=1,415
[engine\code\game\bg_misc.c]
TopLine=937
Caret=19,958
[engine\code\game\g_items.c]
TopLine=805
Caret=1,819
[engine\code\game\g_spawn.c]
TopLine=318
Caret=59,335
[engine\code\game\g_arenas.c]
TopLine=79
Caret=52,92