void Stats::reset() { //assert( _timer_stack.size() == 0 ); _timer_stack.clear(); // remove any timers or counters that were not used since the last reset. // iterate over timers in reverse so that children are removed before parents for (int i = _records[TIMER].size()-1; i >= 0; i--) { Record& timer = _records[TIMER][i]; if (timer.touches_since_last_reset == 0) { removeTimer(i); } else { timer.value = 0; timer.touches_since_last_reset = 0; } } for (int i = _records[COUNTER].size()-1; i >= 0; i--) { Record& counter = _records[COUNTER][i]; if (counter.touches_since_last_reset == 0) { removeCounter(i); } else { counter.value = 0; counter.touches_since_last_reset = 0; } } _data_changed = true; }
int Counters::removeCounter(int _power, int _toughness) { return removeCounter("", _power, _toughness); }