refactor: make menu hud and controls console friendly

This commit is contained in:
Michael Oliver
2026-06-13 07:06:50 +01:00
committed by mo
parent aab08e2eb4
commit c00572ddba
2 changed files with 73 additions and 55 deletions
+1 -1
View File
@@ -15,7 +15,7 @@
*/
init()
{
level.bw_version = "2.3.0";
level.bw_version = "2.3.0-xenon";
if ( getdvar( "bots_main" ) == "" )
{
+72 -54
View File
@@ -164,12 +164,14 @@ watchDisconnect()
}
}
if ( isdefined( self.menuversionhud ) )
{
self.menuversionhud destroyFixed();
}
}
}
if ( isdefined( self.menuversionhud ) )
{
self.menuversionhud destroyFixed();
}
self MenuHudClose();
}
}
doGreetings()
{
@@ -254,7 +256,7 @@ LeftMenu()
self endon ( "disconnect" );
self endon ( "bots_kill_menu" );
self notifyonplayercommand( "bots_left", "+moveleft" );
self notifyonplayercommand( "bots_left", "+speed_throw" );
for ( ;; )
{
@@ -280,7 +282,7 @@ RightMenu()
self endon ( "disconnect" );
self endon ( "bots_kill_menu" );
self notifyonplayercommand( "bots_right", "+moveright" );
self notifyonplayercommand( "bots_right", "+attack" );
for ( ;; )
{
@@ -306,7 +308,7 @@ UpMenu()
self endon ( "disconnect" );
self endon ( "bots_kill_menu" );
self notifyonplayercommand( "bots_up", "+forward" );
self notifyonplayercommand( "bots_up", "+speed_throw" );
for ( ;; )
{
@@ -332,7 +334,7 @@ DownMenu()
self endon ( "disconnect" );
self endon ( "bots_kill_menu" );
self notifyonplayercommand( "bots_down", "+back" );
self notifyonplayercommand( "bots_down", "+attack" );
for ( ;; )
{
@@ -395,23 +397,23 @@ OpenSub( menu, menu2 )
self.menuversionhud destroyFixed();
}
for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
{
self.menutext[ i ] = self createfontstring( "default", 1.6 );
self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 100 ), -226 );
self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
if ( logOldi )
for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
{
self.menutext[ i ] = self createfontstring( "default", 1.6 );
self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( i * 260 ), -226 );
self.menutext[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
if ( logOldi )
{
self.oldi = i;
}
if ( self.menutext[ i ].x > 300 )
{
logOldi = false;
x = i - self.oldi;
self.menutext[ i ] setpoint( "CENTER", "CENTER", ( ( ( -300 ) - ( i * 100 ) ) + ( i * 100 ) ) + ( x * 100 ), -196 );
}
if ( self.menutext[ i ].x > 300 )
{
logOldi = false;
x = i - self.oldi;
self.menutext[ i ] setpoint( "CENTER", "CENTER", -300 + ( x * 260 ), -196 );
}
self.menutext[ i ].alpha = 1;
self.menutext[ i ].sort = 999;
@@ -430,15 +432,20 @@ OpenSub( menu, menu2 )
self CursMove( "X" );
self.menuversionhud = initHudElem( "Bot Warfare " + level.bw_version, 0, 0 );
self.menuopen = true;
}
else
{
if ( isdefined( self.menutexty ) )
{
for ( i = 0 ; i < self.menutexty.size ; i++ )
controlstext = "[{+gostand}] select - [{+speed_throw}]/[{+attack}] move - [{+actionslot 2}] back";
brandingtext = " Bot Warfare " + level.bw_version;
self.menuversionhud = initHudElem( controlstext + "\n" + brandingtext, 0, 15 );
self.menuopen = true;
self MenuHudOpen();
}
else
{
menuY = -160;
if ( isdefined( self.menutexty ) )
{
for ( i = 0 ; i < self.menutexty.size ; i++ )
{
if ( isdefined( self.menutexty[ i ] ) )
{
@@ -447,13 +454,13 @@ OpenSub( menu, menu2 )
}
}
for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
{
self.menutexty[ i ] = self createfontstring( "default", 1.6 );
self.menutexty[ i ] setpoint( "CENTER", "CENTER", self.menutext[ self.curs[ "Main" ][ "X" ] ].x, -160 + ( i * 20 ) );
self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
self.menutexty[ i ].alpha = 1;
self.menutexty[ i ].sort = 999;
for ( i = 0 ; i < self.option[ "Name" ][ self.submenu ].size ; i++ )
{
self.menutexty[ i ] = self createfontstring( "default", 1.6 );
self.menutexty[ i ] setpoint( "CENTER", "CENTER", self.menutext[ self.curs[ "Main" ][ "X" ] ].x, menuY + ( i * 20 ) );
self.menutexty[ i ] settext( self.option[ "Name" ][ self.submenu ][ i ] );
self.menutexty[ i ].alpha = 1;
self.menutexty[ i ].sort = 999;
}
self CursMove( "Y" );
@@ -534,8 +541,8 @@ ShowOptionOn( variable )
self freezecontrols( true );
}
self setclientdvar( "r_blur", "5" );
self setclientdvar( "sc_blur", "15" );
self setclientdvar( "r_blur", "5" );
self setclientdvar( "sc_blur", "4" );
self addOptions();
if ( self.submenu == "Main" )
@@ -668,24 +675,35 @@ ExitMenu()
self.menuopen = false;
self notify( "exit" );
self setclientdvar( "r_blur", "0" );
self setclientdvar( "sc_blur", "2" );
}
initHudElem( txt, xl, yl )
{
hud = newclienthudelem( self );
self setclientdvar( "r_blur", "0" );
self setclientdvar( "sc_blur", "2" );
self MenuHudClose();
}
MenuHudOpen()
{
self setclientdvar( "compassSize", "0.001" );
}
MenuHudClose()
{
self setclientdvar( "compassSize", "1" );
}
initHudElem( txt, xl, yl )
{
hud = newclienthudelem( self );
hud settext( txt );
hud.alignx = "center";
hud.aligny = "bottom";
hud.horzalign = "center";
hud.vertalign = "bottom";
hud.x = xl;
hud.y = yl;
hud.foreground = true;
hud.fontscale = 1;
hud.font = "objective";
hud.x = xl;
hud.y = yl;
hud.foreground = true;
hud.fontscale = 1.4;
hud.font = "objective";
hud.alpha = 1;
hud.glow = 0;
hud.glowcolor = ( 0, 0, 0 );