]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - plugins/entity/targetable.h
Merge commit '515673c08f8718a237e90c2130a1f5294f966d6a'
[xonotic/netradiant.git] / plugins / entity / targetable.h
index 234bac39a318a391e03555e5e825109dd4f07096..b2b3a517c2caa4d986f88505f2e67e5214fa1c19 100644 (file)
@@ -209,7 +209,7 @@ public:
   }
 };
 
   }
 };
 
-class TargetKeys : public EntityKeyValues::Observer
+class TargetKeys : public Entity::Observer
 {
   TargetingEntities m_targetingEntities;
   Callback m_targetsChanged;
 {
   TargetingEntities m_targetingEntities;
   Callback m_targetsChanged;
@@ -224,6 +224,11 @@ class TargetKeys : public EntityKeyValues::Observer
         return true;
       }
     }
         return true;
       }
     }
+    if(string_equal(key, "killtarget"))
+    {
+      index = -1;
+         return true;
+    }
     return false;
   }
 public:
     return false;
   }
 public:
@@ -236,7 +241,7 @@ public:
     m_targetsChanged();
   }
 
     m_targetsChanged();
   }
 
-  void insert(const char* key, EntityKeyValues::Value& value)
+  void insert(const char* key, EntityKeyValue& value)
   {
     std::size_t index;
     if(readTargetKey(key, index))
   {
     std::size_t index;
     if(readTargetKey(key, index))
@@ -246,7 +251,7 @@ public:
       targetsChanged();
     }
   }
       targetsChanged();
     }
   }
-  void erase(const char* key, EntityKeyValues::Value& value)
+  void erase(const char* key, EntityKeyValue& value)
   {
     std::size_t index;
     if(readTargetKey(key, index))
   {
     std::size_t index;
     if(readTargetKey(key, index))
@@ -328,7 +333,7 @@ public:
 class TargetableInstance :
 public SelectableInstance,
 public Targetable,
 class TargetableInstance :
 public SelectableInstance,
 public Targetable,
-public EntityKeyValues::Observer
+public Entity::Observer
 {
   mutable Vertex3f m_position;
   EntityKeyValues& m_entity;
 {
   mutable Vertex3f m_position;
   EntityKeyValues& m_entity;
@@ -368,14 +373,14 @@ public:
     m_targeting.targetsChanged();
   }
 
     m_targeting.targetsChanged();
   }
 
-  void insert(const char* key, EntityKeyValues::Value& value)
+  void insert(const char* key, EntityKeyValue& value)
   {
     if(string_equal(key, g_targetable_nameKey))
     {
       value.attach(TargetedEntity::TargetnameChangedCaller(m_targeted));
     }
   }
   {
     if(string_equal(key, g_targetable_nameKey))
     {
       value.attach(TargetedEntity::TargetnameChangedCaller(m_targeted));
     }
   }
-  void erase(const char* key, EntityKeyValues::Value& value)
+  void erase(const char* key, EntityKeyValue& value)
   {
     if(string_equal(key, g_targetable_nameKey))
     {
   {
     if(string_equal(key, g_targetable_nameKey))
     {
@@ -398,7 +403,7 @@ public:
       return childBounds.origin;
     }
 #endif
       return childBounds.origin;
     }
 #endif
-    return localToWorld().t();
+    return vector4_to_vector3(localToWorld().t());
   }
 
   void render(Renderer& renderer, const VolumeTest& volume) const
   }
 
   void render(Renderer& renderer, const VolumeTest& volume) const