vkQuake2 doxygen  1.0 dev
m_boss32.c File Reference
#include "g_local.h"
#include "m_boss32.h"

Go to the source code of this file.

Functions

qboolean visible (edict_t *self, edict_t *other)
 
void MakronRailgun (edict_t *self)
 
void MakronSaveloc (edict_t *self)
 
void MakronHyperblaster (edict_t *self)
 
void makron_step_left (edict_t *self)
 
void makron_step_right (edict_t *self)
 
void makronBFG (edict_t *self)
 
void makron_dead (edict_t *self)
 
void makron_taunt (edict_t *self)
 
void makron_stand (edict_t *self)
 
void makron_hit (edict_t *self)
 
void makron_popup (edict_t *self)
 
void makron_brainsplorch (edict_t *self)
 
void makron_prerailgun (edict_t *self)
 
void makron_walk (edict_t *self)
 
void makron_run (edict_t *self)
 
void makron_pain (edict_t *self, edict_t *other, float kick, int damage)
 
void makron_sight (edict_t *self, edict_t *other)
 
void makron_attack (edict_t *self)
 
void makron_torso_think (edict_t *self)
 
void makron_torso (edict_t *ent)
 
void makron_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
 
qboolean Makron_CheckAttack (edict_t *self)
 
void MakronPrecache (void)
 
void SP_monster_makron (edict_t *self)
 
void MakronSpawn (edict_t *self)
 
void MakronToss (edict_t *self)
 

Variables

static int sound_pain4
 
static int sound_pain5
 
static int sound_pain6
 
static int sound_death
 
static int sound_step_left
 
static int sound_step_right
 
static int sound_attack_bfg
 
static int sound_brainsplorch
 
static int sound_prerailgun
 
static int sound_popup
 
static int sound_taunt1
 
static int sound_taunt2
 
static int sound_taunt3
 
static int sound_hit
 
mframe_t makron_frames_stand []
 
mmove_t makron_move_stand = {FRAME_stand201, FRAME_stand260, makron_frames_stand, NULL}
 
mframe_t makron_frames_run []
 
mmove_t makron_move_run = {FRAME_walk204, FRAME_walk213, makron_frames_run, NULL}
 
mframe_t makron_frames_walk []
 
mmove_t makron_move_walk = {FRAME_walk204, FRAME_walk213, makron_frames_run, NULL}
 
mframe_t makron_frames_pain6 []
 
mmove_t makron_move_pain6 = {FRAME_pain601, FRAME_pain627, makron_frames_pain6, makron_run}
 
mframe_t makron_frames_pain5 []
 
mmove_t makron_move_pain5 = {FRAME_pain501, FRAME_pain504, makron_frames_pain5, makron_run}
 
mframe_t makron_frames_pain4 []
 
mmove_t makron_move_pain4 = {FRAME_pain401, FRAME_pain404, makron_frames_pain4, makron_run}
 
mframe_t makron_frames_death2 []
 
mmove_t makron_move_death2 = {FRAME_death201, FRAME_death295, makron_frames_death2, makron_dead}
 
mframe_t makron_frames_death3 []
 
mmove_t makron_move_death3 = {FRAME_death301, FRAME_death320, makron_frames_death3, NULL}
 
mframe_t makron_frames_sight []
 
mmove_t makron_move_sight = {FRAME_active01, FRAME_active13, makron_frames_sight, makron_run}
 
mframe_t makron_frames_attack3 []
 
mmove_t makron_move_attack3 = {FRAME_attak301, FRAME_attak308, makron_frames_attack3, makron_run}
 
mframe_t makron_frames_attack4 []
 
mmove_t makron_move_attack4 = {FRAME_attak401, FRAME_attak426, makron_frames_attack4, makron_run}
 
mframe_t makron_frames_attack5 []
 
mmove_t makron_move_attack5 = {FRAME_attak501, FRAME_attak516, makron_frames_attack5, makron_run}
 

Function Documentation

◆ makron_attack()

void makron_attack ( edict_t self)

Definition at line 606 of file m_boss32.c.

607 {
608  vec3_t vec;
609  float range;
610  float r;
611 
612  r = random();
613 
614  VectorSubtract (self->enemy->s.origin, self->s.origin, vec);
615  range = VectorLength (vec);
616 
617 
618  if (r <= 0.3)
619  self->monsterinfo.currentmove = &makron_move_attack3;
620  else if (r <= 0.6)
621  self->monsterinfo.currentmove = &makron_move_attack4;
622  else
623  self->monsterinfo.currentmove = &makron_move_attack5;
624 }

Referenced by SP_monster_makron().

◆ makron_brainsplorch()

void makron_brainsplorch ( edict_t self)

Definition at line 178 of file m_boss32.c.

179 {
181 }

◆ Makron_CheckAttack()

qboolean Makron_CheckAttack ( edict_t self)

Definition at line 711 of file m_boss32.c.

712 {
713  vec3_t spot1, spot2;
714  vec3_t temp;
715  float chance;
716  trace_t tr;
718  int enemy_range;
719  float enemy_yaw;
720 
721  if (self->enemy->health > 0)
722  {
723  // see if any entities are in the way of the shot
724  VectorCopy (self->s.origin, spot1);
725  spot1[2] += self->viewheight;
726  VectorCopy (self->enemy->s.origin, spot2);
727  spot2[2] += self->enemy->viewheight;
728 
730 
731  // do we have a clear shot?
732  if (tr.ent != self->enemy)
733  return false;
734  }
735 
736  enemy_infront = infront(self, self->enemy);
737  enemy_range = range(self, self->enemy);
738  VectorSubtract (self->enemy->s.origin, self->s.origin, temp);
739  enemy_yaw = vectoyaw(temp);
740 
741  self->ideal_yaw = enemy_yaw;
742 
743 
744  // melee attack
745  if (enemy_range == RANGE_MELEE)
746  {
747  if (self->monsterinfo.melee)
748  self->monsterinfo.attack_state = AS_MELEE;
749  else
750  self->monsterinfo.attack_state = AS_MISSILE;
751  return true;
752  }
753 
754 // missile attack
755  if (!self->monsterinfo.attack)
756  return false;
757 
758  if (level.time < self->monsterinfo.attack_finished)
759  return false;
760 
761  if (enemy_range == RANGE_FAR)
762  return false;
763 
764  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
765  {
766  chance = 0.4;
767  }
768  else if (enemy_range == RANGE_MELEE)
769  {
770  chance = 0.8;
771  }
772  else if (enemy_range == RANGE_NEAR)
773  {
774  chance = 0.4;
775  }
776  else if (enemy_range == RANGE_MID)
777  {
778  chance = 0.2;
779  }
780  else
781  {
782  return false;
783  }
784 
785  if (random () < chance)
786  {
787  self->monsterinfo.attack_state = AS_MISSILE;
788  self->monsterinfo.attack_finished = level.time + 2*random();
789  return true;
790  }
791 
792  if (self->flags & FL_FLY)
793  {
794  if (random() < 0.3)
795  self->monsterinfo.attack_state = AS_SLIDING;
796  else
797  self->monsterinfo.attack_state = AS_STRAIGHT;
798  }
799 
800  return false;
801 }

Referenced by SP_monster_makron().

◆ makron_dead()

void makron_dead ( edict_t self)

Definition at line 662 of file m_boss32.c.

663 {
664  VectorSet (self->mins, -60, -60, 0);
665  VectorSet (self->maxs, 60, 60, 72);
666  self->movetype = MOVETYPE_TOSS;
667  self->svflags |= SVF_DEADMONSTER;
668  self->nextthink = 0;
669  gi.linkentity (self);
670 }

◆ makron_die()

void makron_die ( edict_t self,
edict_t inflictor,
edict_t attacker,
int  damage,
vec3_t  point 
)

Definition at line 673 of file m_boss32.c.

674 {
675  edict_t *tempent;
676 
677  int n;
678 
679  self->s.sound = 0;
680  // check for gib
681  if (self->health <= self->gib_health)
682  {
683  gi.sound (self, CHAN_VOICE, gi.soundindex ("misc/udeath.wav"), 1, ATTN_NORM, 0);
684  for (n= 0; n < 1 /*4*/; n++)
685  ThrowGib (self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
686  for (n= 0; n < 4; n++)
687  ThrowGib (self, "models/objects/gibs/sm_metal/tris.md2", damage, GIB_METALLIC);
688  ThrowHead (self, "models/objects/gibs/gear/tris.md2", damage, GIB_METALLIC);
689  self->deadflag = DEAD_DEAD;
690  return;
691  }
692 
693  if (self->deadflag == DEAD_DEAD)
694  return;
695 
696 // regular death
697  gi.sound (self, CHAN_VOICE, sound_death, 1, ATTN_NONE, 0);
698  self->deadflag = DEAD_DEAD;
699  self->takedamage = DAMAGE_YES;
700 
701  tempent = G_Spawn();
702  VectorCopy (self->s.origin, tempent->s.origin);
703  VectorCopy (self->s.angles, tempent->s.angles);
704  tempent->s.origin[1] -= 84;
705  makron_torso (tempent);
706 
707  self->monsterinfo.currentmove = &makron_move_death2;
708 
709 }

Referenced by SP_monster_makron().

◆ makron_hit()

void makron_hit ( edict_t self)

Definition at line 158 of file m_boss32.c.

159 {
160  gi.sound (self, CHAN_AUTO, sound_hit, 1, ATTN_NONE,0);
161 }

◆ makron_pain()

void makron_pain ( edict_t self,
edict_t other,
float  kick,
int  damage 
)

Definition at line 555 of file m_boss32.c.

556 {
557 
558  if (self->health < (self->max_health / 2))
559  self->s.skinnum = 1;
560 
561  if (level.time < self->pain_debounce_time)
562  return;
563 
564  // Lessen the chance of him going into his pain frames
565  if (damage <=25)
566  if (random()<0.2)
567  return;
568 
569  self->pain_debounce_time = level.time + 3;
570  if (skill->value == 3)
571  return; // no pain anims in nightmare
572 
573 
574  if (damage <= 40)
575  {
576  gi.sound (self, CHAN_VOICE, sound_pain4, 1, ATTN_NONE,0);
577  self->monsterinfo.currentmove = &makron_move_pain4;
578  }
579  else if (damage <= 110)
580  {
581  gi.sound (self, CHAN_VOICE, sound_pain5, 1, ATTN_NONE,0);
582  self->monsterinfo.currentmove = &makron_move_pain5;
583  }
584  else
585  {
586  if (damage <= 150)
587  if (random() <= 0.45)
588  {
589  gi.sound (self, CHAN_VOICE, sound_pain6, 1, ATTN_NONE,0);
590  self->monsterinfo.currentmove = &makron_move_pain6;
591  }
592  else
593  if (random() <= 0.35)
594  {
595  gi.sound (self, CHAN_VOICE, sound_pain6, 1, ATTN_NONE,0);
596  self->monsterinfo.currentmove = &makron_move_pain6;
597  }
598  }
599 };

Referenced by SP_monster_makron().

◆ makron_popup()

void makron_popup ( edict_t self)

Definition at line 163 of file m_boss32.c.

164 {
165  gi.sound (self, CHAN_BODY, sound_popup, 1, ATTN_NONE,0);
166 }

◆ makron_prerailgun()

void makron_prerailgun ( edict_t self)

Definition at line 183 of file m_boss32.c.

184 {
186 }

◆ makron_run()

void makron_run ( edict_t self)

Definition at line 209 of file m_boss32.c.

210 {
211  if (self->monsterinfo.aiflags & AI_STAND_GROUND)
212  self->monsterinfo.currentmove = &makron_move_stand;
213  else
214  self->monsterinfo.currentmove = &makron_move_run;
215 }

Referenced by SP_monster_makron().

◆ makron_sight()

void makron_sight ( edict_t self,
edict_t other 
)

Definition at line 601 of file m_boss32.c.

602 {
603  self->monsterinfo.currentmove = &makron_move_sight;
604 };

Referenced by SP_monster_makron().

◆ makron_stand()

void makron_stand ( edict_t self)

Definition at line 138 of file m_boss32.c.

139 {
140  self->monsterinfo.currentmove = &makron_move_stand;
141 }

Referenced by SP_monster_makron().

◆ makron_step_left()

void makron_step_left ( edict_t self)

Definition at line 168 of file m_boss32.c.

169 {
170  gi.sound (self, CHAN_BODY, sound_step_left, 1, ATTN_NORM,0);
171 }

◆ makron_step_right()

void makron_step_right ( edict_t self)

Definition at line 173 of file m_boss32.c.

174 {
176 }

◆ makron_taunt()

void makron_taunt ( edict_t self)

Definition at line 56 of file m_boss32.c.

57 {
58  float r;
59 
60  r=random();
61  if (r <= 0.3)
62  gi.sound (self, CHAN_AUTO, sound_taunt1, 1, ATTN_NONE, 0);
63  else if (r <= 0.6)
64  gi.sound (self, CHAN_AUTO, sound_taunt2, 1, ATTN_NONE, 0);
65  else
66  gi.sound (self, CHAN_AUTO, sound_taunt3, 1, ATTN_NONE, 0);
67 }

◆ makron_torso()

void makron_torso ( edict_t ent)

Definition at line 643 of file m_boss32.c.

644 {
645  ent->movetype = MOVETYPE_NONE;
646  ent->solid = SOLID_NOT;
647  VectorSet (ent->mins, -8, -8, 0);
648  VectorSet (ent->maxs, 8, 8, 8);
649  ent->s.frame = 346;
650  ent->s.modelindex = gi.modelindex ("models/monsters/boss3/rider/tris.md2");
651  ent->think = makron_torso_think;
652  ent->nextthink = level.time + 2 * FRAMETIME;
653  ent->s.sound = gi.soundindex ("makron/spine.wav");
654  gi.linkentity (ent);
655 }

Referenced by makron_die().

◆ makron_torso_think()

void makron_torso_think ( edict_t self)

Definition at line 632 of file m_boss32.c.

633 {
634  if (++self->s.frame < 365)
635  self->nextthink = level.time + FRAMETIME;
636  else
637  {
638  self->s.frame = 346;
639  self->nextthink = level.time + FRAMETIME;
640  }
641 }

Referenced by makron_torso().

◆ makron_walk()

void makron_walk ( edict_t self)

Definition at line 204 of file m_boss32.c.

205 {
206  self->monsterinfo.currentmove = &makron_move_walk;
207 }

Referenced by SP_monster_makron().

◆ makronBFG()

void makronBFG ( edict_t self)

Definition at line 410 of file m_boss32.c.

411 {
413  vec3_t start;
414  vec3_t dir;
415  vec3_t vec;
416 
417  AngleVectors (self->s.angles, forward, right, NULL);
419 
420  VectorCopy (self->enemy->s.origin, vec);
421  vec[2] += self->enemy->viewheight;
422  VectorSubtract (vec, start, dir);
423  VectorNormalize (dir);
424  gi.sound (self, CHAN_VOICE, sound_attack_bfg, 1, ATTN_NORM, 0);
425  monster_fire_bfg (self, start, dir, 50, 300, 100, 300, MZ2_MAKRON_BFG);
426 }

◆ MakronHyperblaster()

void MakronHyperblaster ( edict_t self)

Definition at line 518 of file m_boss32.c.

519 {
520  vec3_t dir;
521  vec3_t vec;
522  vec3_t start;
524  int flash_number;
525 
526  flash_number = MZ2_MAKRON_BLASTER_1 + (self->s.frame - FRAME_attak405);
527 
528  AngleVectors (self->s.angles, forward, right, NULL);
529  G_ProjectSource (self->s.origin, monster_flash_offset[flash_number], forward, right, start);
530 
531  if (self->enemy)
532  {
533  VectorCopy (self->enemy->s.origin, vec);
534  vec[2] += self->enemy->viewheight;
535  VectorSubtract (vec, start, vec);
536  vectoangles (vec, vec);
537  dir[0] = vec[0];
538  }
539  else
540  {
541  dir[0] = 0;
542  }
543  if (self->s.frame <= FRAME_attak413)
544  dir[1] = self->s.angles[1] - 10 * (self->s.frame - FRAME_attak413);
545  else
546  dir[1] = self->s.angles[1] + 10 * (self->s.frame - FRAME_attak421);
547  dir[2] = 0;
548 
549  AngleVectors (dir, forward, NULL, NULL);
550 
551  monster_fire_blaster (self, start, forward, 15, 1000, MZ2_MAKRON_BLASTER_1, EF_BLASTER);
552 }

◆ MakronPrecache()

void MakronPrecache ( void  )

Definition at line 808 of file m_boss32.c.

809 {
810  sound_pain4 = gi.soundindex ("makron/pain3.wav");
811  sound_pain5 = gi.soundindex ("makron/pain2.wav");
812  sound_pain6 = gi.soundindex ("makron/pain1.wav");
813  sound_death = gi.soundindex ("makron/death.wav");
814  sound_step_left = gi.soundindex ("makron/step1.wav");
815  sound_step_right = gi.soundindex ("makron/step2.wav");
816  sound_attack_bfg = gi.soundindex ("makron/bfg_fire.wav");
817  sound_brainsplorch = gi.soundindex ("makron/brain1.wav");
818  sound_prerailgun = gi.soundindex ("makron/rail_up.wav");
819  sound_popup = gi.soundindex ("makron/popup.wav");
820  sound_taunt1 = gi.soundindex ("makron/voice4.wav");
821  sound_taunt2 = gi.soundindex ("makron/voice3.wav");
822  sound_taunt3 = gi.soundindex ("makron/voice.wav");
823  sound_hit = gi.soundindex ("makron/bhit.wav");
824 
825  gi.modelindex ("models/monsters/boss3/rider/tris.md2");
826 }

Referenced by SP_monster_jorg(), and SP_monster_makron().

◆ MakronRailgun()

void MakronRailgun ( edict_t self)

Definition at line 501 of file m_boss32.c.

502 {
503  vec3_t start;
504  vec3_t dir;
506 
507  AngleVectors (self->s.angles, forward, right, NULL);
509 
510  // calc direction to where we targted
511  VectorSubtract (self->pos1, start, dir);
512  VectorNormalize (dir);
513 
514  monster_fire_railgun (self, start, dir, 50, 100, MZ2_MAKRON_RAILGUN_1);
515 }

◆ MakronSaveloc()

void MakronSaveloc ( edict_t self)

Definition at line 494 of file m_boss32.c.

495 {
496  VectorCopy (self->enemy->s.origin, self->pos1); //save for aiming the shot
497  self->pos1[2] += self->enemy->viewheight;
498 };

◆ MakronSpawn()

void MakronSpawn ( edict_t self)

Definition at line 877 of file m_boss32.c.

878 {
879  vec3_t vec;
880  edict_t *player;
881 
882  SP_monster_makron (self);
883 
884  // jump at player
885  player = level.sight_client;
886  if (!player)
887  return;
888 
889  VectorSubtract (player->s.origin, self->s.origin, vec);
890  self->s.angles[YAW] = vectoyaw(vec);
891  VectorNormalize (vec);
892  VectorMA (vec3_origin, 400, vec, self->velocity);
893  self->velocity[2] = 200;
894  self->groundentity = NULL;
895 }

Referenced by MakronToss().

◆ MakronToss()

void MakronToss ( edict_t self)

Definition at line 904 of file m_boss32.c.

905 {
906  edict_t *ent;
907 
908  ent = G_Spawn ();
909  ent->nextthink = level.time + 0.8;
910  ent->think = MakronSpawn;
911  ent->target = self->target;
912  VectorCopy (self->s.origin, ent->s.origin);
913 }

◆ SP_monster_makron()

void SP_monster_makron ( edict_t self)

Definition at line 830 of file m_boss32.c.

831 {
832  if (deathmatch->value)
833  {
834  G_FreeEdict (self);
835  return;
836  }
837 
838  MakronPrecache ();
839 
840  self->movetype = MOVETYPE_STEP;
841  self->solid = SOLID_BBOX;
842  self->s.modelindex = gi.modelindex ("models/monsters/boss3/rider/tris.md2");
843  VectorSet (self->mins, -30, -30, 0);
844  VectorSet (self->maxs, 30, 30, 90);
845 
846  self->health = 3000;
847  self->gib_health = -2000;
848  self->mass = 500;
849 
850  self->pain = makron_pain;
851  self->die = makron_die;
852  self->monsterinfo.stand = makron_stand;
853  self->monsterinfo.walk = makron_walk;
854  self->monsterinfo.run = makron_run;
855  self->monsterinfo.dodge = NULL;
856  self->monsterinfo.attack = makron_attack;
857  self->monsterinfo.melee = NULL;
858  self->monsterinfo.sight = makron_sight;
859  self->monsterinfo.checkattack = Makron_CheckAttack;
860 
861  gi.linkentity (self);
862 
863 // self->monsterinfo.currentmove = &makron_move_stand;
864  self->monsterinfo.currentmove = &makron_move_sight;
865  self->monsterinfo.scale = MODEL_SCALE;
866 
867  walkmonster_start(self);
868 }

Referenced by jorg_dead(), and MakronSpawn().

◆ visible()

qboolean visible ( edict_t self,
edict_t other 
)

Definition at line 287 of file g_ai.c.

288 {
289  vec3_t spot1;
290  vec3_t spot2;
291  trace_t trace;
292 
293  VectorCopy (self->s.origin, spot1);
294  spot1[2] += self->viewheight;
295  VectorCopy (other->s.origin, spot2);
296  spot2[2] += other->viewheight;
297  trace = gi.trace (spot1, vec3_origin, vec3_origin, spot2, self, MASK_OPAQUE);
298 
299  if (trace.fraction == 1.0)
300  return true;
301  return false;
302 }

Variable Documentation

◆ makron_frames_attack3

mframe_t makron_frames_attack3[]
Initial value:

Definition at line 429 of file m_boss32.c.

◆ makron_frames_attack4

◆ makron_frames_attack5

mframe_t makron_frames_attack5[]
Initial value:

Definition at line 473 of file m_boss32.c.

◆ makron_frames_death2

mframe_t makron_frames_death2[]

Definition at line 267 of file m_boss32.c.

◆ makron_frames_death3

mframe_t makron_frames_death3[]
Initial value:

Definition at line 367 of file m_boss32.c.

◆ makron_frames_pain4

mframe_t makron_frames_pain4[]
Initial value:
=
{
}

Definition at line 258 of file m_boss32.c.

◆ makron_frames_pain5

mframe_t makron_frames_pain5[]
Initial value:
=
{
}

Definition at line 249 of file m_boss32.c.

◆ makron_frames_pain6

mframe_t makron_frames_pain6[]
Initial value:

Definition at line 217 of file m_boss32.c.

◆ makron_frames_run

mframe_t makron_frames_run[]
Initial value:

Definition at line 143 of file m_boss32.c.

◆ makron_frames_sight

mframe_t makron_frames_sight[]
Initial value:
=
{
}

Definition at line 392 of file m_boss32.c.

◆ makron_frames_stand

mframe_t makron_frames_stand[]

Definition at line 73 of file m_boss32.c.

◆ makron_frames_walk

mframe_t makron_frames_walk[]
Initial value:

Definition at line 189 of file m_boss32.c.

◆ makron_move_attack3

Definition at line 440 of file m_boss32.c.

Referenced by makron_attack().

◆ makron_move_attack4

Definition at line 471 of file m_boss32.c.

Referenced by makron_attack().

◆ makron_move_attack5

Definition at line 492 of file m_boss32.c.

Referenced by makron_attack().

◆ makron_move_death2

Definition at line 365 of file m_boss32.c.

Referenced by makron_die().

◆ makron_move_death3

Definition at line 390 of file m_boss32.c.

◆ makron_move_pain4

Definition at line 265 of file m_boss32.c.

Referenced by makron_pain().

◆ makron_move_pain5

Definition at line 256 of file m_boss32.c.

Referenced by makron_pain().

◆ makron_move_pain6

Definition at line 247 of file m_boss32.c.

Referenced by makron_pain().

◆ makron_move_run

Definition at line 156 of file m_boss32.c.

Referenced by makron_run().

◆ makron_move_sight

Definition at line 408 of file m_boss32.c.

Referenced by makron_sight(), and SP_monster_makron().

◆ makron_move_stand

Definition at line 136 of file m_boss32.c.

Referenced by makron_run(), and makron_stand().

◆ makron_move_walk

Definition at line 202 of file m_boss32.c.

Referenced by makron_walk().

◆ sound_attack_bfg

int sound_attack_bfg
static

Definition at line 47 of file m_boss32.c.

Referenced by makronBFG(), and MakronPrecache().

◆ sound_brainsplorch

int sound_brainsplorch
static

Definition at line 48 of file m_boss32.c.

Referenced by makron_brainsplorch(), and MakronPrecache().

◆ sound_death

int sound_death
static

Definition at line 44 of file m_boss32.c.

Referenced by makron_die(), and MakronPrecache().

◆ sound_hit

int sound_hit
static

Definition at line 54 of file m_boss32.c.

Referenced by makron_hit(), and MakronPrecache().

◆ sound_pain4

int sound_pain4
static

Definition at line 41 of file m_boss32.c.

Referenced by makron_pain(), and MakronPrecache().

◆ sound_pain5

int sound_pain5
static

Definition at line 42 of file m_boss32.c.

Referenced by makron_pain(), and MakronPrecache().

◆ sound_pain6

int sound_pain6
static

Definition at line 43 of file m_boss32.c.

Referenced by makron_pain(), and MakronPrecache().

◆ sound_popup

int sound_popup
static

Definition at line 50 of file m_boss32.c.

Referenced by makron_popup(), and MakronPrecache().

◆ sound_prerailgun

int sound_prerailgun
static

Definition at line 49 of file m_boss32.c.

Referenced by makron_prerailgun(), and MakronPrecache().

◆ sound_step_left

int sound_step_left
static

Definition at line 45 of file m_boss32.c.

Referenced by makron_step_left(), and MakronPrecache().

◆ sound_step_right

int sound_step_right
static

Definition at line 46 of file m_boss32.c.

Referenced by makron_step_right(), and MakronPrecache().

◆ sound_taunt1

int sound_taunt1
static

Definition at line 51 of file m_boss32.c.

Referenced by makron_taunt(), and MakronPrecache().

◆ sound_taunt2

int sound_taunt2
static

Definition at line 52 of file m_boss32.c.

Referenced by makron_taunt(), and MakronPrecache().

◆ sound_taunt3

int sound_taunt3
static

Definition at line 53 of file m_boss32.c.

Referenced by makron_taunt(), and MakronPrecache().

gi
game_import_t gi
Definition: g_main.c:25
makron_attack
void makron_attack(edict_t *self)
Definition: m_boss32.c:606
G_ProjectSource
void G_ProjectSource(vec3_t point, vec3_t distance, vec3_t forward, vec3_t right, vec3_t result)
Definition: g_utils.c:25
edict_s::s
entity_state_t s
Definition: g_local.h:970
RANGE_NEAR
#define RANGE_NEAR
Definition: g_local.h:120
deathmatch
cvar_t * deathmatch
Definition: g_main.c:35
monster_fire_railgun
void monster_fire_railgun(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int kick, int flashtype)
Definition: g_monster.c:81
CONTENTS_MONSTER
#define CONTENTS_MONSTER
Definition: qfiles.h:359
YAW
#define YAW
Definition: q_shared.h:73
DEAD_DEAD
#define DEAD_DEAD
Definition: g_local.h:115
makron_step_right
void makron_step_right(edict_t *self)
Definition: m_boss32.c:173
game_import_t::trace
trace_t(* trace)(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, edict_t *passent, int contentmask)
Definition: game.h:128
G_Spawn
edict_t * G_Spawn(void)
Definition: g_utils.c:420
trace_t::fraction
float fraction
Definition: q_shared.h:457
ThrowGib
void ThrowGib(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:135
edict_s::gib_health
int gib_health
Definition: g_local.h:1059
MakronSaveloc
void MakronSaveloc(edict_t *self)
Definition: m_boss32.c:494
VectorSubtract
#define VectorSubtract(a, b, c)
Definition: q_shared.h:163
makron_torso
void makron_torso(edict_t *ent)
Definition: m_boss32.c:643
entity_state_s::frame
int frame
Definition: q_shared.h:1154
ai_charge
void ai_charge(edict_t *self, float dist)
Definition: g_ai.c:194
SOLID_BBOX
@ SOLID_BBOX
Definition: game.h:37
FRAMETIME
#define FRAMETIME
Definition: g_local.h:75
sound_step_left
static int sound_step_left
Definition: m_boss32.c:45
monsterinfo_t::attack
void(* attack)(edict_t *self)
Definition: g_local.h:431
MakronSpawn
void MakronSpawn(edict_t *self)
Definition: m_boss32.c:877
FRAME_attak413
#define FRAME_attak413
Definition: m_boss32.h:245
entity_state_s::origin
vec3_t origin
Definition: q_shared.h:1149
makron_move_pain5
mmove_t makron_move_pain5
Definition: m_boss32.c:256
AI_STAND_GROUND
#define AI_STAND_GROUND
Definition: g_local.h:129
makron_move_run
mmove_t makron_move_run
Definition: m_boss32.c:156
qboolean
qboolean
Definition: q_shared.h:63
trace_t
Definition: q_shared.h:453
MODEL_SCALE
#define MODEL_SCALE
Definition: m_actor.h:506
SP_monster_makron
void SP_monster_makron(edict_t *self)
Definition: m_boss32.c:830
edict_s::max_health
int max_health
Definition: g_local.h:1058
DAMAGE_YES
@ DAMAGE_YES
Definition: g_local.h:89
game_import_t::sound
void(* sound)(edict_t *ent, int channel, int soundindex, float volume, float attenuation, float timeofs)
Definition: game.h:109
vectoyaw
float vectoyaw(vec3_t vec)
Definition: g_utils.c:333
CONTENTS_SOLID
#define CONTENTS_SOLID
Definition: qfiles.h:333
edict_s::mins
vec3_t mins
Definition: g_local.h:990
makron_popup
void makron_popup(edict_t *self)
Definition: m_boss32.c:163
range
GLsizei range
Definition: qgl_win.c:121
sound_step_right
static int sound_step_right
Definition: m_boss32.c:46
sound_attack_bfg
static int sound_attack_bfg
Definition: m_boss32.c:47
ATTN_NORM
#define ATTN_NORM
Definition: q_shared.h:995
sound_prerailgun
static int sound_prerailgun
Definition: m_boss32.c:49
walkmonster_start
void walkmonster_start(edict_t *self)
Definition: g_monster.c:692
edict_s::movetype
int movetype
Definition: g_local.h:1001
MOVETYPE_STEP
@ MOVETYPE_STEP
Definition: g_local.h:196
infront
qboolean infront(edict_t *self, edict_t *other)
Definition: g_ai.c:312
sound_taunt3
static int sound_taunt3
Definition: m_boss32.c:53
entity_state_s::sound
int sound
Definition: q_shared.h:1161
sound_pain4
static int sound_pain4
Definition: m_boss32.c:41
sound_taunt1
static int sound_taunt1
Definition: m_boss32.c:51
MakronHyperblaster
void MakronHyperblaster(edict_t *self)
Definition: m_boss32.c:518
SVF_DEADMONSTER
#define SVF_DEADMONSTER
Definition: game.h:28
ATTN_NONE
#define ATTN_NONE
Definition: q_shared.h:994
AngleVectors
void AngleVectors(vec3_t angles, vec3_t forward, vec3_t right, vec3_t up)
Definition: q_shared.c:93
CHAN_AUTO
#define CHAN_AUTO
Definition: q_shared.h:983
makron_move_pain4
mmove_t makron_move_pain4
Definition: m_boss32.c:265
monster_flash_offset
vec3_t monster_flash_offset[]
Definition: m_flash.c:27
CHAN_VOICE
#define CHAN_VOICE
Definition: q_shared.h:985
vectoangles
void vectoangles(vec3_t vec, vec3_t angles)
Definition: g_utils.c:356
makron_die
void makron_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
Definition: m_boss32.c:673
edict_s
Definition: g_local.h:968
G_FreeEdict
void G_FreeEdict(edict_t *e)
Definition: g_utils.c:452
GIB_METALLIC
#define GIB_METALLIC
Definition: g_local.h:126
r
GLdouble GLdouble r
Definition: qgl_win.c:336
MZ2_MAKRON_RAILGUN_1
#define MZ2_MAKRON_RAILGUN_1
Definition: q_shared.h:803
MOVETYPE_NONE
@ MOVETYPE_NONE
Definition: g_local.h:190
MakronPrecache
void MakronPrecache(void)
Definition: m_boss32.c:808
AS_SLIDING
#define AS_SLIDING
Definition: g_local.h:147
edict_s::viewheight
int viewheight
Definition: g_local.h:1067
game_import_t::soundindex
int(* soundindex)(char *name)
Definition: game.h:122
forward
static vec3_t forward
Definition: p_view.c:29
EF_BLASTER
#define EF_BLASTER
Definition: q_shared.h:564
VectorLength
vec_t VectorLength(vec3_t v)
Definition: q_shared.c:762
AS_MISSILE
#define AS_MISSILE
Definition: g_local.h:149
game_import_t::modelindex
int(* modelindex)(char *name)
Definition: game.h:121
sound_pain6
static int sound_pain6
Definition: m_boss32.c:43
edict_s::deadflag
int deadflag
Definition: g_local.h:1060
makron_stand
void makron_stand(edict_t *self)
Definition: m_boss32.c:138
edict_s::nextthink
float nextthink
Definition: g_local.h:1042
makron_move_attack5
mmove_t makron_move_attack5
Definition: m_boss32.c:492
cvar_s::value
float value
Definition: q_shared.h:331
edict_s::think
void(* think)(edict_t *self)
Definition: g_local.h:1044
ai_walk
void ai_walk(edict_t *self, float dist)
Definition: g_ai.c:163
random
#define random()
Definition: g_local.h:515
VectorNormalize
vec_t VectorNormalize(vec3_t v)
Definition: q_shared.c:681
NULL
#define NULL
Definition: q_shared.h:67
makron_taunt
void makron_taunt(edict_t *self)
Definition: m_boss32.c:56
edict_s::solid
solid_t solid
Definition: g_local.h:992
edict_s::pos1
vec3_t pos1
Definition: g_local.h:1028
sound_pain5
static int sound_pain5
Definition: m_boss32.c:42
makron_move_stand
mmove_t makron_move_stand
Definition: m_boss32.c:136
monsterinfo_t::aiflags
int aiflags
Definition: g_local.h:421
enemy_infront
qboolean enemy_infront
Definition: g_ai.c:30
skill
cvar_t * skill
Definition: g_main.c:38
SOLID_NOT
@ SOLID_NOT
Definition: game.h:35
makron_walk
void makron_walk(edict_t *self)
Definition: m_boss32.c:204
MASK_OPAQUE
#define MASK_OPAQUE
Definition: q_shared.h:400
edict_s::velocity
vec3_t velocity
Definition: g_local.h:1030
sound_brainsplorch
static int sound_brainsplorch
Definition: m_boss32.c:48
ai_move
void ai_move(edict_t *self, float dist)
Definition: g_ai.c:92
monster_fire_bfg
void monster_fire_bfg(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int speed, int kick, float damage_radius, int flashtype)
Definition: g_monster.c:91
CONTENTS_SLIME
#define CONTENTS_SLIME
Definition: qfiles.h:337
monster_fire_blaster
void monster_fire_blaster(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed, int flashtype, int effect)
Definition: g_monster.c:51
FRAME_attak421
#define FRAME_attak421
Definition: m_boss32.h:253
Makron_CheckAttack
qboolean Makron_CheckAttack(edict_t *self)
Definition: m_boss32.c:711
VectorCopy
#define VectorCopy(a, b)
Definition: q_shared.h:165
edict_s::pain_debounce_time
float pain_debounce_time
Definition: g_local.h:1052
MZ2_MAKRON_BLASTER_1
#define MZ2_MAKRON_BLASTER_1
Definition: q_shared.h:786
makron_move_death2
mmove_t makron_move_death2
Definition: m_boss32.c:365
makronBFG
void makronBFG(edict_t *self)
Definition: m_boss32.c:410
sound_popup
static int sound_popup
Definition: m_boss32.c:50
edict_s::monsterinfo
monsterinfo_t monsterinfo
Definition: g_local.h:1114
vec3_origin
vec3_t vec3_origin
Definition: q_shared.c:24
RANGE_MELEE
#define RANGE_MELEE
Definition: g_local.h:119
CHAN_WEAPON
#define CHAN_WEAPON
Definition: q_shared.h:984
makron_move_attack3
mmove_t makron_move_attack3
Definition: m_boss32.c:440
level
GLint level
Definition: qgl_win.c:116
ai_run
void ai_run(edict_t *self, float dist)
Definition: g_ai.c:914
edict_s::flags
int flags
Definition: g_local.h:1002
enemy_range
int enemy_range
Definition: g_ai.c:31
GIB_ORGANIC
#define GIB_ORGANIC
Definition: g_local.h:125
makron_step_left
void makron_step_left(edict_t *self)
Definition: m_boss32.c:168
VectorMA
void VectorMA(vec3_t veca, float scale, vec3_t vecb, vec3_t vecc)
Definition: q_shared.c:719
CONTENTS_LAVA
#define CONTENTS_LAVA
Definition: qfiles.h:336
edict_s::maxs
vec3_t maxs
Definition: g_local.h:990
RANGE_MID
#define RANGE_MID
Definition: g_local.h:121
FRAME_attak405
#define FRAME_attak405
Definition: m_boss32.h:237
entity_state_s::modelindex
int modelindex
Definition: q_shared.h:1152
trace_t::ent
struct edict_s * ent
Definition: q_shared.h:462
FL_FLY
#define FL_FLY
Definition: g_local.h:59
ThrowHead
void ThrowHead(edict_t *self, char *gibname, int damage, int type)
Definition: g_misc.c:183
makron_move_pain6
mmove_t makron_move_pain6
Definition: m_boss32.c:247
monsterinfo_t::attack_finished
float attack_finished
Definition: g_local.h:437
MOVETYPE_TOSS
@ MOVETYPE_TOSS
Definition: g_local.h:198
VectorSet
#define VectorSet(v, x, y, z)
Definition: q_shared.h:168
sound_taunt2
static int sound_taunt2
Definition: m_boss32.c:52
right
GLdouble right
Definition: qgl_win.c:159
makron_sight
void makron_sight(edict_t *self, edict_t *other)
Definition: m_boss32.c:601
MakronRailgun
void MakronRailgun(edict_t *self)
Definition: m_boss32.c:501
monsterinfo_t::melee
void(* melee)(edict_t *self)
Definition: g_local.h:432
CHAN_BODY
#define CHAN_BODY
Definition: q_shared.h:987
makron_move_attack4
mmove_t makron_move_attack4
Definition: m_boss32.c:471
edict_s::enemy
edict_t * enemy
Definition: g_local.h:1076
game_import_t::linkentity
void(* linkentity)(edict_t *ent)
Definition: game.h:138
MZ2_MAKRON_BFG
#define MZ2_MAKRON_BFG
Definition: q_shared.h:785
makron_prerailgun
void makron_prerailgun(edict_t *self)
Definition: m_boss32.c:183
entity_state_s::angles
vec3_t angles
Definition: q_shared.h:1150
sound_hit
static int sound_hit
Definition: m_boss32.c:54
AS_MELEE
#define AS_MELEE
Definition: g_local.h:148
RANGE_FAR
#define RANGE_FAR
Definition: g_local.h:122
enemy_yaw
float enemy_yaw
Definition: g_ai.c:32
vec3_t
vec_t vec3_t[3]
Definition: q_shared.h:134
makron_pain
void makron_pain(edict_t *self, edict_t *other, float kick, int damage)
Definition: m_boss32.c:555
sound_death
static int sound_death
Definition: m_boss32.c:44
makron_torso_think
void makron_torso_think(edict_t *self)
Definition: m_boss32.c:632
edict_s::target
char * target
Definition: g_local.h:1017
makron_move_walk
mmove_t makron_move_walk
Definition: m_boss32.c:202
makron_move_sight
mmove_t makron_move_sight
Definition: m_boss32.c:408
makron_run
void makron_run(edict_t *self)
Definition: m_boss32.c:209
AS_STRAIGHT
#define AS_STRAIGHT
Definition: g_local.h:146
edict_s::health
int health
Definition: g_local.h:1057