X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Flib%2Fspawnfunc.qh;h=e8aeaecae61f968bedd1f5ac640d7dce2e677b05;hb=9755de88ca66529c0efa49b24c50de94e6a013f5;hp=22047bbc9daac0d285478015cbecbcf14ceb6303;hpb=0f8553d27e17cc90ccbdd7d56d86bb5136330db7;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/spawnfunc.qh b/qcsrc/lib/spawnfunc.qh index 22047bbc9..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) \ @@ -162,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) \