]> git.lizzy.rs Git - minetest.git/blobdiff - src/nodetimer.h
Object selection: Improve distance checks (#12974)
[minetest.git] / src / nodetimer.h
index e6a8d76085c2f1e0db09154edb700c4cb6a720ca..ec1a932539d3c1f1058e87adb0ab795290b3460b 100644 (file)
@@ -17,8 +17,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
-#ifndef NODETIMER_HEADER
-#define NODETIMER_HEADER
+#pragma once
 
 #include "irr_v3d.h"
 #include <iostream>
@@ -36,12 +35,12 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 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);
@@ -58,8 +57,8 @@ class NodeTimer
 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);
@@ -93,16 +92,12 @@ class NodeTimerList
                        }
                }
        }
-       // 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;
        }
@@ -118,10 +113,6 @@ class NodeTimerList
                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);
 
@@ -131,6 +122,3 @@ class NodeTimerList
        double m_next_trigger_time = -1.0;
        double m_time = 0.0;
 };
-
-#endif
-