#define SPAWNFUNC_INTERNAL_FIELDS(X) \
X(string, classname, "spawnfunc") \
+ X(string, target, string_null) \
+ X(string, target2, string_null) \
+ X(string, target3, string_null) \
+ X(string, target4, string_null) \
X(string, targetname, string_null) \
/**/
g_map_entities = IL_NEW(); \
IL_EACH(g_spawn_queue, true, __spawnfunc_spawn(it)); \
MACRO_END
-
+#ifdef SVQC
+ void _SV_OnEntityPreSpawnFunction(entity this);
+#endif
void __spawnfunc_spawn(entity prototype)
{
entity e = new(clone);
#define X(T, fld, def) { e.fld = e.__spawnfunc_##fld; e.__spawnfunc_##fld = def; }
SPAWNFUNC_INTERNAL_FIELDS(X);
#undef X
+#ifdef SVQC
+ _SV_OnEntityPreSpawnFunction(e);
+ if (wasfreed(e)) {
+ return;
+ }
+#endif
e.__spawnfunc_constructor(e);
}
FIELD_SCALAR(fld, ammo_cells) \
FIELD_SCALAR(fld, ammo_nails) \
FIELD_SCALAR(fld, ammo_rockets) \
+ FIELD_SCALAR(fld, antiwall_flag) \
FIELD_SCALAR(fld, armorvalue) \
FIELD_SCALAR(fld, atten) \
FIELD_SCALAR(fld, bgmscriptdecay) \
FIELD_SCALAR(fld, cvarfilter) \
FIELD_SCALAR(fld, debrisdamageforcescale) \
FIELD_SCALAR(fld, debrisfadetime) \
+ FIELD_SCALAR(fld, debrismovetype) \
+ FIELD_SCALAR(fld, debrisskin) \
FIELD_SCALAR(fld, debristimejitter) \
FIELD_SCALAR(fld, debristime) \
FIELD_SCALAR(fld, debris) \
FIELD_VEC(fld, absmin) \
FIELD_VEC(fld, angles) \
FIELD_VEC(fld, avelocity) \
+ FIELD_VEC(fld, debrisavelocityjitter) \
+ FIELD_VEC(fld, debrisvelocity) \
+ FIELD_VEC(fld, debrisvelocityjitter) \
FIELD_VEC(fld, color) \
FIELD_VEC(fld, mangle) \
FIELD_VEC(fld, maxs) \