my $timeoffset_preintermission = 2;
my $timeoffset_postintermission = 2;
my $time_forgetfulness = 1.5;
+my %lists = ();
+my %listindexes = ();
my ($config, @midilist) = @ARGV;
{
$time_forgetfulness = $1;
}
+ elsif(/^list (.*?) (.*)/)
+ {
+ $lists{$1} = [split / /, $2];
+ $listindexes{$1} = 0;
+ }
else
{
print "unknown command: $_\n";
return 1;
}
+sub buildstring(@)
+{
+ return
+ join " ",
+ map
+ {
+ $_ =~ /^\@(.*)$/
+ ? do { $lists{$1}[$listindexes{$1}++ % @{$lists{$1}}]; }
+ : $_
+ }
+ @_;
+}
+
sub busybot_cmd_bot_execute($$@)
{
my ($bot, $time, @commands) = @_;
}
elsif($_->[0] eq 'cmd')
{
- $commands .= sprintf "sv_cmd bot_cmd %d %s\n", $bot->{id}, join " ", @{$_}[1..@$_-1];
+ $commands .= sprintf "sv_cmd bot_cmd %d %s\n", $bot->{id}, buildstring @{$_}[1..@$_-1];
}
elsif($_->[0] eq 'aim_random')
{
}
elsif($_->[0] eq 'raw')
{
- $commands .= sprintf "%s\n", join " ", @{$_}[1..@$_-1];
+ $commands .= sprintf "%s\n", buildstring @{$_}[1..@$_-1];
}
}
$noalloc = 0;
for(;;)
{
+ %listindexes = ();
$commands = "";
eval
{