+#if defined(CSQC)
+#elif defined(MENUQC)
+#elif defined(SVQC)
+ #include "../dpdefs/progsdefs.qh"
+ #include "../dpdefs/dpextensions.qh"
+ #include "../common/util.qh"
+ #include "defs.qh"
+#endif
+
// spawner entity
// "classname" "target_spawn"
// "message" "fieldname value fieldname value ..."
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;
if(valueoffset != "")
{
- switch(data_y)
+ switch(data.y)
{
case FIELD_STRING:
value = strcat(value, valueoffset);
if(valueoffsetrandom != "")
{
- switch(data_y)
+ switch(data.y)
{
case FIELD_FLOAT:
value = ftos(stof(value) + random() * stof(valueoffsetrandom));
self = e;
activator = act;
- if(self.target_spawn_spawnfunc)
- self.target_spawn_spawnfunc();
+ self.target_spawn_spawnfunc();
self = oldself;
activator = oldactivator;
}
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);
}
}
}
++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;
ft = entityfieldtype(i);
new = 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));
if(fn == "target_spawn_spawnfunc")