51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#ifndef NODETIMER_HEADER
-#define NODETIMER_HEADER
+#pragma once
#include "irr_v3d.h"
#include <iostream>
class NodeTimer
{
public:
- NodeTimer() {}
+ NodeTimer() = default;
NodeTimer(const v3s16 &position_):
position(position_) {}
NodeTimer(f32 timeout_, f32 elapsed_, v3s16 position_):
timeout(timeout_), elapsed(elapsed_), position(position_) {}
- ~NodeTimer() {}
+ ~NodeTimer() = default;
void serialize(std::ostream &os) const;
void deSerialize(std::istream &is);
class NodeTimerList
{
public:
- NodeTimerList() {}
- ~NodeTimerList() {}
+ NodeTimerList() = default;
+ ~NodeTimerList() = default;
void serialize(std::ostream &os, u8 map_format_version) const;
void deSerialize(std::istream &is, u8 map_format_version);
}
}
}
- // Undefined behaviour if there already is a timer
- void insert(NodeTimer timer) {
+ // Undefined behavior if there already is a timer
+ void insert(const NodeTimer &timer) {
v3s16 p = timer.position;
double trigger_time = m_time + (double)(timer.timeout - timer.elapsed);
- std::multimap<double, NodeTimer>::iterator it =
- m_timers.insert(std::pair<double, NodeTimer>(
- trigger_time, timer
- ));
- m_iterators.insert(
- std::pair<v3s16, std::multimap<double, NodeTimer>::iterator>(p, it));
+ std::multimap<double, NodeTimer>::iterator it = m_timers.emplace(trigger_time, timer);
+ m_iterators.emplace(p, it);
if (m_next_trigger_time == -1. || trigger_time < m_next_trigger_time)
m_next_trigger_time = trigger_time;
}
m_next_trigger_time = -1.;
}
- inline double getNextTriggerTime() {
- return m_next_trigger_time;
- }
-
// Move forward in time, returns elapsed timers
std::vector<NodeTimer> step(float dtime);
double m_next_trigger_time = -1.0;
double m_time = 0.0;
};
-
-#endif
-