cg_ents.c in CG_Missile
ent.customShader = cgs.media.genericConstructionShader;
} else {
return;
}
} else {
CG_DrawMineMarkerFlag( cent, &ent, weapon );
}
} else {
// forty - mine id
CG_ScanForCrosshairMine(cent);
CG_DrawMineMarkerFlag( cent, &ent, weapon );
cg_draw.c above CG_ScanForCrosshairEntity
/*
=================
CG_ScanForCrosshairMine
=================
forty - mine id.
*/
void CG_ScanForCrosshairMine(centity_t *cent) {
trace_t trace;
vec3_t start, end;
VectorCopy( cg.refdef.vieworg, start );
VectorMA( start, 512, cg.refdef.viewaxis[0], end );
CG_Trace( &trace, start, NULL, NULL, end, -1, MASK_SOLID );
if(
Square(trace.endpos[0] - cent->currentState.pos.trBase[0]) < 256 &&
Square(trace.endpos[1] - cent->currentState.pos.trBase[1]) < 256 &&
Square(trace.endpos[2] - cent->currentState.pos.trBase[2]) < 256
) {
cg.crosshairMine = cent->currentState.otherEntityNum;
cg.crosshairMineTime = cg.time;
} else {
//Don't unset, just cause we didn't get a trace hit,
//don't worry the cross hair mine id will be unset at print time.
// - forty
//cg.crosshairMine = -1;
}
}
cg_draw.c in CG_DrawCrosshairNames
if ( cg_drawCrosshair.integer < 0 ) {
return;
}
// forty - mine id's
if ( cg.crosshairMine > -1 ) {
color = CG_FadeColor( cg.crosshairMineTime, 1000 );
s = va("%s\'s mine", cgs.clientinfo[cg.crosshairMine].name);
w = CG_DrawStrlen( s ) * SMALLCHAR_WIDTH;
CG_DrawSmallStringColor( 320 - w / 2, 170, s, color );
cg.crosshairMine = -1;
return;
}
cg_local.h in typedef struct { … } cg_t;
// crosshair client ID
int crosshairClientNum;
int crosshairClientTime;
// forty - mine id
int crosshairMine;
int crosshairMineTime;
g_weapon.c in Weapon_Engineer
if(G_LandmineUnarmed(traceEnt)) {
// Opposing team cannot accidentally arm it
if( G_LandmineTeam(traceEnt) != ent->client->sess.sessionTeam )
return;
... skipped a bit to save space here ...
// forty - mine id
traceEnt->s.otherEntityNum = ent->s.number;
// Don't allow disarming for sec (so guy that WAS arming doesn't start disarming it!
traceEnt->timestamp = level.time + 1000;
traceEnt->health = 0;
traceEnt->s.teamNum = ent->client->sess.sessionTeam;
traceEnt->s.modelindex2 = 0;
traceEnt->nextthink = level.time + 2000;
traceEnt->think = G_LandminePrime;
} else {