X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fantilag.qc;h=4062f7f660df2d15dfb01ea48bdf822a81599995;hp=d5f8e39f756aa00a52b9a9c7b48371beabb9bd39;hb=9e113dae328809b5e7432f434649a35ebb185a52;hpb=3729bd5e0c56ea13b26a6430cd2743cc564ddec1 diff --git a/qcsrc/server/antilag.qc b/qcsrc/server/antilag.qc index d5f8e39f7..4062f7f66 100644 --- a/qcsrc/server/antilag.qc +++ b/qcsrc/server/antilag.qc @@ -2,6 +2,7 @@ #if defined(CSQC) #elif defined(MENUQC) #elif defined(SVQC) + #include #include #include #include "antilag.qh" @@ -118,3 +119,30 @@ void antilag_clear(entity e, entity store) } store.antilag_index = ANTILAG_MAX_ORIGINS - 1; // next one is 0 } + +// TODO: use a single intrusive list across all antilagged entities +void antilag_takeback_all(entity ignore, float lag) +{ + FOREACH_CLIENT(IS_PLAYER(it) && it != ignore, antilag_takeback(it, CS(it), time - lag)); + IL_EACH(g_monsters, it != ignore, + { + antilag_takeback(it, it, time - lag); + }); + IL_EACH(g_projectiles, it != ignore && it.classname == "nade", + { + antilag_takeback(it, it, time - lag); + }); +} + +void antilag_restore_all(entity ignore) +{ + FOREACH_CLIENT(IS_PLAYER(it) && it != ignore, antilag_restore(it, CS(it))); + IL_EACH(g_monsters, it != ignore, + { + antilag_restore(it, it); + }); + IL_EACH(g_projectiles, it != ignore && it.classname == "nade", + { + antilag_restore(it, it); + }); +}