mirror of
https://github.com/yquake2/zaero.git
synced 2025-04-20 00:10:53 +00:00
Infantry, Medic und Insane
This commit is contained in:
parent
7b568379ef
commit
261c58d154
3 changed files with 772 additions and 794 deletions
440
src/m_infantry.c
440
src/m_infantry.c
|
@ -28,28 +28,28 @@ static int sound_idle;
|
|||
|
||||
mframe_t infantry_frames_stand [] =
|
||||
{
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL}
|
||||
};
|
||||
mmove_t infantry_move_stand = {FRAME_stand50, FRAME_stand71, infantry_frames_stand, NULL};
|
||||
|
||||
|
@ -61,55 +61,55 @@ void infantry_stand (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_fidget [] =
|
||||
{
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 3, NULL,
|
||||
ai_stand, 6, NULL,
|
||||
ai_stand, 3, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, -1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, -2, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, -1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, -1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, -1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, -1, NULL,
|
||||
ai_stand, -1, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, -3, NULL,
|
||||
ai_stand, -2, NULL,
|
||||
ai_stand, -3, NULL,
|
||||
ai_stand, -3, NULL,
|
||||
ai_stand, -2, NULL
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 3, NULL},
|
||||
{ai_stand, 6, NULL},
|
||||
{ai_stand, 3, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, -1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, -2, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, -1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, -1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, -1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, -1, NULL},
|
||||
{ai_stand, -1, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, -3, NULL},
|
||||
{ai_stand, -2, NULL},
|
||||
{ai_stand, -3, NULL},
|
||||
{ai_stand, -3, NULL},
|
||||
{ai_stand, -2, NULL}
|
||||
};
|
||||
mmove_t infantry_move_fidget = {FRAME_stand01, FRAME_stand49, infantry_frames_fidget, infantry_stand};
|
||||
|
||||
|
@ -121,18 +121,18 @@ void infantry_fidget (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_walk [] =
|
||||
{
|
||||
ai_walk, 5, NULL,
|
||||
ai_walk, 4, NULL,
|
||||
ai_walk, 4, NULL,
|
||||
ai_walk, 5, NULL,
|
||||
ai_walk, 4, NULL,
|
||||
ai_walk, 5, NULL,
|
||||
ai_walk, 6, NULL,
|
||||
ai_walk, 4, NULL,
|
||||
ai_walk, 4, NULL,
|
||||
ai_walk, 4, NULL,
|
||||
ai_walk, 4, NULL,
|
||||
ai_walk, 5, NULL
|
||||
{ai_walk, 5, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 5, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 5, NULL},
|
||||
{ai_walk, 6, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 4, NULL},
|
||||
{ai_walk, 5, NULL}
|
||||
};
|
||||
mmove_t infantry_move_walk = {FRAME_walk03, FRAME_walk14, infantry_frames_walk, NULL};
|
||||
|
||||
|
@ -143,14 +143,14 @@ void infantry_walk (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_run [] =
|
||||
{
|
||||
ai_run, 10, NULL,
|
||||
ai_run, 20, NULL,
|
||||
ai_run, 5, NULL,
|
||||
ai_run, 7, NULL,
|
||||
ai_run, 30, NULL,
|
||||
ai_run, 35, NULL,
|
||||
ai_run, 2, NULL,
|
||||
ai_run, 6, NULL
|
||||
{ai_run, 10, NULL},
|
||||
{ai_run, 20, NULL},
|
||||
{ai_run, 5, NULL},
|
||||
{ai_run, 7, NULL},
|
||||
{ai_run, 30, NULL},
|
||||
{ai_run, 35, NULL},
|
||||
{ai_run, 2, NULL},
|
||||
{ai_run, 6, NULL}
|
||||
};
|
||||
mmove_t infantry_move_run = {FRAME_run01, FRAME_run08, infantry_frames_run, NULL};
|
||||
|
||||
|
@ -165,31 +165,31 @@ void infantry_run (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_pain1 [] =
|
||||
{
|
||||
ai_move, -3, NULL,
|
||||
ai_move, -2, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -2, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, 1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, 1, NULL,
|
||||
ai_move, 6, NULL,
|
||||
ai_move, 2, NULL
|
||||
{ai_move, -3, NULL},
|
||||
{ai_move, -2, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -2, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, 6, NULL},
|
||||
{ai_move, 2, NULL}
|
||||
};
|
||||
mmove_t infantry_move_pain1 = {FRAME_pain101, FRAME_pain110, infantry_frames_pain1, infantry_run};
|
||||
|
||||
mframe_t infantry_frames_pain2 [] =
|
||||
{
|
||||
ai_move, -3, NULL,
|
||||
ai_move, -3, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -2, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 2, NULL,
|
||||
ai_move, 5, NULL,
|
||||
ai_move, 2, NULL
|
||||
{ai_move, -3, NULL},
|
||||
{ai_move, -3, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -2, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 2, NULL},
|
||||
{ai_move, 5, NULL},
|
||||
{ai_move, 2, NULL}
|
||||
};
|
||||
mmove_t infantry_move_pain2 = {FRAME_pain201, FRAME_pain210, infantry_frames_pain2, infantry_run};
|
||||
|
||||
|
@ -224,18 +224,18 @@ void infantry_pain (edict_t *self, edict_t *other, float kick, int damage)
|
|||
|
||||
vec3_t aimangles[] =
|
||||
{
|
||||
0.0, 5.0, 0.0,
|
||||
10.0, 15.0, 0.0,
|
||||
20.0, 25.0, 0.0,
|
||||
25.0, 35.0, 0.0,
|
||||
30.0, 40.0, 0.0,
|
||||
30.0, 45.0, 0.0,
|
||||
25.0, 50.0, 0.0,
|
||||
20.0, 40.0, 0.0,
|
||||
15.0, 35.0, 0.0,
|
||||
40.0, 35.0, 0.0,
|
||||
70.0, 35.0, 0.0,
|
||||
90.0, 35.0, 0.0
|
||||
{0.0, 5.0, 0.0},
|
||||
{10.0, 15.0, 0.0},
|
||||
{20.0, 25.0, 0.0},
|
||||
{25.0, 35.0, 0.0},
|
||||
{30.0, 40.0, 0.0},
|
||||
{30.0, 45.0, 0.0},
|
||||
{25.0, 50.0, 0.0},
|
||||
{20.0, 40.0, 0.0},
|
||||
{15.0, 35.0, 0.0},
|
||||
{40.0, 35.0, 0.0},
|
||||
{70.0, 35.0, 0.0},
|
||||
{90.0, 35.0, 0.0}
|
||||
};
|
||||
|
||||
void InfantryMachineGun (edict_t *self)
|
||||
|
@ -301,71 +301,71 @@ void infantry_dead (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_death1 [] =
|
||||
{
|
||||
ai_move, -4, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -4, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, 3, NULL,
|
||||
ai_move, 1, NULL,
|
||||
ai_move, 1, NULL,
|
||||
ai_move, -2, NULL,
|
||||
ai_move, 2, NULL,
|
||||
ai_move, 2, NULL,
|
||||
ai_move, 9, NULL,
|
||||
ai_move, 9, NULL,
|
||||
ai_move, 5, NULL,
|
||||
ai_move, -3, NULL,
|
||||
ai_move, -3, NULL
|
||||
{ai_move, -4, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -4, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, 3, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, -2, NULL},
|
||||
{ai_move, 2, NULL},
|
||||
{ai_move, 2, NULL},
|
||||
{ai_move, 9, NULL},
|
||||
{ai_move, 9, NULL},
|
||||
{ai_move, 5, NULL},
|
||||
{ai_move, -3, NULL},
|
||||
{ai_move, -3, NULL}
|
||||
};
|
||||
mmove_t infantry_move_death1 = {FRAME_death101, FRAME_death120, infantry_frames_death1, infantry_dead};
|
||||
|
||||
// Off with his head
|
||||
mframe_t infantry_frames_death2 [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 1, NULL,
|
||||
ai_move, 5, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 1, NULL,
|
||||
ai_move, 1, NULL,
|
||||
ai_move, 4, NULL,
|
||||
ai_move, 3, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, -2, InfantryMachineGun,
|
||||
ai_move, -2, InfantryMachineGun,
|
||||
ai_move, -3, InfantryMachineGun,
|
||||
ai_move, -1, InfantryMachineGun,
|
||||
ai_move, -2, InfantryMachineGun,
|
||||
ai_move, 0, InfantryMachineGun,
|
||||
ai_move, 2, InfantryMachineGun,
|
||||
ai_move, 2, InfantryMachineGun,
|
||||
ai_move, 3, InfantryMachineGun,
|
||||
ai_move, -10, InfantryMachineGun,
|
||||
ai_move, -7, InfantryMachineGun,
|
||||
ai_move, -8, InfantryMachineGun,
|
||||
ai_move, -6, NULL,
|
||||
ai_move, 4, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, 5, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, 1, NULL},
|
||||
{ai_move, 4, NULL},
|
||||
{ai_move, 3, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -2, InfantryMachineGun},
|
||||
{ai_move, -2, InfantryMachineGun},
|
||||
{ai_move, -3, InfantryMachineGun},
|
||||
{ai_move, -1, InfantryMachineGun},
|
||||
{ai_move, -2, InfantryMachineGun},
|
||||
{ai_move, 0, InfantryMachineGun},
|
||||
{ai_move, 2, InfantryMachineGun},
|
||||
{ai_move, 2, InfantryMachineGun},
|
||||
{ai_move, 3, InfantryMachineGun},
|
||||
{ai_move, -10, InfantryMachineGun},
|
||||
{ai_move, -7, InfantryMachineGun},
|
||||
{ai_move, -8, InfantryMachineGun},
|
||||
{ai_move, -6, NULL},
|
||||
{ai_move, 4, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t infantry_move_death2 = {FRAME_death201, FRAME_death225, infantry_frames_death2, infantry_dead};
|
||||
|
||||
mframe_t infantry_frames_death3 [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, -6, NULL,
|
||||
ai_move, -11, NULL,
|
||||
ai_move, -3, NULL,
|
||||
ai_move, -11, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -6, NULL},
|
||||
{ai_move, -11, NULL},
|
||||
{ai_move, -3, NULL},
|
||||
{ai_move, -11, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t infantry_move_death3 = {FRAME_death301, FRAME_death309, infantry_frames_death3, infantry_dead};
|
||||
|
||||
|
@ -374,7 +374,7 @@ void infantry_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int dam
|
|||
{
|
||||
int n;
|
||||
|
||||
// check for gib
|
||||
// check for gib
|
||||
if (self->health <= self->gib_health)
|
||||
{
|
||||
gi.sound (self, CHAN_VOICE, gi.soundindex ("misc/udeath.wav"), 1, ATTN_NORM, 0);
|
||||
|
@ -390,7 +390,7 @@ void infantry_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int dam
|
|||
if (self->deadflag == DEAD_DEAD)
|
||||
return;
|
||||
|
||||
// regular death
|
||||
// regular death
|
||||
self->deadflag = DEAD_DEAD;
|
||||
self->takedamage = DAMAGE_YES;
|
||||
|
||||
|
@ -442,11 +442,11 @@ void infantry_duck_up (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_duck [] =
|
||||
{
|
||||
ai_move, -2, infantry_duck_down,
|
||||
ai_move, -5, infantry_duck_hold,
|
||||
ai_move, 3, NULL,
|
||||
ai_move, 4, infantry_duck_up,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, -2, infantry_duck_down},
|
||||
{ai_move, -5, infantry_duck_hold},
|
||||
{ai_move, 3, NULL},
|
||||
{ai_move, 4, infantry_duck_up},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t infantry_move_duck = {FRAME_duck01, FRAME_duck05, infantry_frames_duck, infantry_run};
|
||||
|
||||
|
@ -483,21 +483,21 @@ void infantry_fire (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_attack1 [] =
|
||||
{
|
||||
ai_charge, 4, NULL,
|
||||
ai_charge, -1, NULL,
|
||||
ai_charge, -1, NULL,
|
||||
ai_charge, 0, infantry_cock_gun,
|
||||
ai_charge, -1, NULL,
|
||||
ai_charge, 1, NULL,
|
||||
ai_charge, 1, NULL,
|
||||
ai_charge, 2, NULL,
|
||||
ai_charge, -2, NULL,
|
||||
ai_charge, -3, NULL,
|
||||
ai_charge, 1, infantry_fire,
|
||||
ai_charge, 5, NULL,
|
||||
ai_charge, -1, NULL,
|
||||
ai_charge, -2, NULL,
|
||||
ai_charge, -3, NULL
|
||||
{ai_charge, 4, NULL},
|
||||
{ai_charge, -1, NULL},
|
||||
{ai_charge, -1, NULL},
|
||||
{ai_charge, 0, infantry_cock_gun},
|
||||
{ai_charge, -1, NULL},
|
||||
{ai_charge, 1, NULL},
|
||||
{ai_charge, 1, NULL},
|
||||
{ai_charge, 2, NULL},
|
||||
{ai_charge, -2, NULL},
|
||||
{ai_charge, -3, NULL},
|
||||
{ai_charge, 1, infantry_fire},
|
||||
{ai_charge, 5, NULL},
|
||||
{ai_charge, -1, NULL},
|
||||
{ai_charge, -2, NULL},
|
||||
{ai_charge, -3, NULL}
|
||||
};
|
||||
mmove_t infantry_move_attack1 = {FRAME_attak101, FRAME_attak115, infantry_frames_attack1, infantry_run};
|
||||
|
||||
|
@ -518,14 +518,14 @@ void infantry_smack (edict_t *self)
|
|||
|
||||
mframe_t infantry_frames_attack2 [] =
|
||||
{
|
||||
ai_charge, 3, NULL,
|
||||
ai_charge, 6, NULL,
|
||||
ai_charge, 0, infantry_swing,
|
||||
ai_charge, 8, NULL,
|
||||
ai_charge, 5, NULL,
|
||||
ai_charge, 8, infantry_smack,
|
||||
ai_charge, 6, NULL,
|
||||
ai_charge, 3, NULL,
|
||||
{ai_charge, 3, NULL},
|
||||
{ai_charge, 6, NULL},
|
||||
{ai_charge, 0, infantry_swing},
|
||||
{ai_charge, 8, NULL},
|
||||
{ai_charge, 5, NULL},
|
||||
{ai_charge, 8, infantry_smack},
|
||||
{ai_charge, 6, NULL},
|
||||
{ai_charge, 3, NULL},
|
||||
};
|
||||
mmove_t infantry_move_attack2 = {FRAME_attak201, FRAME_attak208, infantry_frames_attack2, infantry_run};
|
||||
|
||||
|
@ -537,8 +537,17 @@ void infantry_attack(edict_t *self)
|
|||
self->monsterinfo.currentmove = &infantry_move_attack1;
|
||||
}
|
||||
|
||||
void SP_monster_infantry_precache(void)
|
||||
|
||||
/*QUAKED monster_infantry (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight
|
||||
*/
|
||||
void SP_monster_infantry (edict_t *self)
|
||||
{
|
||||
if (deathmatch->value)
|
||||
{
|
||||
G_FreeEdict (self);
|
||||
return;
|
||||
}
|
||||
|
||||
sound_pain1 = gi.soundindex ("infantry/infpain1.wav");
|
||||
sound_pain2 = gi.soundindex ("infantry/infpain2.wav");
|
||||
sound_die1 = gi.soundindex ("infantry/infdeth1.wav");
|
||||
|
@ -552,19 +561,7 @@ void SP_monster_infantry_precache(void)
|
|||
sound_sight = gi.soundindex ("infantry/infsght1.wav");
|
||||
sound_search = gi.soundindex ("infantry/infsrch1.wav");
|
||||
sound_idle = gi.soundindex ("infantry/infidle1.wav");
|
||||
}
|
||||
|
||||
/*QUAKED monster_infantry (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight
|
||||
*/
|
||||
void SP_monster_infantry (edict_t *self)
|
||||
{
|
||||
if (deathmatch->value)
|
||||
{
|
||||
G_FreeEdict (self);
|
||||
return;
|
||||
}
|
||||
|
||||
SP_monster_infantry_precache();
|
||||
|
||||
|
||||
self->movetype = MOVETYPE_STEP;
|
||||
self->solid = SOLID_BBOX;
|
||||
|
@ -621,3 +618,4 @@ void handler_ConvertToInfantry(edict_t *self)
|
|||
|
||||
infantry_run (self);
|
||||
}
|
||||
|
||||
|
|
605
src/m_insane.c
605
src/m_insane.c
|
@ -48,367 +48,367 @@ void insane_onground (edict_t *self);
|
|||
|
||||
mframe_t insane_frames_stand_normal [] =
|
||||
{
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, insane_checkdown
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, insane_checkdown}
|
||||
};
|
||||
mmove_t insane_move_stand_normal = {FRAME_stand60, FRAME_stand65, insane_frames_stand_normal, insane_stand};
|
||||
|
||||
mframe_t insane_frames_stand_insane [] =
|
||||
{
|
||||
ai_stand, 0, insane_shake,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, insane_checkdown
|
||||
{ai_stand, 0, insane_shake},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, insane_checkdown}
|
||||
};
|
||||
mmove_t insane_move_stand_insane = {FRAME_stand65, FRAME_stand94, insane_frames_stand_insane, insane_stand};
|
||||
|
||||
mframe_t insane_frames_uptodown [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, insane_moan,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, insane_moan},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
|
||||
ai_move, 2.7, NULL,
|
||||
ai_move, 4.1, NULL,
|
||||
ai_move, 6, NULL,
|
||||
ai_move, 7.6, NULL,
|
||||
ai_move, 3.6, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, insane_fist,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
{ai_move, 2.7, NULL},
|
||||
{ai_move, 4.1, NULL},
|
||||
{ai_move, 6, NULL},
|
||||
{ai_move, 7.6, NULL},
|
||||
{ai_move, 3.6, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, insane_fist},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, insane_fist,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, insane_fist},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_uptodown = {FRAME_stand1, FRAME_stand40, insane_frames_uptodown, insane_onground};
|
||||
|
||||
|
||||
mframe_t insane_frames_downtoup [] =
|
||||
{
|
||||
ai_move, -0.7, NULL, // 41
|
||||
ai_move, -1.2, NULL, // 42
|
||||
ai_move, -1.5, NULL, // 43
|
||||
ai_move, -4.5, NULL, // 44
|
||||
ai_move, -3.5, NULL, // 45
|
||||
ai_move, -0.2, NULL, // 46
|
||||
ai_move, 0, NULL, // 47
|
||||
ai_move, -1.3, NULL, // 48
|
||||
ai_move, -3, NULL, // 49
|
||||
ai_move, -2, NULL, // 50
|
||||
ai_move, 0, NULL, // 51
|
||||
ai_move, 0, NULL, // 52
|
||||
ai_move, 0, NULL, // 53
|
||||
ai_move, -3.3, NULL, // 54
|
||||
ai_move, -1.6, NULL, // 55
|
||||
ai_move, -0.3, NULL, // 56
|
||||
ai_move, 0, NULL, // 57
|
||||
ai_move, 0, NULL, // 58
|
||||
ai_move, 0, NULL // 59
|
||||
{ai_move, -0.7, NULL}, // 41
|
||||
{ai_move, -1.2, NULL}, // 42
|
||||
{ai_move, -1.5, NULL}, // 43
|
||||
{ai_move, -4.5, NULL}, // 44
|
||||
{ai_move, -3.5, NULL}, // 45
|
||||
{ai_move, -0.2, NULL}, // 46
|
||||
{ai_move, 0, NULL}, // 47
|
||||
{ai_move, -1.3, NULL}, // 48
|
||||
{ai_move, -3, NULL}, // 49
|
||||
{ai_move, -2, NULL}, // 50
|
||||
{ai_move, 0, NULL}, // 51
|
||||
{ai_move, 0, NULL}, // 52
|
||||
{ai_move, 0, NULL}, // 53
|
||||
{ai_move, -3.3, NULL}, // 54
|
||||
{ai_move, -1.6, NULL}, // 55
|
||||
{ai_move, -0.3, NULL}, // 56
|
||||
{ai_move, 0, NULL}, // 57
|
||||
{ai_move, 0, NULL}, // 58
|
||||
{ai_move, 0, NULL} // 59
|
||||
};
|
||||
mmove_t insane_move_downtoup = {FRAME_stand41, FRAME_stand59, insane_frames_downtoup, insane_stand};
|
||||
|
||||
mframe_t insane_frames_jumpdown [] =
|
||||
{
|
||||
ai_move, 0.2, NULL,
|
||||
ai_move, 11.5, NULL,
|
||||
ai_move, 5.1, NULL,
|
||||
ai_move, 7.1, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0.2, NULL},
|
||||
{ai_move, 11.5, NULL},
|
||||
{ai_move, 5.1, NULL},
|
||||
{ai_move, 7.1, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_jumpdown = {FRAME_stand96, FRAME_stand100, insane_frames_jumpdown, insane_onground};
|
||||
|
||||
|
||||
mframe_t insane_frames_down [] =
|
||||
{
|
||||
ai_move, 0, NULL, // 100
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL, // 110
|
||||
ai_move, -1.7, NULL,
|
||||
ai_move, -1.6, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, insane_fist,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL, // 120
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL, // 130
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, insane_moan,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL, // 140
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL, // 150
|
||||
ai_move, 0.5, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, -0.2, insane_scream,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0.2, NULL,
|
||||
ai_move, 0.4, NULL,
|
||||
ai_move, 0.6, NULL,
|
||||
ai_move, 0.8, NULL,
|
||||
ai_move, 0.7, NULL,
|
||||
ai_move, 0, insane_checkup // 160
|
||||
{ai_move, 0, NULL}, // 100
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}, // 110
|
||||
{ai_move, -1.7, NULL},
|
||||
{ai_move, -1.6, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, insane_fist},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}, // 120
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}, // 130
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, insane_moan},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}, // 140
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}, // 150
|
||||
{ai_move, 0.5, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, -0.2, insane_scream},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0.2, NULL},
|
||||
{ai_move, 0.4, NULL},
|
||||
{ai_move, 0.6, NULL},
|
||||
{ai_move, 0.8, NULL},
|
||||
{ai_move, 0.7, NULL},
|
||||
{ai_move, 0, insane_checkup} // 160
|
||||
};
|
||||
mmove_t insane_move_down = {FRAME_stand100, FRAME_stand160, insane_frames_down, insane_onground};
|
||||
|
||||
mframe_t insane_frames_walk_normal [] =
|
||||
{
|
||||
ai_walk, 0, insane_scream,
|
||||
ai_walk, 2.5, NULL,
|
||||
ai_walk, 3.5, NULL,
|
||||
ai_walk, 1.7, NULL,
|
||||
ai_walk, 2.3, NULL,
|
||||
ai_walk, 2.4, NULL,
|
||||
ai_walk, 2.2, NULL,
|
||||
ai_walk, 4.2, NULL,
|
||||
ai_walk, 5.6, NULL,
|
||||
ai_walk, 3.3, NULL,
|
||||
ai_walk, 2.4, NULL,
|
||||
ai_walk, 0.9, NULL,
|
||||
ai_walk, 0, NULL
|
||||
{ai_walk, 0, insane_scream},
|
||||
{ai_walk, 2.5, NULL},
|
||||
{ai_walk, 3.5, NULL},
|
||||
{ai_walk, 1.7, NULL},
|
||||
{ai_walk, 2.3, NULL},
|
||||
{ai_walk, 2.4, NULL},
|
||||
{ai_walk, 2.2, NULL},
|
||||
{ai_walk, 4.2, NULL},
|
||||
{ai_walk, 5.6, NULL},
|
||||
{ai_walk, 3.3, NULL},
|
||||
{ai_walk, 2.4, NULL},
|
||||
{ai_walk, 0.9, NULL},
|
||||
{ai_walk, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_walk_normal = {FRAME_walk27, FRAME_walk39, insane_frames_walk_normal, insane_walk};
|
||||
mmove_t insane_move_run_normal = {FRAME_walk27, FRAME_walk39, insane_frames_walk_normal, insane_run};
|
||||
|
||||
mframe_t insane_frames_walk_insane [] =
|
||||
{
|
||||
ai_walk, 0, insane_scream, // walk 1
|
||||
ai_walk, 3.4, NULL, // walk 2
|
||||
ai_walk, 3.6, NULL, // 3
|
||||
ai_walk, 2.9, NULL, // 4
|
||||
ai_walk, 2.2, NULL, // 5
|
||||
ai_walk, 2.6, NULL, // 6
|
||||
ai_walk, 0, NULL, // 7
|
||||
ai_walk, 0.7, NULL, // 8
|
||||
ai_walk, 4.8, NULL, // 9
|
||||
ai_walk, 5.3, NULL, // 10
|
||||
ai_walk, 1.1, NULL, // 11
|
||||
ai_walk, 2, NULL, // 12
|
||||
ai_walk, 0.5, NULL, // 13
|
||||
ai_walk, 0, NULL, // 14
|
||||
ai_walk, 0, NULL, // 15
|
||||
ai_walk, 4.9, NULL, // 16
|
||||
ai_walk, 6.7, NULL, // 17
|
||||
ai_walk, 3.8, NULL, // 18
|
||||
ai_walk, 2, NULL, // 19
|
||||
ai_walk, 0.2, NULL, // 20
|
||||
ai_walk, 0, NULL, // 21
|
||||
ai_walk, 3.4, NULL, // 22
|
||||
ai_walk, 6.4, NULL, // 23
|
||||
ai_walk, 5, NULL, // 24
|
||||
ai_walk, 1.8, NULL, // 25
|
||||
ai_walk, 0, NULL // 26
|
||||
{ai_walk, 0, insane_scream}, // walk 1
|
||||
{ai_walk, 3.4, NULL}, // walk 2
|
||||
{ai_walk, 3.6, NULL}, // 3
|
||||
{ai_walk, 2.9, NULL}, // 4
|
||||
{ai_walk, 2.2, NULL}, // 5
|
||||
{ai_walk, 2.6, NULL}, // 6
|
||||
{ai_walk, 0, NULL}, // 7
|
||||
{ai_walk, 0.7, NULL}, // 8
|
||||
{ai_walk, 4.8, NULL}, // 9
|
||||
{ai_walk, 5.3, NULL}, // 10
|
||||
{ai_walk, 1.1, NULL}, // 11
|
||||
{ai_walk, 2, NULL}, // 12
|
||||
{ai_walk, 0.5, NULL}, // 13
|
||||
{ai_walk, 0, NULL}, // 14
|
||||
{ai_walk, 0, NULL}, // 15
|
||||
{ai_walk, 4.9, NULL}, // 16
|
||||
{ai_walk, 6.7, NULL}, // 17
|
||||
{ai_walk, 3.8, NULL}, // 18
|
||||
{ai_walk, 2, NULL}, // 19
|
||||
{ai_walk, 0.2, NULL}, // 20
|
||||
{ai_walk, 0, NULL}, // 21
|
||||
{ai_walk, 3.4, NULL}, // 22
|
||||
{ai_walk, 6.4, NULL}, // 23
|
||||
{ai_walk, 5, NULL}, // 24
|
||||
{ai_walk, 1.8, NULL}, // 25
|
||||
{ai_walk, 0, NULL} // 26
|
||||
};
|
||||
mmove_t insane_move_walk_insane = {FRAME_walk1, FRAME_walk26, insane_frames_walk_insane, insane_walk};
|
||||
mmove_t insane_move_run_insane = {FRAME_walk1, FRAME_walk26, insane_frames_walk_insane, insane_run};
|
||||
|
||||
mframe_t insane_frames_stand_pain [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_stand_pain = {FRAME_st_pain2, FRAME_st_pain12, insane_frames_stand_pain, insane_run};
|
||||
|
||||
mframe_t insane_frames_stand_death [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_stand_death = {FRAME_st_death2, FRAME_st_death18, insane_frames_stand_death, insane_dead};
|
||||
|
||||
mframe_t insane_frames_crawl [] =
|
||||
{
|
||||
ai_walk, 0, insane_scream,
|
||||
ai_walk, 1.5, NULL,
|
||||
ai_walk, 2.1, NULL,
|
||||
ai_walk, 3.6, NULL,
|
||||
ai_walk, 2, NULL,
|
||||
ai_walk, 0.9, NULL,
|
||||
ai_walk, 3, NULL,
|
||||
ai_walk, 3.4, NULL,
|
||||
ai_walk, 2.4, NULL
|
||||
{ai_walk, 0, insane_scream},
|
||||
{ai_walk, 1.5, NULL},
|
||||
{ai_walk, 2.1, NULL},
|
||||
{ai_walk, 3.6, NULL},
|
||||
{ai_walk, 2, NULL},
|
||||
{ai_walk, 0.9, NULL},
|
||||
{ai_walk, 3, NULL},
|
||||
{ai_walk, 3.4, NULL},
|
||||
{ai_walk, 2.4, NULL}
|
||||
};
|
||||
mmove_t insane_move_crawl = {FRAME_crawl1, FRAME_crawl9, insane_frames_crawl, NULL};
|
||||
mmove_t insane_move_runcrawl = {FRAME_crawl1, FRAME_crawl9, insane_frames_crawl, NULL};
|
||||
|
||||
mframe_t insane_frames_crawl_pain [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_crawl_pain = {FRAME_cr_pain2, FRAME_cr_pain10, insane_frames_crawl_pain, insane_run};
|
||||
|
||||
mframe_t insane_frames_crawl_death [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_crawl_death = {FRAME_cr_death10, FRAME_cr_death16, insane_frames_crawl_death, insane_dead};
|
||||
|
||||
mframe_t insane_frames_cross [] =
|
||||
{
|
||||
ai_move, 0, insane_moan,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, insane_moan},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_cross = {FRAME_cross1, FRAME_cross15, insane_frames_cross, insane_cross};
|
||||
|
||||
mframe_t insane_frames_struggle_cross [] =
|
||||
{
|
||||
ai_move, 0, insane_scream,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, insane_scream},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t insane_move_struggle_cross = {FRAME_cross16, FRAME_cross30, insane_frames_struggle_cross, insane_cross};
|
||||
|
||||
|
@ -459,9 +459,6 @@ void insane_pain (edict_t *self, edict_t *other, float kick, int damage)
|
|||
{
|
||||
int l,r;
|
||||
|
||||
// if (self->health < (self->max_health / 2))
|
||||
// self->s.skinnum = 1;
|
||||
|
||||
if (level.time < self->pain_debounce_time)
|
||||
return;
|
||||
|
||||
|
@ -504,14 +501,15 @@ void insane_onground (edict_t *self)
|
|||
|
||||
void insane_checkdown (edict_t *self)
|
||||
{
|
||||
// if ( (self->s.frame == FRAME_stand94) || (self->s.frame == FRAME_stand65) )
|
||||
if (self->spawnflags & 32) // Always stand
|
||||
return;
|
||||
if (random() < 0.3)
|
||||
{
|
||||
if (random() < 0.5)
|
||||
self->monsterinfo.currentmove = &insane_move_uptodown;
|
||||
else
|
||||
self->monsterinfo.currentmove = &insane_move_jumpdown;
|
||||
}
|
||||
}
|
||||
|
||||
void insane_checkup (edict_t *self)
|
||||
|
@ -597,8 +595,16 @@ void insane_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damag
|
|||
}
|
||||
|
||||
|
||||
void SP_misc_insane_precache(void)
|
||||
/*QUAKED misc_insane (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn CRAWL CRUCIFIED STAND_GROUND ALWAYS_STAND
|
||||
*/
|
||||
void SP_misc_insane (edict_t *self)
|
||||
{
|
||||
if (deathmatch->value)
|
||||
{
|
||||
G_FreeEdict (self);
|
||||
return;
|
||||
}
|
||||
|
||||
sound_fist = gi.soundindex ("insane/insane11.wav");
|
||||
sound_shake = gi.soundindex ("insane/insane5.wav");
|
||||
sound_moan = gi.soundindex ("insane/insane7.wav");
|
||||
|
@ -610,22 +616,6 @@ void SP_misc_insane_precache(void)
|
|||
sound_scream[5] = gi.soundindex ("insane/insane8.wav");
|
||||
sound_scream[6] = gi.soundindex ("insane/insane9.wav");
|
||||
sound_scream[7] = gi.soundindex ("insane/insane10.wav");
|
||||
}
|
||||
|
||||
|
||||
/*QUAKED misc_insane (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn CRAWL CRUCIFIED STAND_GROUND ALWAYS_STAND
|
||||
*/
|
||||
void SP_misc_insane (edict_t *self)
|
||||
{
|
||||
// static int skin = 0; //@@
|
||||
|
||||
if (deathmatch->value)
|
||||
{
|
||||
G_FreeEdict (self);
|
||||
return;
|
||||
}
|
||||
|
||||
SP_misc_insane_precache();
|
||||
|
||||
self->movetype = MOVETYPE_STEP;
|
||||
self->solid = SOLID_BBOX;
|
||||
|
@ -650,12 +640,6 @@ void SP_misc_insane (edict_t *self)
|
|||
self->monsterinfo.sight = NULL;
|
||||
self->monsterinfo.aiflags |= AI_GOOD_GUY;
|
||||
|
||||
//@@
|
||||
// self->s.skinnum = skin;
|
||||
// skin++;
|
||||
// if (skin > 12)
|
||||
// skin = 0;
|
||||
|
||||
gi.linkentity (self);
|
||||
|
||||
if (self->spawnflags & 16) // Stand Ground
|
||||
|
@ -678,3 +662,4 @@ void SP_misc_insane (edict_t *self)
|
|||
self->s.skinnum = rand()%3;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
521
src/m_medic.c
521
src/m_medic.c
|
@ -102,96 +102,96 @@ void medic_sight (edict_t *self, edict_t *other)
|
|||
|
||||
mframe_t medic_frames_stand [] =
|
||||
{
|
||||
ai_stand, 0, medic_idle,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
ai_stand, 0, NULL,
|
||||
{ai_stand, 0, medic_idle},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
{ai_stand, 0, NULL},
|
||||
|
||||
};
|
||||
mmove_t medic_move_stand = {FRAME_wait1, FRAME_wait90, medic_frames_stand, NULL};
|
||||
|
@ -204,18 +204,18 @@ void medic_stand (edict_t *self)
|
|||
|
||||
mframe_t medic_frames_walk [] =
|
||||
{
|
||||
ai_walk, 6.2, NULL,
|
||||
ai_walk, 18.1, NULL,
|
||||
ai_walk, 1, NULL,
|
||||
ai_walk, 9, NULL,
|
||||
ai_walk, 10, NULL,
|
||||
ai_walk, 9, NULL,
|
||||
ai_walk, 11, NULL,
|
||||
ai_walk, 11.6, NULL,
|
||||
ai_walk, 2, NULL,
|
||||
ai_walk, 9.9, NULL,
|
||||
ai_walk, 14, NULL,
|
||||
ai_walk, 9.3, NULL
|
||||
{ai_walk, 6.2, NULL},
|
||||
{ai_walk, 18.1, NULL},
|
||||
{ai_walk, 1, NULL},
|
||||
{ai_walk, 9, NULL},
|
||||
{ai_walk, 10, NULL},
|
||||
{ai_walk, 9, NULL},
|
||||
{ai_walk, 11, NULL},
|
||||
{ai_walk, 11.6, NULL},
|
||||
{ai_walk, 2, NULL},
|
||||
{ai_walk, 9.9, NULL},
|
||||
{ai_walk, 14, NULL},
|
||||
{ai_walk, 9.3, NULL}
|
||||
};
|
||||
mmove_t medic_move_walk = {FRAME_walk1, FRAME_walk12, medic_frames_walk, NULL};
|
||||
|
||||
|
@ -227,12 +227,12 @@ void medic_walk (edict_t *self)
|
|||
|
||||
mframe_t medic_frames_run [] =
|
||||
{
|
||||
ai_run, 18, NULL,
|
||||
ai_run, 22.5, NULL,
|
||||
ai_run, 25.4, NULL,
|
||||
ai_run, 23.4, NULL,
|
||||
ai_run, 24, NULL,
|
||||
ai_run, 35.6, NULL
|
||||
{ai_run, 18, NULL},
|
||||
{ai_run, 22.5, NULL},
|
||||
{ai_run, 25.4, NULL},
|
||||
{ai_run, 23.4, NULL},
|
||||
{ai_run, 24, NULL},
|
||||
{ai_run, 35.6, NULL}
|
||||
|
||||
};
|
||||
mmove_t medic_move_run = {FRAME_run1, FRAME_run6, medic_frames_run, NULL};
|
||||
|
@ -264,34 +264,34 @@ void medic_run (edict_t *self)
|
|||
|
||||
mframe_t medic_frames_pain1 [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t medic_move_pain1 = {FRAME_paina1, FRAME_paina8, medic_frames_pain1, medic_run};
|
||||
|
||||
mframe_t medic_frames_pain2 [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t medic_move_pain2 = {FRAME_painb1, FRAME_painb15, medic_frames_pain2, medic_run};
|
||||
|
||||
|
@ -358,36 +358,36 @@ void medic_dead (edict_t *self)
|
|||
|
||||
mframe_t medic_frames_death [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t medic_move_death = {FRAME_death1, FRAME_death30, medic_frames_death, medic_dead};
|
||||
|
||||
|
@ -399,7 +399,7 @@ void medic_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage
|
|||
if ((self->enemy) && (self->enemy->owner == self))
|
||||
self->enemy->owner = NULL;
|
||||
|
||||
// check for gib
|
||||
// check for gib
|
||||
if (self->health <= self->gib_health)
|
||||
{
|
||||
gi.sound (self, CHAN_VOICE, gi.soundindex ("misc/udeath.wav"), 1, ATTN_NORM, 0);
|
||||
|
@ -415,7 +415,7 @@ void medic_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage
|
|||
if (self->deadflag == DEAD_DEAD)
|
||||
return;
|
||||
|
||||
// regular death
|
||||
// regular death
|
||||
gi.sound (self, CHAN_VOICE, sound_die, 1, ATTN_NORM, 0);
|
||||
self->deadflag = DEAD_DEAD;
|
||||
self->takedamage = DAMAGE_YES;
|
||||
|
@ -453,22 +453,22 @@ void medic_duck_up (edict_t *self)
|
|||
|
||||
mframe_t medic_frames_duck [] =
|
||||
{
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, medic_duck_down,
|
||||
ai_move, -1, medic_duck_hold,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, medic_duck_up,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL,
|
||||
ai_move, -1, NULL
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, medic_duck_down},
|
||||
{ai_move, -1, medic_duck_hold},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, medic_duck_up},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL},
|
||||
{ai_move, -1, NULL}
|
||||
};
|
||||
mmove_t medic_move_duck = {FRAME_duck1, FRAME_duck16, medic_frames_duck, medic_run};
|
||||
|
||||
|
@ -485,22 +485,22 @@ void medic_dodge (edict_t *self, edict_t *attacker, float eta)
|
|||
|
||||
mframe_t medic_frames_attackHyperBlaster [] =
|
||||
{
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, medic_fire_blaster
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, medic_fire_blaster}
|
||||
};
|
||||
mmove_t medic_move_attackHyperBlaster = {FRAME_attack15, FRAME_attack30, medic_frames_attackHyperBlaster, medic_run};
|
||||
|
||||
|
@ -515,20 +515,20 @@ void medic_continue (edict_t *self)
|
|||
|
||||
mframe_t medic_frames_attackBlaster [] =
|
||||
{
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 5, NULL,
|
||||
ai_charge, 5, NULL,
|
||||
ai_charge, 3, NULL,
|
||||
ai_charge, 2, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, medic_fire_blaster,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, medic_continue // Change to medic_continue... Else, go to frame 32
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 5, NULL},
|
||||
{ai_charge, 5, NULL},
|
||||
{ai_charge, 3, NULL},
|
||||
{ai_charge, 2, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, medic_fire_blaster},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, medic_continue} // Change to medic_continue... Else, go to frame 32
|
||||
};
|
||||
mmove_t medic_move_attackBlaster = {FRAME_attack1, FRAME_attack14, medic_frames_attackBlaster, medic_run};
|
||||
|
||||
|
@ -542,16 +542,16 @@ void ED_CallSpawn (edict_t *ent);
|
|||
|
||||
static vec3_t medic_cable_offsets[] =
|
||||
{
|
||||
45.0, -9.2, 15.5,
|
||||
48.4, -9.7, 15.2,
|
||||
47.8, -9.8, 15.8,
|
||||
47.3, -9.3, 14.3,
|
||||
45.4, -10.1, 13.1,
|
||||
41.9, -12.7, 12.0,
|
||||
37.8, -15.8, 11.2,
|
||||
34.3, -18.4, 10.7,
|
||||
32.7, -19.7, 10.4,
|
||||
32.7, -19.7, 10.4
|
||||
{45.0, -9.2, 15.5},
|
||||
{48.4, -9.7, 15.2},
|
||||
{47.8, -9.8, 15.8},
|
||||
{47.3, -9.3, 14.3},
|
||||
{45.4, -10.1, 13.1},
|
||||
{41.9, -12.7, 12.0},
|
||||
{37.8, -15.8, 11.2},
|
||||
{34.3, -18.4, 10.7},
|
||||
{32.7, -19.7, 10.4},
|
||||
{32.7, -19.7, 10.4}
|
||||
};
|
||||
|
||||
void medic_cable_attack (edict_t *self)
|
||||
|
@ -642,34 +642,34 @@ void medic_hook_retract (edict_t *self)
|
|||
|
||||
mframe_t medic_frames_attackCable [] =
|
||||
{
|
||||
ai_move, 2, NULL,
|
||||
ai_move, 3, NULL,
|
||||
ai_move, 5, NULL,
|
||||
ai_move, 4.4, NULL,
|
||||
ai_charge, 4.7, NULL,
|
||||
ai_charge, 5, NULL,
|
||||
ai_charge, 6, NULL,
|
||||
ai_charge, 4, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_move, 0, medic_hook_launch,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, 0, medic_cable_attack,
|
||||
ai_move, -15, medic_hook_retract,
|
||||
ai_move, -1.5, NULL,
|
||||
ai_move, -1.2, NULL,
|
||||
ai_move, -3, NULL,
|
||||
ai_move, -2, NULL,
|
||||
ai_move, 0.3, NULL,
|
||||
ai_move, 0.7, NULL,
|
||||
ai_move, 1.2, NULL,
|
||||
ai_move, 1.3, NULL
|
||||
{ai_move, 2, NULL},
|
||||
{ai_move, 3, NULL},
|
||||
{ai_move, 5, NULL},
|
||||
{ai_move, 4.4, NULL},
|
||||
{ai_charge, 4.7, NULL},
|
||||
{ai_charge, 5, NULL},
|
||||
{ai_charge, 6, NULL},
|
||||
{ai_charge, 4, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_move, 0, medic_hook_launch},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, 0, medic_cable_attack},
|
||||
{ai_move, -15, medic_hook_retract},
|
||||
{ai_move, -1.5, NULL},
|
||||
{ai_move, -1.2, NULL},
|
||||
{ai_move, -3, NULL},
|
||||
{ai_move, -2, NULL},
|
||||
{ai_move, 0.3, NULL},
|
||||
{ai_move, 0.7, NULL},
|
||||
{ai_move, 1.2, NULL},
|
||||
{ai_move, 1.3, NULL}
|
||||
};
|
||||
mmove_t medic_move_attackCable = {FRAME_attack33, FRAME_attack60, medic_frames_attackCable, medic_run};
|
||||
|
||||
|
@ -694,21 +694,6 @@ qboolean medic_checkattack (edict_t *self)
|
|||
}
|
||||
|
||||
|
||||
void SP_monster_medic_precache(void)
|
||||
{
|
||||
sound_idle1 = gi.soundindex ("medic/idle.wav");
|
||||
sound_pain1 = gi.soundindex ("medic/medpain1.wav");
|
||||
sound_pain2 = gi.soundindex ("medic/medpain2.wav");
|
||||
sound_die = gi.soundindex ("medic/meddeth1.wav");
|
||||
sound_sight = gi.soundindex ("medic/medsght1.wav");
|
||||
sound_search = gi.soundindex ("medic/medsrch1.wav");
|
||||
sound_hook_launch = gi.soundindex ("medic/medatck2.wav");
|
||||
sound_hook_hit = gi.soundindex ("medic/medatck3.wav");
|
||||
sound_hook_heal = gi.soundindex ("medic/medatck4.wav");
|
||||
sound_hook_retract = gi.soundindex ("medic/medatck5.wav");
|
||||
}
|
||||
|
||||
|
||||
/*QUAKED monster_medic (1 .5 0) (-16 -16 -24) (16 16 32) Ambush Trigger_Spawn Sight
|
||||
*/
|
||||
void SP_monster_medic (edict_t *self)
|
||||
|
@ -719,7 +704,16 @@ void SP_monster_medic (edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
SP_monster_medic_precache();
|
||||
sound_idle1 = gi.soundindex ("medic/idle.wav");
|
||||
sound_pain1 = gi.soundindex ("medic/medpain1.wav");
|
||||
sound_pain2 = gi.soundindex ("medic/medpain2.wav");
|
||||
sound_die = gi.soundindex ("medic/meddeth1.wav");
|
||||
sound_sight = gi.soundindex ("medic/medsght1.wav");
|
||||
sound_search = gi.soundindex ("medic/medsrch1.wav");
|
||||
sound_hook_launch = gi.soundindex ("medic/medatck2.wav");
|
||||
sound_hook_hit = gi.soundindex ("medic/medatck3.wav");
|
||||
sound_hook_heal = gi.soundindex ("medic/medatck4.wav");
|
||||
sound_hook_retract = gi.soundindex ("medic/medatck5.wav");
|
||||
|
||||
gi.soundindex ("medic/medatck1.wav");
|
||||
|
||||
|
@ -754,3 +748,4 @@ void SP_monster_medic (edict_t *self)
|
|||
|
||||
walkmonster_start (self);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue