public:
void Update(Time delta) {
for (typename std::list<TimerData<Time> >::iterator i(data.begin()), end(data.end()); i != end;) {
+ TimerData<Time> &t(*i);
if (i->target > 0) {
Time intervalTime(i->time);
while (intervalTime > i->target) intervalTime -= i->target;
data.push_back(TimerData<Time>(duration));
return Timer<Time>(&data.back());
}
+ Timer<Time> StartInterval(Time duration) {
+ data.push_back(TimerData<Time>(duration));
+ return Timer<Time>(&data.back());
+ }
private:
std::list<TimerData<Time> > data;