2020-01-05 02:25:00 +00:00
|
|
|
#include "g_local.h"
|
|
|
|
|
|
|
|
/*
|
|
|
|
===================================================
|
|
|
|
Check we have a valid target.
|
|
|
|
|
|
|
|
Should be set as a think function with
|
|
|
|
nextthink level.time+1 after spawning.
|
|
|
|
Sets self->think to NULL, so if you want
|
|
|
|
another think function after it you'll
|
|
|
|
need this check in the code
|
|
|
|
===================================================
|
|
|
|
*/
|
|
|
|
|
|
|
|
void VerifyTarget (edict_t *self)
|
|
|
|
{
|
|
|
|
edict_t *ent;
|
|
|
|
|
|
|
|
if(self->target)
|
|
|
|
{
|
|
|
|
ent = G_Find (NULL, FOFS(targetname), self->target);
|
|
|
|
|
|
|
|
if (!ent)
|
|
|
|
{
|
|
|
|
gi.dprintf ("%s at %s: %s is a bad target\n", self->classname, vtos(self->s.origin), self->target);
|
|
|
|
G_FreeEdict (self);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
self->enemy = ent;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
gi.dprintf("target_set_effect at %s has no target\n", vtos(self->s.origin));
|
|
|
|
G_FreeEdict (self);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
self->think = NULL;
|
|
|
|
self->nextthink = 0;
|
2021-11-12 02:32:00 +00:00
|
|
|
}
|