mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-11 15:52:30 +00:00
Bots reload akimbos/handcannons. Also, they can decide whether
or not an item in the ground is better than theirs
This commit is contained in:
parent
c79a22f81d
commit
df1414b99b
3 changed files with 266 additions and 40 deletions
|
@ -5,6 +5,10 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.17 2002/05/01 05:32:45 makro
|
||||||
|
// Bots reload akimbos/handcannons. Also, they can decide whether
|
||||||
|
// or not an item in the ground is better than theirs
|
||||||
|
//
|
||||||
// Revision 1.16 2002/04/30 11:54:37 makro
|
// Revision 1.16 2002/04/30 11:54:37 makro
|
||||||
// Bots rule ! Also, added clips to give all. Maybe some other things
|
// Bots rule ! Also, added clips to give all. Maybe some other things
|
||||||
//
|
//
|
||||||
|
@ -88,7 +92,12 @@
|
||||||
|
|
||||||
//Makro - to get rid of the warnings
|
//Makro - to get rid of the warnings
|
||||||
void Cmd_Bandage (gentity_t *ent);
|
void Cmd_Bandage (gentity_t *ent);
|
||||||
|
void Cmd_DropItem_f(gentity_t *ent);
|
||||||
gentity_t *SelectRandomDeathmatchSpawnPoint( void );
|
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
|
//From ai_dmq3.c
|
||||||
void VectorTargetDist(vec3_t src, vec3_t dest, int dist, vec3_t final);
|
void VectorTargetDist(vec3_t src, vec3_t dest, int dist, vec3_t final);
|
||||||
void BotAttack(bot_state_t *bs);
|
void BotAttack(bot_state_t *bs);
|
||||||
|
@ -104,6 +113,15 @@ char nodeswitch[MAX_NODESWITCHES+1][144];
|
||||||
|
|
||||||
#define LOOKAHEAD_DISTANCE 300
|
#define LOOKAHEAD_DISTANCE 300
|
||||||
|
|
||||||
|
/*
|
||||||
|
==================
|
||||||
|
BotRespawn
|
||||||
|
|
||||||
|
Added by Makro
|
||||||
|
Replaces trap_EA_respawn
|
||||||
|
==================
|
||||||
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
BotResetNodeSwitches
|
BotResetNodeSwitches
|
||||||
|
@ -257,6 +275,130 @@ int BotNearbyGoal(bot_state_t *bs, int tfl, bot_goal_t *ltg, float range) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
==================
|
||||||
|
RQ3_Bot_SpecialWeapon
|
||||||
|
|
||||||
|
Added by Makro
|
||||||
|
==================
|
||||||
|
*/
|
||||||
|
int RQ3_Bot_SpecialWeapon(bot_state_t *bs) {
|
||||||
|
return WP_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
====================================
|
||||||
|
RQ3_Bot_ComboScore
|
||||||
|
|
||||||
|
Added by Makro
|
||||||
|
Note - lots of factors should be
|
||||||
|
considered here; they aren't :/
|
||||||
|
====================================
|
||||||
|
*/
|
||||||
|
int RQ3_Bot_ComboScore(int weapon, holdable_t item)
|
||||||
|
{
|
||||||
|
if (item != HI_KEVLAR || item != HI_LASER || item != HI_BANDOLIER ||
|
||||||
|
item != HI_SLIPPERS || item != HI_SILENCER)
|
||||||
|
return 0;
|
||||||
|
switch (weapon) {
|
||||||
|
//Shotgun
|
||||||
|
case WP_M3:
|
||||||
|
switch (item) {
|
||||||
|
case HI_KEVLAR: return 100;
|
||||||
|
case HI_LASER: return 30;
|
||||||
|
case HI_BANDOLIER: return 80;
|
||||||
|
case HI_SILENCER: return 30;
|
||||||
|
case HI_SLIPPERS: return 80;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
//MP5
|
||||||
|
case WP_MP5:
|
||||||
|
switch (item) {
|
||||||
|
case HI_KEVLAR: return 90;
|
||||||
|
case HI_LASER: return 100;
|
||||||
|
case HI_BANDOLIER: return 70;
|
||||||
|
case HI_SILENCER: return 80;
|
||||||
|
case HI_SLIPPERS: return 40;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
//HANDCANNON
|
||||||
|
case WP_HANDCANNON:
|
||||||
|
switch (item) {
|
||||||
|
case HI_KEVLAR: return 90;
|
||||||
|
case HI_LASER: return 30;
|
||||||
|
case HI_BANDOLIER: return 90;
|
||||||
|
case HI_SILENCER: return 30;
|
||||||
|
case HI_SLIPPERS: return 90;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
//SSG3000
|
||||||
|
case WP_SSG3000:
|
||||||
|
switch (item) {
|
||||||
|
case HI_KEVLAR: return 100;
|
||||||
|
case HI_LASER: return 40;
|
||||||
|
case HI_BANDOLIER: return 80;
|
||||||
|
case HI_SILENCER: return 90;
|
||||||
|
case HI_SLIPPERS: return 40;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
//M4
|
||||||
|
case WP_M4:
|
||||||
|
switch (item) {
|
||||||
|
case HI_KEVLAR: return 100;
|
||||||
|
case HI_LASER: return 90;
|
||||||
|
case HI_BANDOLIER: return 80;
|
||||||
|
case HI_SILENCER: return 30;
|
||||||
|
case HI_SLIPPERS: return 40;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
==================
|
||||||
|
RQ3_Bot_NeedToDropStuff
|
||||||
|
|
||||||
|
Added by Makro
|
||||||
|
==================
|
||||||
|
*/
|
||||||
|
qboolean RQ3_Bot_NeedToDropStuff(bot_state_t *bs, bot_goal_t *goal) {
|
||||||
|
//if the bot doesn't have an item or it didn't reach one
|
||||||
|
if (!g_entities[goal->entitynum].item)
|
||||||
|
return qfalse;
|
||||||
|
if ( bs->cur_ps.stats[STAT_HOLDABLE_ITEM] < 1 || bs->cur_ps.stats[STAT_HOLDABLE_ITEM] >= bg_numItems || g_entities[goal->entitynum].item->giType != IT_HOLDABLE)
|
||||||
|
return qfalse;
|
||||||
|
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;
|
||||||
|
//if the two items are identical
|
||||||
|
if (oldItem == newItem) return qfalse;
|
||||||
|
|
||||||
|
newScore = oldScore = 0;
|
||||||
|
//check all the weapons
|
||||||
|
for (i = 0; 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//FIXME - special code is needed for the bandolier, since throwing it away
|
||||||
|
//will also throw one of the weapons
|
||||||
|
if (newScore > oldScore) {
|
||||||
|
Cmd_DropItem_f( &g_entities[bs->entitynum] );
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return qfalse;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
BotReachedGoal
|
BotReachedGoal
|
||||||
|
@ -267,7 +409,9 @@ int BotReachedGoal(bot_state_t *bs, bot_goal_t *goal) {
|
||||||
//if touching the goal
|
//if touching the goal
|
||||||
if (trap_BotTouchingGoal(bs->origin, goal)) {
|
if (trap_BotTouchingGoal(bs->origin, goal)) {
|
||||||
if (!(goal->flags & GFL_DROPPED)) {
|
if (!(goal->flags & GFL_DROPPED)) {
|
||||||
|
//Makro - check if the bot picked up a better weapon or item
|
||||||
trap_BotSetAvoidGoalTime(bs->gs, goal->number, -1);
|
trap_BotSetAvoidGoalTime(bs->gs, goal->number, -1);
|
||||||
|
RQ3_Bot_NeedToDropStuff( bs , goal );
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
if (g_entities[goal->entitynum].classname) {
|
if (g_entities[goal->entitynum].classname) {
|
||||||
|
@ -1322,8 +1466,13 @@ void AIEnter_Respawn(bot_state_t *bs, char *s) {
|
||||||
bs->radioresponse_count = 0;
|
bs->radioresponse_count = 0;
|
||||||
|
|
||||||
//set respawn state
|
//set respawn state
|
||||||
bs->standfindenemy_time = FloatTime() + 5;
|
if (gametype != GT_TEAMPLAY) {
|
||||||
bs->stand_time = FloatTime() + 10;
|
bs->standfindenemy_time = FloatTime() + 5;
|
||||||
|
bs->stand_time = FloatTime() + 10;
|
||||||
|
} else {
|
||||||
|
bs->standfindenemy_time = FloatTime() + 1;
|
||||||
|
bs->check_time = bs->stand_time = FloatTime() + 2;
|
||||||
|
}
|
||||||
bs->respawn_wait = qfalse;
|
bs->respawn_wait = qfalse;
|
||||||
bs->ainode = AINode_Respawn;
|
bs->ainode = AINode_Respawn;
|
||||||
}
|
}
|
||||||
|
@ -1341,15 +1490,6 @@ int AINode_Respawn(bot_state_t *bs) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
trap_EA_Respawn(bs->client);
|
trap_EA_Respawn(bs->client);
|
||||||
//Makro - maybe this will help in teamplay
|
|
||||||
if (gametype == GT_TEAMPLAY) {
|
|
||||||
gentity_t *spot = SelectRandomDeathmatchSpawnPoint();
|
|
||||||
aas_entityinfo_t entinfo;
|
|
||||||
|
|
||||||
BotEntityInfo(spot-g_entities, &entinfo);
|
|
||||||
BotMoveTo(bs, entinfo.origin);
|
|
||||||
//BotRoamGoal(bs, entinfo.origin);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (bs->respawn_time < FloatTime()) {
|
else if (bs->respawn_time < FloatTime()) {
|
||||||
|
|
|
@ -5,6 +5,10 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.21 2002/05/01 05:32:45 makro
|
||||||
|
// Bots reload akimbos/handcannons. Also, they can decide whether
|
||||||
|
// or not an item in the ground is better than theirs
|
||||||
|
//
|
||||||
// Revision 1.20 2002/04/30 12:14:53 makro
|
// Revision 1.20 2002/04/30 12:14:53 makro
|
||||||
// Fixed a small warning
|
// Fixed a small warning
|
||||||
//
|
//
|
||||||
|
@ -165,22 +169,26 @@ void VectorTargetDist(vec3_t src, vec3_t dest, int dist, vec3_t final) {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
RQ3_Bot_ClipForWeapon
|
RQ3_Bot_ClipsForWeapon
|
||||||
|
|
||||||
Added by Makro
|
Added by Makro
|
||||||
==================
|
==================
|
||||||
*/
|
*/
|
||||||
int RQ3_Bot_ClipForWeapon( bot_state_t *bs, int weapon )
|
int RQ3_Bot_ClipsForWeapon( bot_state_t *bs, int weapon )
|
||||||
{
|
{
|
||||||
switch (weapon) {
|
switch (weapon) {
|
||||||
case WP_PISTOL:
|
case WP_PISTOL:
|
||||||
case WP_AKIMBO:
|
|
||||||
return bs->inventory[INVENTORY_PISTOLCLIP];
|
return bs->inventory[INVENTORY_PISTOLCLIP];
|
||||||
break;
|
break;
|
||||||
|
case WP_AKIMBO:
|
||||||
|
return bs->inventory[INVENTORY_AKIMBOCLIP];
|
||||||
|
break;
|
||||||
case WP_M3:
|
case WP_M3:
|
||||||
case WP_HANDCANNON:
|
|
||||||
return bs->inventory[INVENTORY_M3CLIP];
|
return bs->inventory[INVENTORY_M3CLIP];
|
||||||
break;
|
break;
|
||||||
|
case WP_HANDCANNON:
|
||||||
|
return bs->inventory[INVENTORY_HANDCANNONCLIP];
|
||||||
|
break;
|
||||||
case WP_MP5:
|
case WP_MP5:
|
||||||
return bs->inventory[INVENTORY_MP5CLIP];
|
return bs->inventory[INVENTORY_MP5CLIP];
|
||||||
break;
|
break;
|
||||||
|
@ -197,6 +205,25 @@ int RQ3_Bot_ClipForWeapon( bot_state_t *bs, int weapon )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==================
|
||||||
|
RQ3_Bot_CanReload
|
||||||
|
|
||||||
|
Added by Makro
|
||||||
|
==================
|
||||||
|
*/
|
||||||
|
qboolean RQ3_Bot_CanReload( bot_state_t *bs, int weapon ) {
|
||||||
|
int clips = RQ3_Bot_ClipsForWeapon(bs, weapon);
|
||||||
|
|
||||||
|
//If no clips or not a valid weapon
|
||||||
|
if ( !clips || !(bs->cur_ps.stats[STAT_WEAPONS] & (1 << weapon)) ) return qfalse;
|
||||||
|
|
||||||
|
if (weapon == WP_AKIMBO || weapon == WP_HANDCANNON)
|
||||||
|
return (clips >= 2);
|
||||||
|
else
|
||||||
|
return qtrue;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
BotAttack
|
BotAttack
|
||||||
|
@ -212,8 +239,8 @@ void BotAttack(bot_state_t *bs) {
|
||||||
|
|
||||||
//If the gun is empty
|
//If the gun is empty
|
||||||
if ( (bs->cur_ps.ammo[bs->cur_ps.weapon]) == 0 ) {
|
if ( (bs->cur_ps.ammo[bs->cur_ps.weapon]) == 0 ) {
|
||||||
//If bot has extra clips, reload
|
//If the bot has extra ammo
|
||||||
if ( RQ3_Bot_ClipForWeapon(bs, bs->cur_ps.weapon) >= 1 ) {
|
if ( RQ3_Bot_CanReload(bs, bs->cur_ps.weapon) >= 1 ) {
|
||||||
//Cmd_Reload( &g_entities[bs->entitynum] );
|
//Cmd_Reload( &g_entities[bs->entitynum] );
|
||||||
trap_EA_Action(bs->client, ACTION_AFFIRMATIVE);
|
trap_EA_Action(bs->client, ACTION_AFFIRMATIVE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,25 +3,54 @@
|
||||||
<pre>
|
<pre>
|
||||||
<h1>Build Log</h1>
|
<h1>Build Log</h1>
|
||||||
<h3>
|
<h3>
|
||||||
--------------------Configuration: cgame - Win32 Release--------------------
|
|
||||||
</h3>
|
|
||||||
<h3>Command Lines</h3>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Results</h3>
|
|
||||||
cgamex86.dll - 0 error(s), 0 warning(s)
|
|
||||||
<h3>
|
|
||||||
--------------------Configuration: game - Win32 Release--------------------
|
--------------------Configuration: game - Win32 Release--------------------
|
||||||
</h3>
|
</h3>
|
||||||
<h3>Command Lines</h3>
|
<h3>Command Lines</h3>
|
||||||
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1D0F.tmp" with contents
|
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1E.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
|
/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_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"
|
||||||
|
"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"
|
||||||
]
|
]
|
||||||
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1D0F.tmp"
|
Creating command line "cl.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1E.tmp"
|
||||||
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1D10.tmp" with contents
|
Creating temporary file "D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1F.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"
|
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
|
\reactionoutput\ai_chat.obj
|
||||||
|
@ -64,26 +93,56 @@ kernel32.lib user32.lib winmm.lib /nologo /base:"0x20000000" /subsystem:windows
|
||||||
\reactionoutput\zcam.obj
|
\reactionoutput\zcam.obj
|
||||||
\reactionoutput\zcam_target.obj
|
\reactionoutput\zcam_target.obj
|
||||||
]
|
]
|
||||||
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1D10.tmp"
|
Creating command line "link.exe @D:\DOCUME~1\Andrei\LOCALS~1\Temp\RSP1E1F.tmp"
|
||||||
<h3>Output Window</h3>
|
<h3>Output Window</h3>
|
||||||
Compiling...
|
Compiling...
|
||||||
|
ai_chat.c
|
||||||
|
ai_cmd.c
|
||||||
|
ai_dmnet.c
|
||||||
ai_dmq3.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...
|
Linking...
|
||||||
Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp
|
Creating library c:\reactionoutput/qagamex86.lib and object c:\reactionoutput/qagamex86.exp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Results</h3>
|
<h3>Results</h3>
|
||||||
qagamex86.dll - 0 error(s), 0 warning(s)
|
qagamex86.dll - 0 error(s), 1 warning(s)
|
||||||
<h3>
|
|
||||||
--------------------Configuration: ui - Win32 Release TA--------------------
|
|
||||||
</h3>
|
|
||||||
<h3>Command Lines</h3>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Results</h3>
|
|
||||||
uix86.dll - 0 error(s), 0 warning(s)
|
|
||||||
</pre>
|
</pre>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Reference in a new issue