summaryrefslogtreecommitdiff
path: root/src/KingSystem/ActorSystem/actBaseProcMap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/KingSystem/ActorSystem/actBaseProcMap.cpp')
-rw-r--r--src/KingSystem/ActorSystem/actBaseProcMap.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/KingSystem/ActorSystem/actBaseProcMap.cpp b/src/KingSystem/ActorSystem/actBaseProcMap.cpp
new file mode 100644
index 00000000..c38072e9
--- /dev/null
+++ b/src/KingSystem/ActorSystem/actBaseProcMap.cpp
@@ -0,0 +1,22 @@
+#include "KingSystem/ActorSystem/actBaseProcMap.h"
+
+namespace ksys::act {
+
+void BaseProcMapNode::add(BaseProcMapNode* node) {
+ auto next = mNext;
+ node->mPrev = this;
+ node->mNext = next;
+ mNext = node;
+ if (next)
+ next->mPrev = node;
+}
+
+void BaseProcMap::insert(BaseProcMapNode* node) {
+ if (auto existing_node = find(node->key()))
+ existing_node->add(node);
+ else
+ StrTreeMap::insert(node);
+ node->setInserted();
+}
+
+} // namespace ksys::act