66 lines
1.5 KiB
Text
66 lines
1.5 KiB
Text
|
|
||
|
object structure_cc : structure_base {
|
||
|
void InitRadarValues();
|
||
|
void ClearRadarValues();
|
||
|
|
||
|
void OnSetTeam( object oldTeam, object newTeam );
|
||
|
|
||
|
float OnUpdateCrosshairInfo( entity p );
|
||
|
void OnGuiMessage( entity p );
|
||
|
};
|
||
|
|
||
|
void structure_cc::OnGuiMessage( entity p ) {
|
||
|
if ( sys.argv( 0 ) == "setspawn" ) {
|
||
|
if ( getEntityAllegiance( p ) == TA_FRIEND ) {
|
||
|
p.setSpawnPoint( $null_entity );
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void structure_cc::InitRadarValues() {
|
||
|
ClearRadarValues();
|
||
|
|
||
|
float radarLayer = allocRadarLayer();
|
||
|
radarSetLayerRange( radarLayer, getFloatKey( "radar_range" ) );
|
||
|
radarSetLayerMask( radarLayer, getFloatKey( "mask" ) );
|
||
|
}
|
||
|
|
||
|
void structure_cc::ClearRadarValues() {
|
||
|
freeLayers();
|
||
|
}
|
||
|
|
||
|
float structure_cc::OnUpdateCrosshairInfo( entity p ) {
|
||
|
if ( !sys.doClientSideStuff() ) {
|
||
|
return 1.f;
|
||
|
}
|
||
|
|
||
|
float allegiance = getEntityAllegiance( p );
|
||
|
vector color = GetAllegianceColor( allegiance );
|
||
|
float distance = chGetDistance();
|
||
|
float range = InchesToMetres( distance );
|
||
|
float health = getHealth();
|
||
|
|
||
|
chSetNumLines( 0 );
|
||
|
float index;
|
||
|
|
||
|
index = chAddLine();
|
||
|
chSetLineTextIndex( index, typeName );
|
||
|
chSetLineColor( index, color, 1.f );
|
||
|
chSetLineType( index, CI_TEXT );
|
||
|
chSetLineSize( index, 0, 0 );
|
||
|
|
||
|
if( range <= 100 ) {
|
||
|
index = chAddLine();
|
||
|
chSetLineText( index, G_BuildRangeStr( range ) );
|
||
|
chSetLineColor( index, color, 1.f );
|
||
|
chSetLineType( index, CI_TEXT );
|
||
|
chSetLineSize( index, 0, 0 );
|
||
|
}
|
||
|
|
||
|
return 1.f;
|
||
|
}
|
||
|
|
||
|
void structure_cc::OnSetTeam( object oldTeam, object newTeam ) {
|
||
|
InitRadarValues();
|
||
|
}
|