public void ForceStart() { this.time = 0; if (this.tracks != null) { int count = this.tracks.Count; for (int i = 0; i < count; i++) { Track track = this.tracks[i]; if (!track.execOnForceStopped && !track.execOnActionCompleted && track.waitForConditions == null) { track.Start(this); } } } }
public void Process(int _time) { if (this.tracks != null) { int count = this.tracks.Count; for (int i = 0; i < count; i++) { Track track = this.tracks[i]; if (track.waitForConditions == null) { if (track.started) { track.Process(_time); } } else { if (this.conditionChanged && !track.started && track.startCount == 0u && track.CheckConditions(this)) { track.Start(this); if (!this.loop) { int eventEndTime = track.GetEventEndTime(); if (this.length < eventEndTime) { this.length = eventEndTime; } } } if (track.started) { track.Process(track.curTime + this.deltaTime); if (track.curTime > track.GetEventEndTime()) { track.Stop(this); } } } } } this.conditionChanged = false; }