mirror of
https://github.com/yquake2/zaero.git
synced 2024-11-24 21:01:43 +00:00
Hund, Items, Handler, Kamera und MTest aufgeräumt
This commit is contained in:
parent
4b73b52ebb
commit
3492d05a57
5 changed files with 247 additions and 331 deletions
|
@ -110,15 +110,8 @@ char *getSkinName(char *s, char *buffer)
|
|||
|
||||
void zCam_SetLocalCopy(struct edict_s *player, char *s)
|
||||
{
|
||||
// char model[255];
|
||||
|
||||
if(player->client->zCameraLocalEntity)
|
||||
{
|
||||
/*
|
||||
player->client->zCameraLocalEntity->s.modelindex = gi.modelindex(getSkinModel(s, model));
|
||||
player->client->zCameraLocalEntity->s.renderfx |= RF_CUSTOMSKIN;
|
||||
player->client->zCameraLocalEntity->s.skinnum = gi.imageindex(getSkinName(s, model));
|
||||
*/
|
||||
player->client->zCameraLocalEntity->s.modelindex = gi.modelindex("models/objects/gibs/head2/tris.md2");
|
||||
}
|
||||
}
|
||||
|
|
296
src/z_handler.c
296
src/z_handler.c
|
@ -10,8 +10,6 @@ handler handler
|
|||
#include "z_handler.h"
|
||||
|
||||
|
||||
|
||||
|
||||
void handler_standWhatNext (edict_t *self);
|
||||
void handler_standSitWhatNext (edict_t *self);
|
||||
void handler_stand (edict_t *self);
|
||||
|
@ -23,10 +21,6 @@ void hound_sight (edict_t *self, edict_t *other);
|
|||
void infantry_sight (edict_t *self, edict_t *other);
|
||||
|
||||
static int sound_attack;
|
||||
static int sound_scratch;
|
||||
static int sound_sitdown;
|
||||
static int sound_standup;
|
||||
|
||||
|
||||
void handler_sight (edict_t *self, edict_t *other)
|
||||
{
|
||||
|
@ -38,175 +32,160 @@ void handler_sight (edict_t *self, edict_t *other)
|
|||
// STAND
|
||||
//
|
||||
|
||||
|
||||
|
||||
mframe_t handler_frames_stand1 [] =
|
||||
{
|
||||
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 handler_stand1 = {FRAME_stand1start, FRAME_stand1end, handler_frames_stand1, handler_standSitWhatNext};
|
||||
|
||||
|
||||
void handler_scratch(edict_t *self)
|
||||
{
|
||||
// gi.sound (self, CHAN_VOICE, sound_scratch, 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
mframe_t handler_frames_stand2 [] =
|
||||
{
|
||||
ai_stand, 0, handler_scratch,
|
||||
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, handler_scratch},
|
||||
{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 handler_stand2 = {FRAME_stand2start, FRAME_stand2end, handler_frames_stand2, handler_standSitWhatNext};
|
||||
|
||||
|
||||
|
||||
|
||||
mframe_t handler_frames_stand3 [] =
|
||||
{
|
||||
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 handler_stand3 = {FRAME_stand3start, FRAME_stand3end, handler_frames_stand3, handler_standWhatNext};
|
||||
|
||||
|
||||
void handler_standup(edict_t *self)
|
||||
{
|
||||
// gi.sound (self, CHAN_VOICE, sound_standup, 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
|
||||
mframe_t handler_frames_stand4 [] =
|
||||
{
|
||||
ai_stand, 0, handler_standup,
|
||||
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, handler_standup},
|
||||
{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 handler_stand4 = {FRAME_stand4start, FRAME_stand4end, handler_frames_stand4, handler_standWhatNext};
|
||||
|
||||
|
||||
|
||||
void handler_sitdown(edict_t *self)
|
||||
{
|
||||
// gi.sound (self, CHAN_VOICE, sound_sitdown, 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
|
||||
mframe_t handler_frames_stand5 [] =
|
||||
{
|
||||
ai_stand, 0, handler_sitdown,
|
||||
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, handler_sitdown},
|
||||
{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 handler_stand5 = {FRAME_stand5start, FRAME_stand5end, handler_frames_stand5, handler_standSitWhatNext};
|
||||
|
||||
|
@ -255,8 +234,6 @@ void handler_standSitWhatNext (edict_t *self)
|
|||
|
||||
void handler_stand (edict_t *self)
|
||||
{
|
||||
float r = random();
|
||||
|
||||
if(self->monsterinfo.currentmove != &handler_stand1 &&
|
||||
self->monsterinfo.currentmove != &handler_stand2 &&
|
||||
self->monsterinfo.currentmove != &handler_stand3 &&
|
||||
|
@ -269,18 +246,14 @@ void handler_stand (edict_t *self)
|
|||
|
||||
|
||||
|
||||
|
||||
//
|
||||
// PAIN
|
||||
//
|
||||
|
||||
void handler_pain (edict_t *self, edict_t *other, float kick, int damage)
|
||||
{
|
||||
// if (self->health < (self->max_health / 2))
|
||||
// self->s.skinnum = 1;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// ATTACK and MELEE
|
||||
//
|
||||
|
@ -330,26 +303,26 @@ void StartCount(edict_t *self)
|
|||
|
||||
mframe_t handler_frames_attack1 [] =
|
||||
{
|
||||
ai_run, 0, StartCount,
|
||||
ai_run, 0, CheckForEnemy,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
{ai_run, 0, StartCount},
|
||||
{ai_run, 0, CheckForEnemy},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, CheckIdleLoop,
|
||||
ai_charge, 0, NULL,
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, CheckIdleLoop},
|
||||
{ai_charge, 0, NULL},
|
||||
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, handler_createHound,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 0, NULL,
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, handler_createHound},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 0, NULL},
|
||||
};
|
||||
mmove_t handler_move_attack1 = {FRAME_attack1Start, FRAME_attack1End, handler_frames_attack1, handler_ConvertToInfantry};
|
||||
|
||||
|
@ -363,10 +336,6 @@ void handler_attack (edict_t *self)
|
|||
self->powerarmor_time = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
===
|
||||
Death Stuff Starts
|
||||
|
@ -401,15 +370,9 @@ void SP_monster_hound_precache();
|
|||
|
||||
void SP_monster_handler_precache(void)
|
||||
{
|
||||
//SP_monster_infantry_precache();
|
||||
SP_monster_hound_precache();
|
||||
|
||||
sound_attack = gi.soundindex("monsters/guard/hhattack.wav");
|
||||
/*
|
||||
sound_scratch = gi.soundindex("monsters/guard/hhscratch.wav");
|
||||
sound_sitdown = gi.soundindex("monsters/guard/hhsitdown.wav");
|
||||
sound_standup = gi.soundindex("monsters/guard/hhstandup.wav");
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
@ -472,3 +435,4 @@ Z = -24 to 8
|
|||
|
||||
walkmonster_start (self);
|
||||
}
|
||||
|
||||
|
|
240
src/z_hound.c
240
src/z_hound.c
|
@ -43,26 +43,26 @@ void hound_sight (edict_t *self, edict_t *other)
|
|||
|
||||
mframe_t hound_frames_stand1 [] =
|
||||
{
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL, // 10
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL}, // 10
|
||||
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL}
|
||||
};
|
||||
mmove_t hound_stand1 = {FRAME_stand1start, FRAME_stand1end, hound_frames_stand1, hound_stand};
|
||||
|
||||
|
@ -70,29 +70,29 @@ mmove_t hound_stand1 = {FRAME_stand1start, FRAME_stand1end, hound_frames_stand1,
|
|||
|
||||
mframe_t hound_frames_stand2 [] =
|
||||
{
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL, // 10
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL}, // 10
|
||||
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL,
|
||||
ai_schoolStand, 0, NULL, // 20
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL},
|
||||
{ai_schoolStand, 0, NULL}, // 20
|
||||
|
||||
ai_schoolStand, 0, NULL
|
||||
{ai_schoolStand, 0, NULL}
|
||||
};
|
||||
mmove_t hound_stand2 = {FRAME_stand2start, FRAME_stand2end, hound_frames_stand2, hound_stand};
|
||||
|
||||
|
@ -117,13 +117,13 @@ void hound_stand (edict_t *self)
|
|||
|
||||
mframe_t hound_frames_run [] =
|
||||
{
|
||||
ai_schoolRun, 60, NULL,
|
||||
ai_schoolRun, 60, NULL,
|
||||
ai_schoolRun, 40, NULL,
|
||||
ai_schoolRun, 30, NULL,
|
||||
ai_schoolRun, 30, NULL,
|
||||
ai_schoolRun, 30, NULL,
|
||||
ai_schoolRun, 40, NULL
|
||||
{ai_schoolRun, 60, NULL},
|
||||
{ai_schoolRun, 60, NULL},
|
||||
{ai_schoolRun, 40, NULL},
|
||||
{ai_schoolRun, 30, NULL},
|
||||
{ai_schoolRun, 30, NULL},
|
||||
{ai_schoolRun, 30, NULL},
|
||||
{ai_schoolRun, 40, NULL}
|
||||
};
|
||||
mmove_t hound_move_run = {FRAME_runStart, FRAME_runEnd, hound_frames_run, NULL};
|
||||
|
||||
|
@ -143,14 +143,14 @@ void hound_run (edict_t *self)
|
|||
|
||||
mframe_t hound_frames_walk [] =
|
||||
{
|
||||
ai_schoolWalk, 7, NULL,
|
||||
ai_schoolWalk, 7, NULL,
|
||||
ai_schoolWalk, 7, NULL,
|
||||
ai_schoolWalk, 7, NULL,
|
||||
ai_schoolWalk, 7, NULL,
|
||||
ai_schoolWalk, 7, NULL,
|
||||
ai_schoolWalk, 7, NULL,
|
||||
ai_schoolWalk, 7, NULL
|
||||
{ai_schoolWalk, 7, NULL},
|
||||
{ai_schoolWalk, 7, NULL},
|
||||
{ai_schoolWalk, 7, NULL},
|
||||
{ai_schoolWalk, 7, NULL},
|
||||
{ai_schoolWalk, 7, NULL},
|
||||
{ai_schoolWalk, 7, NULL},
|
||||
{ai_schoolWalk, 7, NULL},
|
||||
{ai_schoolWalk, 7, NULL}
|
||||
};
|
||||
mmove_t hound_move_walk = {FRAME_walkStart, FRAME_walkEnd, hound_frames_walk, hound_walk};
|
||||
|
||||
|
@ -168,23 +168,23 @@ void hound_walk (edict_t *self)
|
|||
|
||||
mframe_t hound_frames_pain1 [] =
|
||||
{
|
||||
ai_move, 6, NULL,
|
||||
ai_move, 16, NULL,
|
||||
ai_move, -6, NULL,
|
||||
ai_move, -7, NULL,
|
||||
{ai_move, 6, NULL},
|
||||
{ai_move, 16, NULL},
|
||||
{ai_move, -6, NULL},
|
||||
{ai_move, -7, NULL},
|
||||
};
|
||||
mmove_t hound_move_pain1 = {FRAME_pain1Start, FRAME_pain1End, hound_frames_pain1, hound_run};
|
||||
|
||||
mframe_t hound_frames_pain2 [] =
|
||||
{
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 6, NULL,
|
||||
ai_move, 16, NULL,
|
||||
ai_move, -6, NULL,
|
||||
ai_move, -7, NULL,
|
||||
ai_move, 0, NULL,
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 6, NULL},
|
||||
{ai_move, 16, NULL},
|
||||
{ai_move, -6, NULL},
|
||||
{ai_move, -7, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
};
|
||||
mmove_t hound_move_pain2 = {FRAME_pain2Start, FRAME_pain2End, hound_frames_pain2, hound_run};
|
||||
|
||||
|
@ -241,29 +241,29 @@ void hound_bite2 (edict_t *self)
|
|||
|
||||
mframe_t hound_frames_attack1 [] =
|
||||
{
|
||||
ai_schoolCharge, 0, hound_launch,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, hound_bite,
|
||||
ai_schoolCharge, 0, hound_bite2
|
||||
{ai_schoolCharge, 0, hound_launch},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, hound_bite},
|
||||
{ai_schoolCharge, 0, hound_bite2}
|
||||
};
|
||||
mmove_t hound_move_attack1 = {FRAME_attack1Start, FRAME_attack1End, hound_frames_attack1, hound_run};
|
||||
|
||||
|
||||
mframe_t hound_frames_attack2 [] =
|
||||
{
|
||||
ai_schoolCharge, 0, hound_launch,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
ai_schoolCharge, 0, hound_bite,
|
||||
ai_schoolCharge, 0, hound_bite2,
|
||||
ai_schoolCharge, 0, hound_bite2,
|
||||
ai_schoolCharge, 0, hound_bite2,
|
||||
ai_schoolCharge, 0, NULL,
|
||||
{ai_schoolCharge, 0, hound_launch},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
{ai_schoolCharge, 0, hound_bite},
|
||||
{ai_schoolCharge, 0, hound_bite2},
|
||||
{ai_schoolCharge, 0, hound_bite2},
|
||||
{ai_schoolCharge, 0, hound_bite2},
|
||||
{ai_schoolCharge, 0, NULL},
|
||||
};
|
||||
mmove_t hound_move_attack2 = {FRAME_attack2Start, FRAME_attack2End, hound_frames_attack2, hound_run};
|
||||
|
||||
|
@ -280,13 +280,9 @@ void hound_attack (edict_t *self)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//
|
||||
// ATTACK
|
||||
//
|
||||
|
||||
|
||||
void hound_jump_touch (edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
|
||||
{
|
||||
if (self->health <= 0)
|
||||
|
@ -376,13 +372,13 @@ void hound_check_landing2 (edict_t *self)
|
|||
|
||||
mframe_t hound_frames_handlerjump [] =
|
||||
{
|
||||
ai_charge, 0, NULL,
|
||||
ai_charge, 20, hound_jump_takeoff,
|
||||
ai_move, 40, NULL,
|
||||
ai_move, 30, hound_check_landing2,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
{ai_charge, 0, NULL},
|
||||
{ai_charge, 20, hound_jump_takeoff},
|
||||
{ai_move, 40, NULL},
|
||||
{ai_move, 30, hound_check_landing2},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
};
|
||||
|
||||
|
||||
|
@ -392,13 +388,13 @@ mmove_t hound_move_handlerjump = {FRAME_hattack1Sep, FRAME_hattack1End, hound_fr
|
|||
|
||||
mframe_t hound_frames_jump [] =
|
||||
{
|
||||
ai_charge, 20, NULL,
|
||||
ai_charge, 20, hound_jump_takeoff,
|
||||
ai_move, 40, NULL,
|
||||
ai_move, 30, hound_check_landing,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL,
|
||||
ai_move, 0, NULL
|
||||
{ai_charge, 20, NULL},
|
||||
{ai_charge, 20, hound_jump_takeoff},
|
||||
{ai_move, 40, NULL},
|
||||
{ai_move, 30, hound_check_landing},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL},
|
||||
{ai_move, 0, NULL}
|
||||
};
|
||||
mmove_t hound_move_jump = {FRAME_leapStart, FRAME_leapEnd, hound_frames_jump, hound_run};
|
||||
|
||||
|
@ -407,15 +403,12 @@ void hound_jump (edict_t *self)
|
|||
self->monsterinfo.currentmove = &hound_move_jump;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
===
|
||||
attack check routines
|
||||
===
|
||||
*/
|
||||
|
||||
|
||||
|
||||
qboolean hound_check_melee (edict_t *self)
|
||||
{
|
||||
if (range (self, self->enemy) == RANGE_MELEE)
|
||||
|
@ -466,7 +459,6 @@ qboolean hound_checkattack (edict_t *self)
|
|||
if (hound_check_jump(self))
|
||||
{
|
||||
self->monsterinfo.attack_state = AS_MISSILE;
|
||||
// FIXME play a jump sound here
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -492,18 +484,18 @@ void hound_dead (edict_t *self)
|
|||
|
||||
mframe_t hound_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}
|
||||
};
|
||||
mmove_t hound_move_death = {FRAME_die1Start, FRAME_die1End, hound_frames_death, hound_dead};
|
||||
|
||||
|
@ -511,7 +503,7 @@ void hound_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage
|
|||
{
|
||||
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);
|
||||
|
@ -527,7 +519,7 @@ void hound_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;
|
||||
|
@ -620,8 +612,6 @@ void hound_createHound(edict_t *self, float healthPercent)
|
|||
|
||||
hound = G_Spawn();
|
||||
|
||||
//*hound = *self;
|
||||
|
||||
hound->s.modelindex = gi.modelindex ("models/monsters/guard/hound/tris.md2");
|
||||
VectorSet (hound->mins, -16, -16, -24);
|
||||
VectorSet (hound->maxs, 16, 16, 24);
|
||||
|
@ -663,12 +653,10 @@ void hound_createHound(edict_t *self, float healthPercent)
|
|||
hound->think = monster_think;
|
||||
hound->nextthink = level.time + FRAMETIME;
|
||||
|
||||
//monster_start(hound);
|
||||
|
||||
gi.linkentity (hound);
|
||||
|
||||
// move the fucker now!!!
|
||||
ai_move (hound, 20);
|
||||
// move the fucker now!!!
|
||||
ai_move (hound, 20);
|
||||
}
|
||||
|
||||
|
||||
|
|
33
src/z_item.c
33
src/z_item.c
|
@ -229,11 +229,6 @@ void Use_Visor (edict_t *ent, gitem_t *item)
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
=================
|
||||
EMP Nuke
|
||||
|
@ -287,7 +282,6 @@ void Weapon_EMPNuke (edict_t *ent)
|
|||
|
||||
void empnukeFinish(edict_t *ent)
|
||||
{
|
||||
// gi.sound(ent, CHAN_VOICE, gi.soundindex("items/empnuke/empdie.wav"), 1, ATTN_NORM, 0);
|
||||
G_FreeEdict(ent);
|
||||
}
|
||||
|
||||
|
@ -304,8 +298,6 @@ void empBlastAnim(edict_t *ent)
|
|||
ent->s.frame = 0;
|
||||
ent->s.skinnum = 0;
|
||||
|
||||
// ent->s.sound = gi.soundindex ("items/empnuke/empactive.wav");
|
||||
|
||||
ent->think = empnukeFinish;
|
||||
ent->nextthink = level.time + 30;
|
||||
}
|
||||
|
@ -320,7 +312,6 @@ void fire_empnuke(edict_t *ent, vec3_t center, int radius)
|
|||
{
|
||||
edict_t *empnuke;
|
||||
|
||||
// gi.sound(ent, CHAN_VOICE, gi.soundindex("items/empnuke/empfire.wav"), 1, ATTN_NORM, 0);
|
||||
gi.sound(ent, CHAN_VOICE, gi.soundindex("items/empnuke/emp_trg.wav"), 1, ATTN_NORM, 0);
|
||||
|
||||
empnuke = G_Spawn();
|
||||
|
@ -328,21 +319,13 @@ void fire_empnuke(edict_t *ent, vec3_t center, int radius)
|
|||
empnuke->dmg = radius;
|
||||
VectorCopy(center, empnuke->s.origin);
|
||||
empnuke->classname = "EMPNukeCenter";
|
||||
/// empnuke->svflags |= SVF_NOCLIENT;
|
||||
empnuke->movetype = MOVETYPE_NONE;
|
||||
empnuke->s.modelindex = gi.modelindex("models/objects/b_explode/tris.md2");
|
||||
empnuke->s.skinnum = 0;
|
||||
// empnuke->s.renderfx = RF_TRANSLUCENT | RF_FULLBRIGHT;
|
||||
// empnuke->s.renderfx = RF_TRANSLUCENT;
|
||||
|
||||
empnuke->think = empBlastAnim;
|
||||
empnuke->nextthink = level.time + FRAMETIME;
|
||||
|
||||
// empnuke->think = G_FreeEdict;
|
||||
// empnuke->nextthink = level.time + 30;
|
||||
gi.linkentity (empnuke);
|
||||
|
||||
// gi.sound(empnuke, CHAN_VOICE, gi.soundindex("items/empnuke/emp_exp.wav"), 1, ATTN_NORM, 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -367,16 +350,12 @@ qboolean EMPNukeCheck(edict_t *ent, vec3_t pos)
|
|||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
=================
|
||||
Plasma Shield
|
||||
=================
|
||||
*/
|
||||
|
||||
|
||||
|
||||
void PlasmaShield_die (edict_t *self)
|
||||
{
|
||||
if (deathmatch->value)
|
||||
|
@ -419,7 +398,6 @@ void Use_PlasmaShield (edict_t *ent, gitem_t *item)
|
|||
}
|
||||
|
||||
PlasmaShield = G_Spawn();
|
||||
// PlasmaShield->owner = ent;
|
||||
PlasmaShield->classname = "PlasmaShield";
|
||||
PlasmaShield->movetype = MOVETYPE_PUSH;
|
||||
PlasmaShield->solid = SOLID_BBOX;
|
||||
|
@ -432,7 +410,6 @@ void Use_PlasmaShield (edict_t *ent, gitem_t *item)
|
|||
|
||||
VectorMA (ent->s.origin, 50, forward, PlasmaShield->s.origin);
|
||||
|
||||
// fuge the bbox
|
||||
VectorScale(forward, 10, frontbottomleft);
|
||||
VectorMA(frontbottomleft, -30, right, frontbottomleft);
|
||||
VectorMA(frontbottomleft, -30, up, frontbottomleft);
|
||||
|
@ -509,10 +486,6 @@ void SP_misc_crate_small(edict_t *self)
|
|||
setupCrate(self);
|
||||
}
|
||||
|
||||
/*******************************************
|
||||
func_barrier
|
||||
*/
|
||||
|
||||
qboolean thruBarrier(edict_t *targ, edict_t *inflictor)
|
||||
{
|
||||
trace_t tr;
|
||||
|
@ -534,9 +507,9 @@ qboolean thruBarrier(edict_t *targ, edict_t *inflictor)
|
|||
|
||||
e = tr.ent;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
void barrier_think(edict_t *self)
|
||||
{
|
||||
if (self->timeout > level.time)
|
||||
|
@ -592,9 +565,6 @@ void SP_func_barrier(edict_t *self)
|
|||
gi.linkentity(self);
|
||||
}
|
||||
|
||||
/*********************************************
|
||||
misc_seat
|
||||
*/
|
||||
void SP_misc_seat(edict_t *self)
|
||||
{
|
||||
self->s.modelindex = gi.modelindex("models/objects/seat/tris.md2");
|
||||
|
@ -604,3 +574,4 @@ void SP_misc_seat(edict_t *self)
|
|||
// make this pushable
|
||||
setupCrate(self);
|
||||
}
|
||||
|
||||
|
|
|
@ -557,5 +557,5 @@ void Drop_TestItem (edict_t *ent, gitem_t *item)
|
|||
ValidateSelectedItem (ent);
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue