X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Ftriggers%2Ftarget%2Fspawn.qc;h=96c266f6cc57315e2436e3f752321b83405a5ab8;hb=10c0be8573ea4ab40c24c4a4267f445e00b63857;hp=da7aeda71e9c628055b7223b9299eb9ba87d0625;hpb=6cc2d1aa115907d16ae84fb07c3fe6c3329cd9b5;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/triggers/target/spawn.qc b/qcsrc/common/triggers/target/spawn.qc index da7aeda71..96c266f6c 100644 --- a/qcsrc/common/triggers/target/spawn.qc +++ b/qcsrc/common/triggers/target/spawn.qc @@ -1,9 +1,8 @@ #if defined(CSQC) #elif defined(MENUQC) #elif defined(SVQC) - #include "../../../server/_all.qh" - #include "../../util.qh" - #include "../../../server/defs.qh" + #include + #include #endif #ifdef SVQC @@ -16,29 +15,28 @@ // 2 = trigger on map load float target_spawn_initialized; -.void() target_spawn_spawnfunc; +.void(entity this) target_spawn_spawnfunc; float target_spawn_spawnfunc_field; .entity target_spawn_activator; .float target_spawn_id; float target_spawn_count; void target_spawn_helper_setmodel() -{ - setmodel(self, self.model); +{SELFPARAM(); + _setmodel(self, self.model); } void target_spawn_helper_setsize() -{ +{SELFPARAM(); setsize(self, self.mins, self.maxs); } void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity t3, entity t4, entity act) -{ +{SELFPARAM(); float i, n, valuefieldpos; string key, value, valuefield, valueoffset, valueoffsetrandom; entity valueent; vector data, data2; - entity oldself; entity oldactivator; n = tokenize_console(msg); @@ -159,7 +157,7 @@ void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity if(valuefield == "") { if(value == "") - value = ftos(num_for_edict(valueent)); + value = ftos(etof(valueent)); } else { @@ -220,15 +218,10 @@ void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity value = strcat("target_spawn_helper", value); putentityfieldstring(target_spawn_spawnfunc_field, e, value); - oldself = self; oldactivator = activator; - self = e; activator = act; - - self.target_spawn_spawnfunc(); - - self = oldself; + WITH(entity, self, e, e.target_spawn_spawnfunc(e)); activator = oldactivator; // We called an external function, so we have to re-tokenize msg. @@ -244,7 +237,7 @@ void target_spawn_edit_entity(entity e, string msg, entity kt, entity t2, entity } void target_spawn_useon(entity e) -{ +{SELFPARAM(); self.target_spawn_activator = activator; target_spawn_edit_entity( e, @@ -258,7 +251,7 @@ void target_spawn_useon(entity e) } float target_spawn_cancreate() -{ +{SELFPARAM(); float c; entity e; @@ -277,7 +270,7 @@ float target_spawn_cancreate() } void target_spawn_use() -{ +{SELFPARAM(); entity e; if(self.target == "") @@ -286,6 +279,7 @@ void target_spawn_use() if(!target_spawn_cancreate()) return; e = spawn(); + e.spawnfunc_checked = true; target_spawn_useon(e); e.target_spawn_id = self.target_spawn_id; } @@ -304,7 +298,7 @@ void target_spawn_use() } void target_spawn_spawnfirst() -{ +{SELFPARAM(); activator = self.target_spawn_activator; if(self.spawnflags & 2) target_spawn_use(); @@ -338,7 +332,7 @@ void initialize_field_db() } } -void spawnfunc_target_spawn() +spawnfunc(target_spawn) { initialize_field_db(); self.use = target_spawn_use;