diff --git a/direct/src/interval/MetaInterval.py b/direct/src/interval/MetaInterval.py index 53e58db9a2..152d3334f7 100644 --- a/direct/src/interval/MetaInterval.py +++ b/direct/src/interval/MetaInterval.py @@ -251,18 +251,14 @@ class MetaInterval(CMetaInterval): CMetaInterval.setT(self, t) def start(self, startT = 0.0, endT = -1.0, playRate = 1.0): - if self.getDuration() == 0.0: - self.privInstant() - else: - self.setupPlay(startT, endT, playRate, 0) - self.__manager.addInterval(self) + self.__updateIvals() + self.setupPlay(startT, endT, playRate, 0) + self.__manager.addInterval(self) def loop(self, startT = 0.0, endT = -1.0, playRate = 1.0): - if self.getDuration() == 0.0: - self.privInstant() - else: - self.setupPlay(startT, endT, playRate, 1) - self.__manager.addInterval(self) + self.__updateIvals() + self.setupPlay(startT, endT, playRate, 1) + self.__manager.addInterval(self) def pause(self): if self.getState() == CInterval.SStarted: @@ -272,13 +268,11 @@ class MetaInterval(CMetaInterval): return self.getT() def resume(self, t0 = None): - if self.getDuration() == 0.0: - self.privInstant() - else: - if t0 != None: - self.setT(t0) - self.setupResume() - self.__manager.addInterval(self) + self.__updateIvals() + if t0 != None: + self.setT(t0) + self.setupResume() + self.__manager.addInterval(self) def finish(self): self.__updateIvals() diff --git a/direct/src/interval/cInterval.cxx b/direct/src/interval/cInterval.cxx index 966d1ae9e4..d477f3d00f 100644 --- a/direct/src/interval/cInterval.cxx +++ b/direct/src/interval/cInterval.cxx @@ -91,12 +91,8 @@ set_t(double t) { //////////////////////////////////////////////////////////////////// void CInterval:: start(double start_t, double end_t, double play_rate) { - if (get_duration() == 0.0) { - priv_instant(); - } else { - setup_play(start_t, end_t, play_rate, false); - _manager->add_c_interval(this, false); - } + setup_play(start_t, end_t, play_rate, false); + _manager->add_c_interval(this, false); } //////////////////////////////////////////////////////////////////// @@ -113,13 +109,8 @@ start(double start_t, double end_t, double play_rate) { //////////////////////////////////////////////////////////////////// void CInterval:: loop(double start_t, double end_t, double play_rate) { - if (get_duration() == 0.0) { - // A zero-length interval can't really loop. - priv_instant(); - } else { - setup_play(start_t, end_t, play_rate, true); - _manager->add_c_interval(this, false); - } + setup_play(start_t, end_t, play_rate, true); + _manager->add_c_interval(this, false); } //////////////////////////////////////////////////////////////////// @@ -149,10 +140,8 @@ pause() { //////////////////////////////////////////////////////////////////// void CInterval:: resume() { - if (get_duration() != 0.0) { - setup_resume(); - _manager->add_c_interval(this, false); - } + setup_resume(); + _manager->add_c_interval(this, false); } //////////////////////////////////////////////////////////////////// @@ -163,11 +152,9 @@ resume() { //////////////////////////////////////////////////////////////////// void CInterval:: resume(double start_t) { - if (get_duration() != 0.0) { - set_t(start_t); - setup_resume(); - _manager->add_c_interval(this, false); - } + set_t(start_t); + setup_resume(); + _manager->add_c_interval(this, false); } ////////////////////////////////////////////////////////////////////