From 6e86473cd5fb8543786f688049f16cb157ec0d7e Mon Sep 17 00:00:00 2001 From: BjossiAlfreds Date: Thu, 26 Sep 2019 11:48:38 +0000 Subject: [PATCH] Fixed medics unable to heal makrons --- src/game/g_spawn.c | 2 ++ src/game/monster/boss3/boss32.c | 17 +++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/game/g_spawn.c b/src/game/g_spawn.c index b2d23ac1..9a14e35e 100644 --- a/src/game/g_spawn.c +++ b/src/game/g_spawn.c @@ -139,6 +139,7 @@ void SP_monster_mutant(edict_t *self); void SP_monster_supertank(edict_t *self); void SP_monster_boss2(edict_t *self); void SP_monster_jorg(edict_t *self); +void SP_monster_makron(edict_t *self); void SP_monster_boss3_stand(edict_t *self); void SP_monster_commander_body(edict_t *self); @@ -257,6 +258,7 @@ spawn_t spawns[] = { {"monster_supertank", SP_monster_supertank}, {"monster_boss2", SP_monster_boss2}, {"monster_boss3_stand", SP_monster_boss3_stand}, + {"monster_makron", SP_monster_makron}, {"monster_jorg", SP_monster_jorg}, {"monster_commander_body", SP_monster_commander_body}, diff --git a/src/game/monster/boss3/boss32.c b/src/game/monster/boss3/boss32.c index b754750c..276f0e7d 100644 --- a/src/game/monster/boss3/boss32.c +++ b/src/game/monster/boss3/boss32.c @@ -833,15 +833,18 @@ makron_torso_think(edict_t *self) return; } - if (++self->s.frame < 365) + if (self->owner && self->owner->inuse && self->owner->deadflag != DEAD_DEAD) { - self->nextthink = level.time + FRAMETIME; + G_FreeEdict(self); + return; } - else + + if (++self->s.frame >= FRAME_death320) { - self->s.frame = 346; - self->nextthink = level.time + FRAMETIME; + self->s.frame = FRAME_death301; } + + self->nextthink = level.time + FRAMETIME; } void @@ -856,7 +859,7 @@ makron_torso(edict_t *ent) ent->solid = SOLID_NOT; VectorSet(ent->mins, -8, -8, 0); VectorSet(ent->maxs, 8, 8, 8); - ent->s.frame = 346; + ent->s.frame = FRAME_death301; ent->s.modelindex = gi.modelindex("models/monsters/boss3/rider/tris.md2"); ent->think = makron_torso_think; ent->nextthink = level.time + 2 * FRAMETIME; @@ -931,6 +934,7 @@ makron_die(edict_t *self, edict_t *inflictor /* unused */, edict_t *attacker /* VectorCopy(self->s.origin, tempent->s.origin); VectorCopy(self->s.angles, tempent->s.angles); tempent->s.origin[1] -= 84; + tempent->owner = self; makron_torso(tempent); self->monsterinfo.currentmove = &makron_move_death2; @@ -1163,6 +1167,7 @@ MakronToss(edict_t *self) } ent = G_Spawn(); + ent->classname = "monster_makron"; ent->nextthink = level.time + 0.8; ent->think = MakronSpawn; ent->target = self->target;