This commit is contained in:
ineed bots 2024-01-04 16:10:14 -06:00
parent 04b7296246
commit 3ff48407d5
9 changed files with 4092 additions and 4086 deletions

View File

@ -1,21 +1,27 @@
# try to mimic the original gsc provided
# mode=ghc
mode=c
style=allman
indent=tab
indent=force-tab=2
lineend=windows
pad-oper
pad-paren-in
pad-header
# delete-empty-lines
# pad-brackets-in
fill-empty-lines
squeeze-lines=2
squeeze-ws
break-one-line-headers
add-braces
remove-comment-prefix
break-blocks
# remove-braces
indent-switches
indent-cases
indent-after-parens
indent-col1-comments
remove-comment-prefix

View File

@ -4,7 +4,7 @@ root = true
indent_style = tab
indent_size = 2
charset = latin1
trim_trailing_whitespace = true
trim_trailing_whitespace = false
insert_final_newline = true
[*.md]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -16,21 +16,21 @@ init()
{
setdvar( "bots_main_debug", 0 );
}
if ( !getdvarint( "bots_main_debug" ) )
{
return;
}
/* if(!getdvarint("developer"))
{
setdvar("developer_script", 1);
setdvar("developer", 1);
setdvar("sv_mapRotation", "map "+getdvar("mapname"));
exitlevel(false);
}*/
setdvar( "bots_main", 0 );
setdvar( "bots_main_menu", 0 );
setdvar( "bots_manage_fill_mode", 0 );
@ -38,47 +38,47 @@ init()
setdvar( "bots_manage_add", 0 );
setdvar( "bots_manage_fill_kick", 1 );
setdvar( "bots_manage_fill_spec", 1 );
if ( getdvar( "bots_main_debug_distance" ) == "" )
{
setdvar( "bots_main_debug_distance", 512.0 );
}
if ( getdvar( "bots_main_debug_cone" ) == "" )
{
setdvar( "bots_main_debug_cone", 0.65 );
}
if ( getdvar( "bots_main_debug_minDist" ) == "" )
{
setdvar( "bots_main_debug_minDist", 32.0 );
}
if ( getdvar( "bots_main_debug_drawThrough" ) == "" )
{
setdvar( "bots_main_debug_drawThrough", false );
}
if ( getdvar( "bots_main_debug_updateRate" ) == "" )
{
setdvar( "bots_main_debug_updateRate", 500 );
}
if ( getdvar( "bots_main_debug_dashAmount" ) == "" )
{
setdvar( "bots_main_debug_dashAmount", 35.0 );
}
setdvar( "player_sustainAmmo", 1 );
if ( !isdefined( level.waypoints ) )
{
level.waypoints = [];
}
level.waypointcount = 0;
level waittill( "connected", player );
player thread onPlayerSpawned();
}
@ -86,7 +86,7 @@ init()
onPlayerSpawned()
{
self endon( "disconnect" );
for ( ;; )
{
self waittill( "spawned_player" );
@ -98,11 +98,11 @@ startDev()
{
self endon( "disconnect" );
self endon( "death" );
level.wptolink = -1;
level.autolink = false;
self.nearest = -1;
self takeallweapons();
self giveweapon( "iw5_m16_mp_gl" ); // to knife windows
self giveweapon( "javelin_mp" ); // to mark jav spots
@ -116,7 +116,7 @@ startDev()
self maps\mp\perks\_perks::giveperk("specialty_marathon");
self maps\mp\perks\_perks::giveperk("specialty_lightweight");*/
self freezecontrols( false );
self thread watchAddWaypointCommand();
self thread watchDeleteAllWaypointsCommand();
self thread watchDeleteWaypointCommand();
@ -127,7 +127,7 @@ startDev()
self thread watchAutoLinkCommand();
self thread updateWaypointsStats();
self thread watchAstarCommand();
self thread sayExtras();
}
@ -151,30 +151,30 @@ watchAstarCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "astar", "+gostand" );
for ( ;; )
{
self waittill( "astar" );
if ( 1 )
{
continue;
}
self iprintln( "Start AStar" );
self.astar = undefined;
astar = spawnstruct();
astar.start = self.origin;
self waittill( "astar" );
self iprintln( "End AStar" );
astar.goal = self.origin;
astar.nodes = AStarSearch( astar.start, astar.goal, undefined, true );
self iprintln( "AStar size: " + astar.nodes.size );
self.astar = astar;
}
}
@ -185,7 +185,7 @@ drawWaypoint( i )
{
level.drawn_wps = [];
}
newdeathicon = newhudelem();
newdeathicon.x = level.waypoints[ i ].origin[ 0 ];
newdeathicon.y = level.waypoints[ i ].origin[ 1 ];
@ -194,7 +194,7 @@ drawWaypoint( i )
newdeathicon.archived = true;
newdeathicon setshader( "headicon_dead", 5, 5 );
newdeathicon setwaypoint( true, false );
level.drawn_wps[ level.drawn_wps.size ] = newdeathicon;
}
@ -204,7 +204,7 @@ drawPath( where )
{
level.drawn_wps = [];
}
newdeathicon = newhudelem();
newdeathicon.x = where[ 0 ];
newdeathicon.y = where[ 1 ];
@ -213,7 +213,7 @@ drawPath( where )
newdeathicon.archived = true;
newdeathicon setshader( "headicon_dead", 5, 5 );
newdeathicon setwaypoint( true, false );
level.drawn_wps[ level.drawn_wps.size ] = newdeathicon;
}
@ -223,12 +223,12 @@ clearWaypoints()
{
return;
}
for ( i = 0; i < level.drawn_wps.size; i++ )
{
level.drawn_wps[ i ] destroy();
}
level.drawn_wps = [];
}
@ -238,17 +238,17 @@ clearWpLinks()
{
return;
}
for ( i = 0; i < level.waypointcount; i++ )
{
level.waypoints[ i ].drawn_links = [];
}
for ( i = 0; i < level.drawn_links.size; i++ )
{
level.drawn_links[ i ] delete ();
}
level.drawn_links = [];
}
@ -258,46 +258,46 @@ showWpLink( i, h )
{
level.drawn_links = [];
}
if ( !isdefined( level.waypoints[ i ].drawn_links ) )
{
level.waypoints[ i ].drawn_links = [];
}
if ( !isdefined( level.waypoints[ h ].drawn_links ) )
{
level.waypoints[ h ].drawn_links = [];
}
if ( isdefined( level.waypoints[ h ].drawn_links[ "" + i ] ) || isdefined( level.waypoints[ i ].drawn_links[ "" + h ] ) )
{
return;
}
level.waypoints[ h ].drawn_links[ "" + i ] = true;
level.waypoints[ i ].drawn_links[ "" + h ] = true;
start = level.waypoints[ i ].origin + ( 0, 0, 45 );
end = level.waypoints[ h ].origin + ( 0, 0, 45 );
diff = end - start;
dir = vectortoangles( diff );
dist = distance( start, end );
dash_count = int( dist / getdvarfloat( "bots_main_debug_dashAmount" ) );
for ( j = 0; j < dash_count; j++ )
{
dash = spawn( "script_model", start + ( ( diff * j ) / dash_count ) );
dash setmodel( "weapon_parabolic_knife" );
dash.angles = dir;
level.drawn_links[ level.drawn_links.size ] = dash;
}
dash = spawn( "script_model", end );
dash setmodel( "weapon_parabolic_knife" );
dash.angles = dir;
level.drawn_links[ level.drawn_links.size ] = dash;
}
@ -305,7 +305,7 @@ updateWaypointsStats()
{
self endon( "disconnect" );
self endon( "death" );
self initHudElem( "TotalWps:", 102, 5 );
totalWpsHud = self initHudElem( "", 180, 5 );
self initHudElem( "NearestWP:", 102, 15 );
@ -316,40 +316,40 @@ updateWaypointsStats()
type = self initHudElem( "", 160, 35 );
self initHudElem( "ToLink:", 102, 45 );
wpToLink = self initHudElem( "", 160, 45 );
infotext = self initHudElem2();
self initHudElem3();
self initHudElem4();
intTimer = 0;
for ( time = 0;; time += 0.05 )
{
wait 0.05;
intTimer += 50;
totalWpsHud setvalue( level.waypointcount );
closest = -1;
myEye = self geteye();
myAngles = self getplayerangles();
timeToUpdate = ( ( intTimer % getdvarint( "bots_main_debug_updateRate" ) ) == 0 );
if ( timeToUpdate )
{
clearWaypoints();
clearWpLinks();
}
for ( i = 0; i < level.waypointcount; i++ )
{
if ( closest == -1 || closer( self.origin, level.waypoints[ i ].origin, level.waypoints[ closest ].origin ) )
{
closest = i;
}
wpOrg = level.waypoints[ i ].origin + ( 0, 0, 25 );
if ( distance( level.waypoints[ i ].origin, self.origin ) < getdvarfloat( "bots_main_debug_distance" ) && ( bullettracepassed( myEye, wpOrg, false, self ) || getdvarint( "bots_main_debug_drawThrough" ) ) )
{
if ( timeToUpdate )
@ -357,52 +357,52 @@ updateWaypointsStats()
if ( getConeDot( wpOrg, myEye, myAngles ) > getdvarfloat( "bots_main_debug_cone" ) )
{
drawWaypoint( i );
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
{
showWpLink( i, level.waypoints[ i ].children[ h ] );
}
}
}
// mw3 doesnt have debug gsc calls :(
/* for(h = level.waypoints[ i ].children.size - 1; h >= 0; h--)
line(wpOrg, level.waypoints[ level.waypoints[ i ].children[ h ] ].origin + (0, 0, 25), (1,0,1));
if(getConeDot(wpOrg, myEye, myAngles) > getdvarfloat("bots_main_debug_cone"))
print3d(wpOrg, i, (1,0,0), 2);
if (isdefined(level.waypoints[ i ].angles) && level.waypoints[ i ].type != "stand")
line(wpOrg, wpOrg + anglestoforward(level.waypoints[ i ].angles) * 64, (1,1,1));
if (isdefined(level.waypoints[ i ].jav_point))
line(wpOrg, level.waypoints[ i ].jav_point, (0,0,0));*/
}
}
self.nearest = closest;
nearestWP setvalue( self.nearest );
children setvalue( buildChildCountString( self.nearest ) );
type settext( buildTypeString( self.nearest ) );
wpToLink setvalue( level.wptolink );
infotext.x = infotext.x - 2;
if ( infotext.x <= -800 )
{
infotext.x = 800;
}
if ( time > 2 && self usebuttonpressed() )
{
time = 0;
self iprintlnbold( self.nearest + " children: " + buildChildString( self.nearest ) );
}
if ( isdefined( self.astar ) )
{
// print3d(self.astar.start + (0, 0, 35), "start", (0,0,1), 2);
@ -412,22 +412,22 @@ updateWaypointsStats()
drawPath( self.astar.start );
drawPath( self.astar.goal );
}
prev = self.astar.start + ( 0, 0, 35 );
for ( i = self.astar.nodes.size - 1; i >= 0; i-- )
{
node = self.astar.nodes[ i ];
// line(prev, level.waypoints[ node ].origin + (0, 0, 35), (0,1,1));
if ( timeToUpdate )
{
drawPath( level.waypoints[ node ].origin );
}
prev = level.waypoints[ node ].origin + ( 0, 0, 35 );
}
// line(prev, self.astar.goal + (0, 0, 35), (0,1,1));
}
}
@ -437,9 +437,9 @@ watchLoadWaypointsCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "[{+actionslot 5}]", "+actionslot 5" );
for ( ;; )
{
self waittill( "[{+actionslot 5}]" );
@ -451,9 +451,9 @@ watchAddWaypointCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "[{+smoke}]", "+smoke" );
for ( ;; )
{
self waittill( "[{+smoke}]" );
@ -465,13 +465,13 @@ watchAutoLinkCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "[{+frag}]", "+frag" );
for ( ;; )
{
self waittill( "[{+frag}]" );
if ( level.autolink )
{
self iprintlnbold( "Auto link disabled" );
@ -491,9 +491,9 @@ watchLinkWaypointCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "[{+melee_zoom}]", "+melee_zoom" );
for ( ;; )
{
self waittill( "[{+melee_zoom}]" );
@ -505,9 +505,9 @@ watchunlinkWaypointCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "[{+reload}]", "+reload" );
for ( ;; )
{
self waittill( "[{+reload}]" );
@ -519,9 +519,9 @@ watchDeleteWaypointCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "[{+actionslot 3}]", "+actionslot 3" );
for ( ;; )
{
self waittill( "[{+actionslot 3}]" );
@ -533,9 +533,9 @@ watchDeleteAllWaypointsCommand()
{
self endon( "disconnect" );
self endon( "death" );
self notifyonplayercommand( "[{+actionslot 4}]", "+actionslot 4" );
for ( ;; )
{
self waittill( "[{+actionslot 4}]" );
@ -547,72 +547,72 @@ watchSaveWaypointsCommand()
{
self endon( "death" );
self endon( "disconnect" );
self notifyonplayercommand( "[{+actionslot 1}]", "+actionslot 1" );
for ( ;; )
{
self waittill( "[{+actionslot 1}]" );
self checkForWarnings();
wait 1;
logprint( "***********ABiliTy's WPDump**************\n\n" );
logprint( "\n\n\n\n" );
mpnm = getMapName( getdvar( "mapname" ) );
logprint( "\n\n" + mpnm + "()\n{\n/*" );
logprint( "*/waypoints = [];\n/*" );
for ( i = 0; i < level.waypointcount; i++ )
{
logprint( "*/waypoints[ " + i + " ] = spawnstruct();\n/*" );
logprint( "*/waypoints[ " + i + " ].origin = " + level.waypoints[ i ].origin + ";\n/*" );
logprint( "*/waypoints[ " + i + " ].type = \"" + level.waypoints[ i ].type + "\";\n/*" );
for ( c = 0; c < level.waypoints[ i ].children.size; c++ )
{
logprint( "*/waypoints[ " + i + " ].children[ " + c + " ] = " + level.waypoints[ i ].children[ c ] + ";\n/*" );
}
if ( isdefined( level.waypoints[ i ].angles ) && ( level.waypoints[ i ].type == "claymore" || level.waypoints[ i ].type == "tube" || ( level.waypoints[ i ].type == "crouch" && level.waypoints[ i ].children.size == 1 ) || level.waypoints[ i ].type == "climb" || level.waypoints[ i ].type == "grenade" ) )
{
logprint( "*/waypoints[ " + i + " ].angles = " + level.waypoints[ i ].angles + ";\n/*" );
}
if ( isdefined( level.waypoints[ i ].jav_point ) && level.waypoints[ i ].type == "javelin" )
{
logprint( "*/waypoints[ " + i + " ].jav_point = " + level.waypoints[ i ].jav_point + ";\n/*" );
}
}
logprint( "*/return waypoints;\n}\n\n\n\n" );
filename = "waypoints/" + getdvar( "mapname" ) + "_wp.csv";
println( "********* Start Bot Warfare WPDump *********" );
println( level.waypointcount );
BotBuiltinFileWrite( filename, level.waypointcount + "\n", "write" );
for ( i = 0; i < level.waypointcount; i++ )
{
str = "";
wp = level.waypoints[ i ];
str += wp.origin[ 0 ] + " " + wp.origin[ 1 ] + " " + wp.origin[ 2 ] + ",";
for ( h = 0; h < wp.children.size; h++ )
{
str += wp.children[ h ];
if ( h < wp.children.size - 1 )
{
str += " ";
}
}
str += "," + wp.type + ",";
if ( isdefined( wp.angles ) )
{
str += wp.angles[ 0 ] + " " + wp.angles[ 1 ] + " " + wp.angles[ 2 ] + ",";
@ -621,7 +621,7 @@ watchSaveWaypointsCommand()
{
str += ",";
}
if ( isdefined( wp.jav_point ) )
{
str += wp.jav_point[ 0 ] + " " + wp.jav_point[ 1 ] + " " + wp.jav_point[ 2 ] + ",";
@ -630,13 +630,13 @@ watchSaveWaypointsCommand()
{
str += ",";
}
println( str );
BotBuiltinFileWrite( filename, str + "\n", "append" );
}
println( "\n\n\n\n\n\n" );
self iprintln( "Saved!!! to " + filename );
}
}
@ -646,9 +646,9 @@ LoadWaypoints()
// self DeleteAllWaypoints();
self iprintlnbold( "Loading WPS..." );
load_waypoints();
wait 1;
self checkForWarnings();
}
@ -658,12 +658,12 @@ checkForWarnings()
{
self iprintln( "WARNING: waypointCount is " + level.waypointcount );
}
if ( level.waypointcount != level.waypoints.size )
{
self iprintln( "WARNING: waypointCount is not " + level.waypoints.size );
}
for ( i = 0; i < level.waypointcount; i++ )
{
if ( !isdefined( level.waypoints[ i ] ) )
@ -671,7 +671,7 @@ checkForWarnings()
self iprintln( "WARNING: waypoint " + i + " is undefined" );
continue;
}
if ( level.waypoints[ i ].children.size <= 0 )
{
self iprintln( "WARNING: waypoint " + i + " childCount is " + level.waypoints[ i ].children.size );
@ -687,7 +687,7 @@ checkForWarnings()
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
{
child = level.waypoints[ i ].children[ h ];
if ( !isdefined( level.waypoints[ child ] ) )
{
self iprintln( "WARNING: waypoint " + i + " child " + child + " is undefined" );
@ -699,43 +699,43 @@ checkForWarnings()
}
}
}
if ( !isdefined( level.waypoints[ i ].type ) )
{
self iprintln( "WARNING: waypoint " + i + " type is undefined" );
continue;
}
if ( level.waypoints[ i ].type == "javelin" && !isdefined( level.waypoints[ i ].jav_point ) )
{
self iprintln( "WARNING: waypoint " + i + " jav_point is undefined" );
}
if ( !isdefined( level.waypoints[ i ].angles ) && ( level.waypoints[ i ].type == "claymore" || level.waypoints[ i ].type == "tube" || ( level.waypoints[ i ].type == "crouch" && level.waypoints[ i ].children.size == 1 ) || level.waypoints[ i ].type == "climb" || level.waypoints[ i ].type == "grenade" ) )
{
self iprintln( "WARNING: waypoint " + i + " angles is undefined" );
}
}
// check reachability, assume bidirectional graph
wpIdx = randomint( level.waypointcount );
for ( i = 0; i < level.waypointcount; i++ )
{
if ( i % 5 == 0 )
{
wait 0.05;
}
astar = AStarSearch( level.waypoints[ wpIdx ].origin, level.waypoints[ i ].origin, undefined, true );
if ( astar.size <= 0 )
{
self iprintln( "WARNING: waypoint " + wpIdx + " has no path to waypoint " + i );
}
}
self iprintln( "Waypoint warnings check completed." );
}
@ -747,17 +747,17 @@ UnLinkWaypoint( nwp )
level.wptolink = -1;
return;
}
if ( level.wptolink == -1 || nwp == level.wptolink )
{
level.wptolink = nwp;
self iprintln( "Waypoint unlink Started " + nwp );
return;
}
level.waypoints[ nwp ].children = array_remove( level.waypoints[ nwp ].children, level.wptolink );
level.waypoints[ level.wptolink ].children = array_remove( level.waypoints[ level.wptolink ].children, nwp );
self iprintln( "Waypoint " + nwp + " Broken to " + level.wptolink );
level.wptolink = -1;
}
@ -770,33 +770,33 @@ LinkWaypoint( nwp )
level.wptolink = -1;
return;
}
if ( level.wptolink == -1 || nwp == level.wptolink )
{
level.wptolink = nwp;
self iprintln( "Waypoint Link Started " + nwp );
return;
}
weGood = true;
for ( i = level.waypoints[ level.wptolink ].children.size - 1; i >= 0; i-- )
{
child = level.waypoints[ level.wptolink ].children[ i ];
if ( child == nwp )
{
weGood = false;
break;
}
}
if ( weGood )
{
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
{
child = level.waypoints[ nwp ].children[ i ];
if ( child == level.wptolink )
{
weGood = false;
@ -804,17 +804,17 @@ LinkWaypoint( nwp )
}
}
}
if ( !weGood )
{
self iprintln( "Waypoint Link Cancelled " + nwp + " and " + level.wptolink + " already linked." );
level.wptolink = -1;
return;
}
level.waypoints[ level.wptolink ].children[ level.waypoints[ level.wptolink ].children.size ] = nwp;
level.waypoints[ nwp ].children[ level.waypoints[ nwp ].children.size ] = level.wptolink;
self iprintln( "Waypoint " + nwp + " Linked to " + level.wptolink );
level.wptolink = -1;
}
@ -826,16 +826,16 @@ DeleteWaypoint( nwp )
self iprintln( "No close enough waypoint to delete." );
return;
}
level.wptolink = -1;
for ( i = level.waypoints[ nwp ].children.size - 1; i >= 0; i-- )
{
child = level.waypoints[ nwp ].children[ i ];
level.waypoints[ child ].children = array_remove( level.waypoints[ child ].children, nwp );
}
for ( i = 0; i < level.waypointcount; i++ )
{
for ( h = level.waypoints[ i ].children.size - 1; h >= 0; h-- )
@ -846,7 +846,7 @@ DeleteWaypoint( nwp )
}
}
}
for ( entry = 0; entry < level.waypointcount; entry++ )
{
if ( entry == nwp )
@ -856,24 +856,24 @@ DeleteWaypoint( nwp )
level.waypoints[ entry ] = level.waypoints[ entry + 1 ];
entry++;
}
level.waypoints[ entry ] = undefined;
break;
}
}
level.waypointcount--;
self iprintln( "DelWp " + nwp );
}
AddWaypoint()
{
level.waypoints[ level.waypointcount ] = spawnstruct();
pos = self getorigin();
level.waypoints[ level.waypointcount ].origin = pos;
if ( isdefined( self.javelintargetpoint ) )
{
level.waypoints[ level.waypointcount ].type = "javelin";
@ -898,25 +898,25 @@ AddWaypoint()
{
level.waypoints[ level.waypointcount ].type = self getstance();
}
level.waypoints[ level.waypointcount ].angles = self getplayerangles();
level.waypoints[ level.waypointcount ].children = [];
if ( level.waypoints[ level.waypointcount ].type == "javelin" )
{
level.waypoints[ level.waypointcount ].jav_point = self.javelintargetpoint;
}
self iprintln( level.waypoints[ level.waypointcount ].type + " Waypoint " + level.waypointcount + " Added at " + pos );
if ( level.autolink )
{
if ( level.wptolink == -1 )
{
level.wptolink = level.waypointcount - 1;
}
level.waypointcount++;
self LinkWaypoint( level.waypointcount - 1 );
}
@ -930,7 +930,7 @@ DeleteAllWaypoints()
{
level.waypoints = [];
level.waypointcount = 0;
self iprintln( "DelAllWps" );
}
@ -940,9 +940,9 @@ buildChildCountString ( wp )
{
return -1;
}
wpstr = level.waypoints[ wp ].children.size;
return wpstr;
}
@ -952,9 +952,9 @@ buildChildString( wp )
{
return "";
}
wpstr = "";
for ( i = 0; i < level.waypoints[ wp ].children.size; i++ )
{
if ( i != 0 )
@ -966,7 +966,7 @@ buildChildString( wp )
wpstr = wpstr + level.waypoints[ wp ].children[ i ];
}
}
return wpstr;
}
@ -976,7 +976,7 @@ buildTypeString( wp )
{
return "";
}
return level.waypoints[ wp ].type;
}
@ -992,9 +992,9 @@ initHudElem( txt, xl, yl )
hud = newclienthudelem( self );
hud settext( txt );
hud.alignx = "left";
hud.aligny = "top";
hud.horzalign = "left";
hud.vertalign = "top";
hud.aligny = "top";
hud.horzalign = "left";
hud.vertalign = "top";
hud.x = xl;
hud.y = yl;
hud.foreground = true;
@ -1005,9 +1005,9 @@ initHudElem( txt, xl, yl )
hud.glowcolor = ( 0, 0, 0 );
hud.glowalpha = 1;
hud.color = ( 1.0, 1.0, 1.0 );
self thread destroyOnDeath( hud );
return hud;
}
@ -1029,9 +1029,9 @@ initHudElem2()
infotext.glowcolor = ( 0, 0, 0 );
infotext.glowalpha = 1;
infotext.color = ( 1.0, 1.0, 1.0 );
self thread destroyOnDeath( infotext );
return infotext;
}
@ -1044,9 +1044,9 @@ initHudElem3()
bar.vertalign = "bottom";
bar.y = 30;
bar.foreground = true;
self thread destroyOnDeath( bar );
return bar;
}
@ -1061,8 +1061,8 @@ initHudElem4()
OptionsBG.vertalign = "top";
OptionsBG setshader( "black", 200, 60 );
OptionsBG.alpha = 0.4;
self thread destroyOnDeath( OptionsBG );
return OptionsBG;
}