Loading screen. Jump kicks. Bot stuff

This commit is contained in:
Andrei Drexler 2002-05-02 23:05:25 +00:00
parent 42928c4a67
commit 455303ef72
6 changed files with 311 additions and 146 deletions

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.20 2002/05/02 23:05:25 makro
// Loading screen. Jump kicks. Bot stuff
//
// Revision 1.19 2002/05/02 12:44:58 makro
// Customizable color for the loading screen text. Bot stuff
//
@ -99,17 +102,7 @@
//Makro - to get rid of the warnings
void Cmd_Bandage (gentity_t *ent);
void Cmd_DropItem_f(gentity_t *ent);
gentity_t *SelectRandomDeathmatchSpawnPoint( void );
int FindHumanTeamLeader(bot_state_t *bs);
void BotVoiceChat_FollowMe(bot_state_t *bs, int client, int mode);
//From ai_dmq3.c
void VectorTargetDist(vec3_t src, vec3_t dest, int dist, vec3_t final);
void BotAttack(bot_state_t *bs);
bot_moveresult_t BotMoveTo(bot_state_t *bs, vec3_t dest);
void BotMoveTowardsEnt(bot_state_t *bs, vec3_t dest, int dist);
void Cmd_DropWeapon_f(gentity_t *ent);
//goal flag, see be_ai_goal.h for the other GFL_*
#define GFL_AIR 128
@ -119,15 +112,6 @@ char nodeswitch[MAX_NODESWITCHES+1][144];
#define LOOKAHEAD_DISTANCE 300
/*
==================
BotRespawn
Added by Makro
Replaces trap_EA_respawn
==================
*/
/*
==================
BotResetNodeSwitches
@ -283,12 +267,25 @@ int BotNearbyGoal(bot_state_t *bs, int tfl, bot_goal_t *ltg, float range) {
/*
==================
RQ3_Bot_SpecialWeapon
RQ3_Bot_WeaponToDrop
Added by Makro
==================
*/
int RQ3_Bot_SpecialWeapon(bot_state_t *bs) {
int RQ3_Bot_WeaponToDrop(bot_state_t *bs) {
if (bs->cur_ps.weapon <= WP_NONE || bs->cur_ps.weapon >= WP_NUM_WEAPONS)
return WP_NONE;
if (bs->cur_ps.weapon == WP_PISTOL || bs->cur_ps.weapon == WP_KNIFE ||
bs->cur_ps.weapon == WP_AKIMBO || bs->cur_ps.weapon == WP_GRENADE) {
//no special weapon selected
if (bs->inventory[INVENTORY_M4]) return WP_M4;
else if (bs->inventory[INVENTORY_M3]) return WP_M3;
else if (bs->inventory[INVENTORY_MP5]) return WP_MP5;
else if (bs->inventory[INVENTORY_HANDCANNON]) return WP_HANDCANNON;
else if (bs->inventory[INVENTORY_SSG3000]) return WP_SSG3000;
} else {
return bs->cur_ps.weapon;
}
return WP_NONE;
}
@ -374,6 +371,11 @@ Added by Makro
==================
*/
qboolean RQ3_Bot_NeedToDropStuff(bot_state_t *bs, bot_goal_t *goal) {
float attack_skill = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_ATTACK_SKILL, 0, 1);
//check the bot skill
if ( random() < (1 - attack_skill) ) return qfalse;
//if the bot doesn't have an item or it didn't reach one
if ( !g_entities[goal->entitynum].item )
return qfalse;
@ -384,23 +386,28 @@ qboolean RQ3_Bot_NeedToDropStuff(bot_state_t *bs, bot_goal_t *goal) {
else {
holdable_t oldItem = bg_itemlist[bs->cur_ps.stats[STAT_HOLDABLE_ITEM]].giTag;
holdable_t newItem = g_entities[goal->entitynum].item->giTag;
int i, oldScore, newScore;
int i, oldScore, newScore, dropWeapon = WP_NONE;
//if the two items are identical
if ( oldItem == newItem ) return qfalse;
//if the bot drops the bandolier a weapon might be dropped, too
if ( oldItem == HI_BANDOLIER && g_entities[bs->entitynum].client->uniqueWeapons > g_RQ3_maxWeapons.integer )
dropWeapon = RQ3_Bot_WeaponToDrop(bs);
newScore = oldScore = 0;
//check all the weapons
for ( i = 0; i < MAX_WEAPONS; i++ ) {
for ( i = WP_NONE+1; i < MAX_WEAPONS; i++ ) {
//if the bot has the weapon
if ( bs->cur_ps.stats[STAT_WEAPONS] & (1 << i) ) {
//get the score for it
oldScore += RQ3_Bot_ComboScore(i, oldItem);
newScore += RQ3_Bot_ComboScore(i, newItem);
//don't add the score for a weapon if it's going to be dropped
if (i != dropWeapon)
newScore += RQ3_Bot_ComboScore(i, newItem);
}
}
//FIXME - special code is needed for the bandolier, since throwing it away
//will also throw one of the weapons
//if the new item is better
if (newScore > oldScore) {
Cmd_DropItem_f( &g_entities[bs->entitynum] );
return qtrue;
@ -408,12 +415,20 @@ qboolean RQ3_Bot_NeedToDropStuff(bot_state_t *bs, bot_goal_t *goal) {
}
//if the bot can pick up a weapon
} else if ( g_entities[goal->entitynum].item->giType == IT_WEAPON ) {
//Code coming soon :P
return qfalse;
int dropWeapon = RQ3_Bot_WeaponToDrop(bs);
if (dropWeapon == WP_NONE) return qfalse;
if (bs->cur_ps.ammo[dropWeapon]) return qfalse;
if (RQ3_Bot_CanReload(bs, dropWeapon)) return qfalse;
//Makro - the current weapon is empty, drop it
Cmd_DropWeapon_f( &g_entities[bs->entitynum] );
return qtrue;
}
return qfalse;
}
/*
==================
BotReachedGoal
@ -424,8 +439,8 @@ int BotReachedGoal(bot_state_t *bs, bot_goal_t *goal) {
//if touching the goal
if (trap_BotTouchingGoal(bs->origin, goal)) {
if (!(goal->flags & GFL_DROPPED)) {
//Makro - check if the bot picked up a better weapon or item
trap_BotSetAvoidGoalTime(bs->gs, goal->number, -1);
//Makro - check if the bot picked up a better weapon or item
RQ3_Bot_NeedToDropStuff( bs , goal );
}
/*
@ -1408,8 +1423,7 @@ AINode_Stand
==================
*/
int AINode_Stand(bot_state_t *bs) {
qboolean willBandage = qfalse;
//if the bot's health decreased
if (bs->lastframe_health > bs->inventory[INVENTORY_HEALTH]) {
if (BotChat_HitTalking(bs)) {

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.24 2002/05/02 23:05:25 makro
// Loading screen. Jump kicks. Bot stuff
//
// Revision 1.23 2002/05/02 12:44:58 makro
// Customizable color for the loading screen text. Bot stuff
//
@ -320,10 +323,34 @@ RQ3_Bot_GetWeaponInfo
Added by Makro
==================
*/
void RQ3_Bot_GetWeaponInfo(bot_state_t *bs, int weaponstate, int weapon, void *weaponinfo) {
trap_BotGetWeaponInfo(weaponstate, weapon, weaponinfo);
//TODO: - set spreads here depending on what the player is doing - crouching, running etc.
// - set grenade range
//TODO: - set spreads here depending on what the player is doing - crouching, running etc.
qboolean RQ3_Bot_GetWeaponInfo(bot_state_t *bs, int weaponstate, int weapon, void *weaponinfo) {
//if the weapon is not valid
if (weapon <= WP_NONE || weapon >= WP_NUM_WEAPONS) {
return qfalse;
} else {
weaponinfo_t *wi;
trap_BotGetWeaponInfo(weaponstate, weapon, weaponinfo);
wi = (weaponinfo_t*) weaponinfo;
if (!wi) return qfalse;
if (!wi->valid) return qfalse;
if (wi->number == WP_GRENADE) {
//long range
if ( (bs->cur_ps.persistant[PERS_WEAPONMODES] & RQ3_GRENMED) == RQ3_GRENMED &&
(bs->cur_ps.persistant[PERS_WEAPONMODES] & RQ3_GRENSHORT) == RQ3_GRENSHORT ) {
wi->speed = GRENADE_LONG_SPEED;
//medium range
} else if ( (bs->cur_ps.persistant[PERS_WEAPONMODES] & RQ3_GRENMED) == RQ3_GRENMED ) {
wi->speed = GRENADE_MEDIUM_SPEED;
//short range
} else {
wi->speed = GRENADE_SHORT_SPEED;
}
}
}
return qtrue;
}
/*
@ -425,7 +452,8 @@ qboolean EntityIsDead(aas_entityinfo_t *entinfo) {
if (entinfo->number >= 0 && entinfo->number < MAX_CLIENTS) {
//retrieve the current client state
BotAI_GetClientState( entinfo->number, &ps );
if (ps.pm_type != PM_NORMAL) return qtrue;
//Makro - added health check
if (ps.pm_type != PM_NORMAL || ps.stats[STAT_HEALTH] <= 0) return qtrue;
}
return qfalse;
}
@ -1545,13 +1573,17 @@ Added by Makro
*/
void BotRQ3TPSeekGoals( bot_state_t *bs ) {
int firstBot = 0, firstHuman = 0, leader = 0, i;
static int maxclients;
if (!maxclients)
maxclients = trap_Cvar_VariableIntegerValue("sv_maxclients");
//if the bot already has a goal
if (bs->ltgtype)
return;
//find the first human/bot teammates
for ( i=0; i<MAX_CLIENTS; i++ ) {
for ( i=0; i < MAX_CLIENTS && i < maxclients; i++ ) {
if ( !(g_entities[i].inuse) || !(g_entities[i].client) )
continue;
if (!BotSameTeam(bs, i))
@ -3695,10 +3727,11 @@ void BotAimAtEnemy(bot_state_t *bs) {
//get the weapon information
//trap_BotGetWeaponInfo(bs->ws, bs->weaponnum, &wi);
//Makro - new function
RQ3_Bot_GetWeaponInfo(bs, bs->ws, bs->weaponnum, &wi);
//get the weapon specific aim accuracy and or aim skill
//Makro - new function; if weapon/weapon info not ok, stop
if (!RQ3_Bot_GetWeaponInfo(bs, bs->ws, bs->weaponnum, &wi))
return;
//get the weapon specific aim accuracy and or aim skill
//Blaze: just gonna set the Characteristic aim to machinegun for all of these, but I am still doing the if's so we can edit it later for bot support
//Blaze: Reaction Pistol
if (wi.number == WP_PISTOL) {
@ -3990,8 +4023,9 @@ void BotCheckAttack(bot_state_t *bs) {
//Makro - we need the weapon info sooner
//get the weapon info
//trap_BotGetWeaponInfo(bs->ws, bs->weaponnum, &wi);
//Makro - new function
RQ3_Bot_GetWeaponInfo(bs, bs->ws, bs->weaponnum, &wi);
//Makro - new function; if weapon/weapon info not ok, stop
if (!RQ3_Bot_GetWeaponInfo(bs, bs->ws, bs->weaponnum, &wi))
return;
reactiontime = trap_Characteristic_BFloat(bs->character, CHARACTERISTIC_REACTIONTIME, 0, 1);
if (bs->enemysight_time > FloatTime() - reactiontime) return;
if (bs->teleport_time > FloatTime() - reactiontime) return;
@ -5607,6 +5641,20 @@ void BotCheckEvents(bot_state_t *bs, entityState_t *state) {
}
case EV_FOOTSTEP:
case EV_FOOTSTEP_METAL:
case EV_FOOTSTEP_GRASS: // Elder: new surfaces
case EV_FOOTSTEP_WOOD:
case EV_FOOTSTEP_CARPET:
case EV_FOOTSTEP_METAL2:
case EV_FOOTSTEP_GRAVEL:
case EV_FOOTSTEP_SNOW: // JBravo: new surfaces
case EV_FOOTSTEP_MUD:
case EV_FOOTSTEP_WOOD2:
case EV_FOOTSTEP_HARDMETAL:
case EV_FOOTSTEP_LEAVES: // Makro: new surfaces
case EV_FOOTSTEP_CEMENT:
case EV_FOOTSTEP_MARBLE:
case EV_FOOTSTEP_SNOW2:
case EV_FOOTSTEP_HARDSTEPS:
case EV_FOOTSPLASH:
case EV_FOOTWADE:
case EV_SWIM:

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.6 2002/05/02 23:05:25 makro
// Loading screen. Jump kicks. Bot stuff
//
// Revision 1.5 2002/04/06 21:42:20 makro
// Changes to bot code. New surfaceparm system.
//
@ -180,6 +183,15 @@ int BotPointAreaNum(vec3_t origin);
//
void BotMapScripts(bot_state_t *bs);
//RQ3 bot functions
qboolean RQ3_Bot_CheckBandage( bot_state_t *bs );
qboolean RQ3_Bot_CanReload( bot_state_t *bs, int weapon );
void VectorTargetDist(vec3_t src, vec3_t dest, int dist, vec3_t final);
void BotAttack(bot_state_t *bs);
bot_moveresult_t BotMoveTo(bot_state_t *bs, vec3_t dest);
void BotMoveTowardsEnt(bot_state_t *bs, vec3_t dest, int dist);
//ctf flags
#define CTF_FLAG_NONE 0
#define CTF_FLAG_RED 1

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.21 2002/05/02 23:05:25 makro
// Loading screen. Jump kicks. Bot stuff
//
// Revision 1.20 2002/05/02 12:44:58 makro
// Customizable color for the loading screen text. Bot stuff
//
@ -707,6 +710,7 @@ void SP_worldspawn( void ) {
char *s;
vec3_t color;
char info[MAX_INFO_STRING];
int nodetail = 0;
G_SpawnString( "classname", "", &s );
if ( Q_stricmp( s, "worldspawn" ) ) {
@ -725,10 +729,18 @@ void SP_worldspawn( void ) {
trap_SetConfigstring( CS_MESSAGE, s ); // map specific message
//Makro - color for the loading screen text
G_SpawnVector( "_color", "1 1 1", color );
Info_SetValueForKey(info, "red", va("%f", color[0]));
Info_SetValueForKey(info, "green", va("%f", color[1]));
Info_SetValueForKey(info, "blue", va("%f", color[2]));
G_SpawnVector( "_color", "0.75 0.75 0.75", color );
Info_SetValueForKey(info, "r1", va("%f", color[0]));
Info_SetValueForKey(info, "g1", va("%f", color[1]));
Info_SetValueForKey(info, "b1", va("%f", color[2]));
G_SpawnVector( "_color2", "1 1 1", color );
Info_SetValueForKey(info, "r2", va("%f", color[0]));
Info_SetValueForKey(info, "g2", va("%f", color[1]));
Info_SetValueForKey(info, "b2", va("%f", color[2]));
//skip detail ?
G_SpawnInt( "nodetail", "0", &nodetail );
Info_SetValueForKey(info, "nodetail", va("%i", nodetail));
//save settings
trap_SetConfigstring( CS_LOADINGSCREEN, info );
trap_SetConfigstring( CS_MOTD, g_motd.string ); // message of the day

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.51 2002/05/02 23:05:25 makro
// Loading screen. Jump kicks. Bot stuff
//
// Revision 1.50 2002/05/02 03:06:09 blaze
// Fixed breakables crashing on vashes
//
@ -156,24 +159,7 @@ qboolean JumpKick( gentity_t *ent )
return qfalse;
}
// JBravo: some sanity checks on the traceEnt
if (traceEnt == NULL || traceEnt->client == NULL)
return qfalse;
// JBravo: no kicking teammates while rounds are going
if (g_gametype.integer == GT_TEAMPLAY) {
if (ent->client->sess.sessionTeam == traceEnt->client->sess.sessionTeam &&
level.team_round_going)
return qfalse;
}
if (ent->client->ps.powerups[PW_QUAD] ) {
G_AddEvent( ent, EV_POWERUP_QUAD, 0 );
s_quadFactor = g_quadfactor.value;
} else {
s_quadFactor = 1;
}
//Makro - this was a few lines below
damage = 20;
if ( traceEnt->s.eType == ET_BREAKABLE || traceEnt->client)
@ -190,6 +176,34 @@ qboolean JumpKick( gentity_t *ent )
if (ent->client && level.team_round_going)
ent->client->pers.records[REC_KICKHITS]++;
}
//end Makro
// JBravo: some sanity checks on the traceEnt
// Makro - this check made the sound only play when a client is hit
// if (traceEnt == NULL || traceEnt->client == NULL)
if (traceEnt == NULL)
return qfalse;
// JBravo: no kicking teammates while rounds are going
if (g_gametype.integer == GT_TEAMPLAY) {
//Makro - client check here
if (ent->client)
if (ent->client->sess.sessionTeam == traceEnt->client->sess.sessionTeam &&
level.team_round_going)
return qfalse;
}
//Makro - client check
if (ent->client) {
if (ent->client->ps.powerups[PW_QUAD] ) {
G_AddEvent( ent, EV_POWERUP_QUAD, 0 );
s_quadFactor = g_quadfactor.value;
} else {
s_quadFactor = 1;
}
}
//Makro - moved some code up by a few lines to allow breakables to be kicked
// send blood impact + event stuff
/*
@ -258,7 +272,6 @@ qboolean JumpKick( gentity_t *ent )
//traceEnt->s.groundEntityNum = ENTITYNUM_NONE;
//}
//Elder: Our set of locally called sounds
if (kickSuccess)
{

View file

@ -3,54 +3,110 @@
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: game - Win32 Release--------------------
--------------------Configuration: cgame - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1E.tmp" with contents
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP212D.tmp" with contents
[
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR"c:\reactionoutput/" /Fp"c:\reactionoutput/game.pch" /YX /Fo"c:\reactionoutput/" /Fd"c:\reactionoutput/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\ai_chat.c"
"C:\Games\Quake3\rq3source\reaction\game\ai_cmd.c"
"C:\Games\Quake3\rq3source\reaction\game\ai_dmnet.c"
"C:\Games\Quake3\rq3source\reaction\game\ai_dmq3.c"
"C:\Games\Quake3\rq3source\reaction\game\ai_main.c"
"C:\Games\Quake3\rq3source\reaction\game\ai_team.c"
"C:\Games\Quake3\rq3source\reaction\game\ai_vcmd.c"
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fp"Release/cgame.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\bg_misc.c"
"C:\Games\Quake3\rq3source\reaction\game\bg_pmove.c"
"C:\Games\Quake3\rq3source\reaction\game\bg_slidemove.c"
"C:\Games\Quake3\rq3source\reaction\game\g_active.c"
"C:\Games\Quake3\rq3source\reaction\game\g_arenas.c"
"C:\Games\Quake3\rq3source\reaction\game\g_bot.c"
"C:\Games\Quake3\rq3source\reaction\game\g_client.c"
"C:\Games\Quake3\rq3source\reaction\game\g_cmds.c"
"C:\Games\Quake3\rq3source\reaction\game\g_combat.c"
"C:\Games\Quake3\rq3source\reaction\game\g_fileio.c"
"C:\Games\Quake3\rq3source\reaction\game\g_items.c"
"C:\Games\Quake3\rq3source\reaction\game\g_main.c"
"C:\Games\Quake3\rq3source\reaction\game\g_matchmode.c"
"C:\Games\Quake3\rq3source\reaction\game\g_mem.c"
"C:\Games\Quake3\rq3source\reaction\game\g_misc.c"
"C:\Games\Quake3\rq3source\reaction\game\g_missile.c"
"C:\Games\Quake3\rq3source\reaction\game\g_mover.c"
"C:\Games\Quake3\rq3source\reaction\game\g_session.c"
"C:\Games\Quake3\rq3source\reaction\game\g_spawn.c"
"C:\Games\Quake3\rq3source\reaction\game\g_svcmds.c"
"C:\Games\Quake3\rq3source\reaction\game\g_syscalls.c"
"C:\Games\Quake3\rq3source\reaction\game\g_target.c"
"C:\Games\Quake3\rq3source\reaction\game\g_team.c"
"C:\Games\Quake3\rq3source\reaction\game\g_teamplay.c"
"C:\Games\Quake3\rq3source\reaction\game\g_trigger.c"
"C:\Games\Quake3\rq3source\reaction\game\g_utils.c"
"C:\Games\Quake3\rq3source\reaction\game\g_weapon.c"
"C:\Games\Quake3\rq3source\reaction\game\q_math.c"
"C:\Games\Quake3\rq3source\reaction\game\q_shared.c"
"C:\Games\Quake3\rq3source\reaction\game\rxn_game.c"
"C:\Games\Quake3\rq3source\reaction\game\zcam.c"
"C:\Games\Quake3\rq3source\reaction\game\zcam_target.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_consolecmds.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_draw.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_drawtools.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_effects.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_ents.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_event.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_info.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_localents.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_main.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_marks.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_players.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_playerstate.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_predict.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_scoreboard.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_servercmds.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_snapshot.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_syscalls.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_view.c"
"C:\Games\Quake3\rq3source\reaction\cgame\cg_weapons.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1E.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1F.tmp" with contents
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP212D.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP212E.tmp" with contents
[
/nologo /base:"0x30000000" /subsystem:windows /dll /incremental:no /pdb:"Release/cgamex86.pdb" /map:"Release/cgamex86.map" /machine:I386 /def:".\cgame.def" /out:"../Release/cgamex86.dll" /implib:"Release/cgamex86.lib"
.\Release\bg_misc.obj
.\Release\bg_pmove.obj
.\Release\bg_slidemove.obj
.\Release\cg_consolecmds.obj
.\Release\cg_draw.obj
.\Release\cg_drawtools.obj
.\Release\cg_effects.obj
.\Release\cg_ents.obj
.\Release\cg_event.obj
.\Release\cg_info.obj
.\Release\cg_localents.obj
.\Release\cg_main.obj
.\Release\cg_marks.obj
.\Release\cg_players.obj
.\Release\cg_playerstate.obj
.\Release\cg_predict.obj
.\Release\cg_scoreboard.obj
.\Release\cg_servercmds.obj
.\Release\cg_snapshot.obj
.\Release\cg_syscalls.obj
.\Release\cg_view.obj
.\Release\cg_weapons.obj
.\Release\q_math.obj
.\Release\q_shared.obj
.\Release\ui_shared.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP212E.tmp"
<h3>Output Window</h3>
Compiling...
bg_misc.c
bg_pmove.c
bg_slidemove.c
cg_consolecmds.c
cg_draw.c
cg_drawtools.c
cg_effects.c
cg_ents.c
cg_event.c
cg_info.c
cg_localents.c
cg_main.c
cg_marks.c
cg_players.c
cg_playerstate.c
cg_predict.c
cg_scoreboard.c
cg_servercmds.c
cg_snapshot.c
cg_syscalls.c
cg_view.c
cg_weapons.c
Linking...
Creating library Release/cgamex86.lib and object Release/cgamex86.exp
<h3>Results</h3>
cgamex86.dll - 0 error(s), 0 warning(s)
<h3>
--------------------Configuration: game - Win32 Release--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2132.tmp" with contents
[
/nologo /G6 /ML /W4 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FR"c:\reactionoutput/" /Fp"c:\reactionoutput/game.pch" /YX /Fo"c:\reactionoutput/" /Fd"c:\reactionoutput/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\ai_dmnet.c"
"C:\Games\Quake3\rq3source\reaction\game\ai_dmq3.c"
"C:\Games\Quake3\rq3source\reaction\game\g_spawn.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2132.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2133.tmp" with contents
[
kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows /dll /incremental:no /pdb:"c:\reactionoutput/qagamex86.pdb" /map:"c:\reactionoutput/qagamex86.map" /machine:I386 /def:".\game.def" /out:"..\Release/qagamex86.dll" /implib:"c:\reactionoutput/qagamex86.lib"
\reactionoutput\ai_chat.obj
@ -93,56 +149,66 @@ kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows
\reactionoutput\zcam.obj
\reactionoutput\zcam_target.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1F.tmp"
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2133.tmp"
<h3>Output Window</h3>
Compiling...
ai_chat.c
ai_cmd.c
ai_dmnet.c
ai_dmq3.c
ai_main.c
ai_team.c
ai_vcmd.c
bg_misc.c
bg_pmove.c
bg_slidemove.c
g_active.c
g_arenas.c
g_bot.c
g_client.c
g_cmds.c
g_combat.c
g_fileio.c
g_items.c
g_main.c
g_matchmode.c
g_mem.c
g_misc.c
g_missile.c
g_mover.c
g_session.c
g_spawn.c
g_svcmds.c
g_syscalls.c
g_target.c
g_team.c
g_teamplay.c
g_trigger.c
g_utils.c
g_weapon.c
q_math.c
C:\Games\Quake3\rq3source\reaction\game\g_weapon.c(2576) : warning C4701: local variable 'tr' may be used without having been initialized
q_shared.c
rxn_game.c
zcam.c
zcam_target.c
Linking...
Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp
<h3>Results</h3>
qagamex86.dll - 0 error(s), 1 warning(s)
qagamex86.dll - 0 error(s), 0 warning(s)
<h3>
--------------------Configuration: ui - Win32 Release TA--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2137.tmp" with contents
[
/nologo /G6 /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "UI_EXPORTS" /Fp"Release_TA/ta_ui.pch" /YX /Fo"Release_TA/" /Fd"Release_TA/" /FD /c
"C:\Games\Quake3\rq3source\reaction\game\bg_misc.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_atoms.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_gameinfo.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_main.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_players.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_shared.c"
"C:\Games\Quake3\rq3source\reaction\ta_ui\ui_syscalls.c"
]
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2137.tmp"
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2138.tmp" with contents
[
/nologo /base:"0x40000000" /dll /incremental:no /pdb:"Release_TA/uix86.pdb" /map:"Release_TA/uix86.map" /machine:I386 /def:".\ui.def" /out:"uix86.dll" /implib:"Release_TA/uix86.lib"
.\Release_TA\bg_misc.obj
.\Release_TA\q_math.obj
.\Release_TA\q_shared.obj
.\Release_TA\ui_atoms.obj
.\Release_TA\ui_gameinfo.obj
.\Release_TA\ui_main.obj
.\Release_TA\ui_players.obj
.\Release_TA\ui_shared.obj
.\Release_TA\ui_syscalls.obj
.\Release_TA\ui_util.obj
]
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP2138.tmp"
<h3>Output Window</h3>
Compiling...
bg_misc.c
ui_atoms.c
ui_gameinfo.c
ui_main.c
ui_players.c
ui_shared.c
ui_syscalls.c
Linking...
Creating library Release_TA/uix86.lib and object Release_TA/uix86.exp
<h3>Results</h3>
uix86.dll - 0 error(s), 0 warning(s)
</pre>
</body>
</html>