]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/target_spawn.qc
Make most server includes order insensitive
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / target_spawn.qc
index 55029775454e3b4202539ee60b5e70d91aeb8985..e89b5c0c517de1d63bd0cb53d7a50301fe618382 100644 (file)
@@ -1,3 +1,8 @@
+#include "_.qh"
+
+.entity pusher;
+.float pushltime;
+
 // spawner entity
 // "classname" "target_spawn"
 // "message" "fieldname value fieldname value ..."
@@ -39,13 +44,13 @@ void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity
                value = argv(i+1);
                if(key == "$")
                {
-                       data_x = -1;
-                       data_y = FIELD_STRING;
+                       data.x = -1;
+                       data.y = FIELD_STRING;
                }
                else
                {
                        data = stov(db_get(TemporaryDB, strcat("/target_spawn/field/", key)));
-                       if(data_y == 0) // undefined field, i.e., invalid type
+                       if(data.y == 0) // undefined field, i.e., invalid type
                        {
                                print("target_spawn: invalid/unknown entity key ", key, " specified, ignored!\n");
                                continue;
@@ -169,7 +174,7 @@ void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity
 
                                if(valueoffset != "")
                                {
-                                       switch(data_y)
+                                       switch(data.y)
                                        {
                                                case FIELD_STRING:
                                                        value = strcat(value, valueoffset);
@@ -188,7 +193,7 @@ void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity
 
                                if(valueoffsetrandom != "")
                                {
-                                       switch(data_y)
+                                       switch(data.y)
                                        {
                                                case FIELD_FLOAT:
                                                        value = ftos(stof(value) + random() * stof(valueoffsetrandom));
@@ -216,17 +221,19 @@ void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity
                        self = e;
                        activator = act;
 
-                       if(self.target_spawn_spawnfunc)
-                               self.target_spawn_spawnfunc();
+                       self.target_spawn_spawnfunc();
 
                        self = oldself;
                        activator = oldactivator;
+
+                       // We called an external function, so we have to re-tokenize msg.
+                       n = tokenize_console(msg);
                }
                else
                {
-                       if(data_y == FIELD_VECTOR)
+                       if(data.y == FIELD_VECTOR)
                                value = strreplace("'", "", value); // why?!?
-                       putentityfieldstring(data_x, e, value);
+                       putentityfieldstring(data.x, e, value);
                }
        }
 }
@@ -257,7 +264,7 @@ float target_spawn_cancreate()
        ++c; // increase count to not include MYSELF
        for(e = world; (e = findfloat(e, target_spawn_id, self.target_spawn_id)); --c)
                ;
-       
+
        // if c now is 0, we have AT LEAST the given count (maybe more), so don't spawn any more
        if(c == 0)
                return 0;
@@ -304,7 +311,7 @@ void initialize_field_db()
        {
                float n, i;
                string fn;
-               vector prev, new;
+               vector prev, next;
                float ft;
 
                n = numentityfields();
@@ -312,11 +319,11 @@ void initialize_field_db()
                {
                        fn = entityfieldname(i);
                        ft = entityfieldtype(i);
-                       new = i * '1 0 0' + ft * '0 1 0' + '0 0 1';
+                       next = i * '1 0 0' + ft * '0 1 0' + '0 0 1';
                        prev = stov(db_get(TemporaryDB, strcat("/target_spawn/field/", fn)));
-                       if(prev_y == 0)
+                       if(prev.y == 0)
                        {
-                               db_put(TemporaryDB, strcat("/target_spawn/field/", fn), vtos(new));
+                               db_put(TemporaryDB, strcat("/target_spawn/field/", fn), vtos(next));
                                if(fn == "target_spawn_spawnfunc")
                                        target_spawn_spawnfunc_field = i;
                        }