Compare commits

..

2 Commits

Author SHA1 Message Date
ineed bots
93b82d7720 use wrapper 2025-01-23 23:56:31 -06:00
ineed bots
d19be1dd2d fix this var leak 2025-01-23 23:48:35 -06:00
3 changed files with 58 additions and 0 deletions

View File

@ -49,6 +49,16 @@ BotBuiltinPrintConsole( s )
}
}
/*
*/
BotBuiltinDisableDetourOnce( s )
{
if ( isdefined( level.bot_builtins ) && isdefined( level.bot_builtins[ "disabledetouronce" ] ) )
{
[[ level.bot_builtins[ "disabledetouronce" ] ]]( s );
}
}
/*
*/
BotBuiltinReplaceFunc( s, b )

View File

@ -30,6 +30,48 @@ main()
{
println( "FATAL: NO BUILT-INS FOR BOTS" );
}
// fix var leak
BotBuiltinReplaceFunc( BotBuiltinGetFunction( "maps/mp/gametypes/_hud_util", "destroyelem" ), ::destroyElemFixed );
}
/*
Fix leak with menus
*/
removeChildFixed( element )
{
temp = [];
for ( i = 0; i < self.children.size ; i++ )
{
if ( isdefined( self.children[ i ] ) && self.children[ i ] != element )
{
self.children[ i ].index = temp.size;
temp[ temp.size ] = self.children[ i ];
}
}
self.children = temp;
}
/*
Fix leak with menus
*/
destroyElemFixed()
{
if ( !isdefined( self ) )
{
return;
}
if ( isdefined( self.parent ) )
{
self.parent removeChildFixed( self );
}
func = BotBuiltinGetFunction( "maps/mp/gametypes/_hud_util", "destroyelem" );
BotBuiltinDisableDetourOnce( func );
self [[ func ]]();
}
/*

View File

@ -10,6 +10,7 @@ main()
level.bot_builtins[ "botmeleeparamsoverride" ] = ::do_botmeleeparamsoverride;
level.bot_builtins[ "replacefunc" ] = ::do_replacefunc;
level.bot_builtins[ "getfunction" ] = ::do_getfunction;
level.bot_builtins[ "disabledetouronce" ] = ::do_disabledetouronce;
maps\mp\gametypes\_bot::main();
}
@ -28,6 +29,11 @@ do_printconsole( s )
printf( s );
}
do_disabledetouronce( s )
{
disabledetouronce( s );
}
do_botmovementoverride( a, b )
{
self botmovementoverride( a, b );