diff options
-rw-r--r-- | blc2/functions/chaser.py | 5 | ||||
-rwxr-xr-x | interface/chaserview.py | 4 | ||||
-rw-r--r-- | interface/interface.py | 9 |
3 files changed, 11 insertions, 7 deletions
diff --git a/blc2/functions/chaser.py b/blc2/functions/chaser.py index 43b9636..79bd32f 100644 --- a/blc2/functions/chaser.py +++ b/blc2/functions/chaser.py @@ -123,7 +123,10 @@ class Chaser(Function): n = data.steps[-1].index if self._advance_mode == RANDOM: while True: - yield random.randint(0, len(self.steps)-1) + i = random.randint(0, len(self.steps)-2) + if i >= n: + i += 1 + yield i elif self._advance_mode == LOOP: while True: n = (n + 1) % len(self.steps) diff --git a/interface/chaserview.py b/interface/chaserview.py index 91cb2c8..56a59d5 100755 --- a/interface/chaserview.py +++ b/interface/chaserview.py @@ -28,12 +28,12 @@ def format_long(n): elif n == 0: return " 0s" elif n < 10000: - return "%4s" % n + return "%4d" % n else: n = str(n/1000)[:3] if n[-1] == '.': n = n[:-1] - return "%3ss" % n + return "%4s" % n class ChaserView: def set_dim(self, height, width): diff --git a/interface/interface.py b/interface/interface.py index b868301..8454f63 100644 --- a/interface/interface.py +++ b/interface/interface.py @@ -11,7 +11,7 @@ from blc2.functions.scene import Scene from blc2.functions.chaser import Chaser from blc2.functions.chaserstep import ChaserStep from blc2.functions.join import Join -from blc2.constants import SCENE, CHASER, AUDIO, MANUAL, INHERIT, INFTY, CHASERSTEP, JOIN, ONESHOT, LOOP +from blc2.constants import SCENE, CHASER, AUDIO, MANUAL, INHERIT, INFTY, CHASERSTEP, JOIN, ONESHOT, LOOP, RANDOM from blc2.topology import Fixture @@ -693,8 +693,8 @@ class Interface: self.renderer.advance((n, (p-1) if p is not None else p)) def run_advance_all(self): - for c in self.chaser_views: - self.renderer.advance((c.chaser.id, None)) + for n in range(len(self.chaser_views)): + self.renderer.advance((n, None)) def current_status(self): self.pager.display_many(( @@ -839,6 +839,7 @@ class Interface: ("set fade out $time", lambda t: self.chaser_fade(t, True)), ("set mode oneshot", lambda: self.chaser_mode(ONESHOT)), ("set mode loop", lambda: self.chaser_mode(LOOP)), + ("set mode random", lambda: self.chaser_mode(RANDOM)), ("set length $time", self.chaser_duration), ("unbind", self.chaser_unset), ("bind $num", self.chaser_bind), @@ -938,7 +939,7 @@ class Interface: ("advance", lambda: self.run_jump(0, None, True)), ("badvance", lambda: self.run_jump(1, None, True)), - ("everythingadvance", self.run_advance_all()), + ("everythingadvance", self.run_advance_all), ("currentstatus", self.current_status), ), { |