X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Fspawnfunc.qh;h=e8aeaecae61f968bedd1f5ac640d7dce2e677b05;hb=9755de88ca66529c0efa49b24c50de94e6a013f5;hp=f9c056fbd3ab81e30321f673010bd2da0db064b9;hpb=f41d9f31538bef0259d2b2c74536bb977901f99d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/spawnfunc.qh b/qcsrc/lib/spawnfunc.qh index f9c056fbd..e8aeaecae 100644 --- a/qcsrc/lib/spawnfunc.qh +++ b/qcsrc/lib/spawnfunc.qh @@ -20,26 +20,28 @@ noref bool require_spawnfunc_prefix; #define _spawnfunc_checktypes(fld) \ if (fieldname == #fld) \ - if (!entityfieldassignablefromeditor(i)) LOG_FATALF("Entity field '%s' cannot be whitelisted\n", fieldname); + if (!entityfieldassignablefromeditor(i)) LOG_FATALF("Entity field '%s' cannot be whitelisted", fieldname); #else #define _spawnfunc_checktypes(fld) #endif #define _spawnfunc_check(fld) \ if (fieldname == #fld) continue; + noref bool __spawnfunc_expecting; noref entity __spawnfunc_expect; - bool __spawnfunc_unreachable_workaround = true; + noref bool __spawnfunc_unreachable_workaround = true; #define spawnfunc_1(id) spawnfunc_2(id, FIELDS_UNION) #define spawnfunc_2(id, whitelist) \ void __spawnfunc_##id(entity this); \ [[accumulate]] void spawnfunc_##id(entity this) \ { \ - if (self == __spawnfunc_expect) \ + if (__spawnfunc_expecting) \ { \ /* engine call */ \ + __spawnfunc_expecting = false; \ + this = __spawnfunc_expect; \ __spawnfunc_expect = NULL; \ - this = self; \ } \ else \ { \ @@ -60,7 +62,7 @@ noref bool require_spawnfunc_prefix; if (fieldname == "") continue; \ FIELDS_COMMON(_spawnfunc_check) \ whitelist(_spawnfunc_check) \ - LOG_WARNINGF(_("Entity field %s.%s (%s) is not whitelisted. If you believe this is an error, please file an issue.\n"), #id, fieldname, value); \ + LOG_WARNF(_("Entity field %s.%s (%s) is not whitelisted. If you believe this is an error, please file an issue."), #id, fieldname, value); \ } \ this.spawnfunc_checked = true; \ } \ @@ -142,6 +144,7 @@ noref bool require_spawnfunc_prefix; FIELD_SCALAR(fld, monster_moveflags) \ FIELD_SCALAR(fld, monster_name) \ FIELD_SCALAR(fld, movetype) \ + FIELD_SCALAR(fld, move_movetype) \ FIELD_SCALAR(fld, netname) \ FIELD_SCALAR(fld, nextthink) \ FIELD_SCALAR(fld, noalign) \ @@ -152,6 +155,7 @@ noref bool require_spawnfunc_prefix; FIELD_SCALAR(fld, platmovetype) \ FIELD_SCALAR(fld, race_place) \ FIELD_SCALAR(fld, radius) \ + FIELD_SCALAR(fld, respawntimestart) \ FIELD_SCALAR(fld, respawntimejitter) \ FIELD_SCALAR(fld, respawntime) \ FIELD_SCALAR(fld, restriction) \ @@ -161,6 +165,7 @@ noref bool require_spawnfunc_prefix; FIELD_SCALAR(fld, sound1) \ FIELD_SCALAR(fld, sounds) \ FIELD_SCALAR(fld, spawnflags) \ + FIELD_SCALAR(fld, spawnmob) \ FIELD_SCALAR(fld, speed) \ FIELD_SCALAR(fld, strength) \ FIELD_SCALAR(fld, target2) \