summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blc2/functions/chaser.py5
-rwxr-xr-xinterface/chaserview.py4
-rw-r--r--interface/interface.py9
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),
), {