]> git.xonotic.org Git - xonotic/xonotic.git/blobdiff - misc/tools/midi2cfg-ng.pl
Merge branch 'master' of git://nl.git.xonotic.org/xonotic/xonotic
[xonotic/xonotic.git] / misc / tools / midi2cfg-ng.pl
index c2c3f47f09b50182676ff27d034cf53acc0ee713..58b4097065280f6bdd0648be09e93502ac3eb494 100755 (executable)
@@ -344,7 +344,7 @@ sub busybot_cmd_bot_execute($$@)
                }
                elsif($_->[0] eq 'aim_random')
                {
-                       $commands .= sprintf "sv_cmd bot_cmd %d aim %f 0 %f\n", $bot->{id}, $_->[1] + rand($_->[2] - $_->[1]), $_->[3];
+                       $commands .= sprintf "sv_cmd bot_cmd %d aim \"%f 0 %f\"\n", $bot->{id}, $_->[1] + rand($_->[2] - $_->[1]), $_->[3];
                }
                elsif($_->[0] eq 'barrier')
                {
@@ -800,8 +800,20 @@ sub ConvertMIDI($$)
                }
        }
 
+       # sort events
        @allmidievents = sort { $a->[1] <=> $b->[1] or $a->[2] <=> $b->[2] } @allmidievents;
 
+       # find the first interesting event
+       my $shift = [grep { $_->[0] eq 'note_on' } @allmidievents]->[0][1];
+       die "No notes!"
+               unless defined $shift;
+
+       # shift times by first event, no boring waiting
+       $_->[0] = ($_->[0] < $shift ? 0 : $_->[0] - $shift) for @tempi;
+       $_->[1] = ($_->[1] < $shift ? 0 : $_->[1] - $shift) for @allmidievents;
+
+       # fix event list
+
        my %midinotes = ();
        my $notes_stuck = 0;
        my %notes_seen = ();