Script:Files:script/structures/base.script
From Mod Wiki
#define STR_STATE_NORMAL 0 #define STR_STATE_DAMAGED 1 #define STR_STATE_DISABLED 2 #define STR_STATE_DESTROYED 3 object structure_base { void init(); void preinit(); void destroy(); void SetupCommandMap(); float OnUpdateCrosshairInfo( entity p ); handle typeName; float commandMapHandle; } void structure_base::preinit() { commandMapHandle = -1; typeName = sys.localizeString( getKey( "type_name" ) ); setGameTeam( sys.getTeam( getKey( "team" ) ) ); SetupCommandMap(); } void structure_base::destroy() { if ( commandMapHandle != -1 ) { sys.freeCMIcon( self, commandMapHandle ); commandMapHandle = -1; } } void structure_base::init() { } void structure_base::SetupCommandMap() { commandMapHandle = sys.allocCMIcon( self, getFloatKey( "icon_sort_cm" ) ); float commandMapSize = getFloatKeyWithDefault( "icon_size_cm", 16.f ); sys.setCMIconDrawMode( commandMapHandle, DM_ROTATED_MATERIAL ); sys.setCMIconSize( commandMapHandle, commandMapSize ); sys.setCMIconColorMode( commandMapHandle, CM_ALLEGIANCE ); sys.setCMIconMaterial( commandMapHandle, GetMaterial( getKey( "mtr_commandmap" ) ) ); sys.setCMIconUnknownMaterial( commandMapHandle, GetMaterial( getKey( "mtr_commandmap_unknown" ) ) ); sys.setCMIconUnknownSize( commandMapHandle, getFloatKeyWithDefault( "icon_unknown_size_cm", commandMapSize / 2.0f ) ); sys.setCMIconFlag( commandMapHandle, CMF_ONLYSHOWONFULLVIEW ); } float structure_base::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 ); return 1.f; }