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