game: fix save of quake monsters

This commit is contained in:
Denis Pauk 2024-05-15 00:43:42 +03:00
parent 5709e2c746
commit e00ab4ffde
17 changed files with 598 additions and 280 deletions

View file

@ -322,7 +322,7 @@ The build dependencies can be installed with:
curl sdl2`
* On Debian based distributions: `apt install build-essential
libgl1-mesa-dev libsdl2-dev libopenal-dev libcurl4-openssl-dev
libavformat-dev libvulkan-dev`
libavformat-dev libswscale-dev libvulkan-dev`
* On FreeBSD: `pkg install gmake libGL sdl2 openal-soft curl`
* On NetBSD: `pkgin install gmake SDL2 openal-soft curl`
* On OpenBSD: `pkg_add gmake sdl2 openal curl`

View file

@ -1747,7 +1747,7 @@ qboolean Pickup_Sphere(edict_t * ent, edict_t * other);
* implementation. (-Wmissing-prototypes )
*
*/
#if 0
#if 1
#include "../savegame/savegame.h"
#include "../savegame/tables/gamefunc_decs.h"
#endif

View file

@ -49,7 +49,8 @@ mmove_t army_move_stand =
NULL
};
void army_stand(edict_t *self)
void
army_stand(edict_t *self)
{
self->monsterinfo.currentmove = &army_move_stand;
}
@ -75,12 +76,14 @@ mmove_t army_move_run =
NULL
};
void army_run(edict_t *self)
void
army_run(edict_t *self)
{
self->monsterinfo.currentmove = &army_move_run;
}
void FireArmy(edict_t *self)
static void
army_fire(edict_t *self)
{
vec3_t start;
vec3_t end;
@ -104,7 +107,7 @@ static mframe_t army_frames_attack [] =
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, FireArmy},
{ai_charge, 0, army_fire},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
@ -119,19 +122,22 @@ mmove_t army_move_attack =
army_run
};
void army_attack(edict_t *self)
void
army_attack(edict_t *self)
{
self->monsterinfo.currentmove = &army_move_attack;
}
// Sight
void army_sight(edict_t *self, edict_t *other /* unused */)
void
army_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
// Search
void army_search(edict_t *self)
void
army_search(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
@ -212,7 +218,8 @@ mmove_t army_move_pain3 =
army_run
};
void army_pain(edict_t *self, edict_t *other /* unused */,
void
army_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
float r;
@ -244,7 +251,8 @@ void army_pain(edict_t *self, edict_t *other /* unused */,
}
}
void army_dead(edict_t *self)
void
army_dead(edict_t *self)
{
VectorSet(self->mins, -16, -16, -24);
VectorSet(self->maxs, 16, 16, -8);
@ -303,7 +311,8 @@ mmove_t army_move_death2 =
army_dead
};
void army_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
army_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -346,7 +355,8 @@ void army_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage,
}
}
void SP_monster_army(edict_t *self)
void
SP_monster_army(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/army/tris.md2");
VectorSet(self->mins, -16, -16, -24);
@ -376,7 +386,7 @@ void SP_monster_army(edict_t *self)
self->pain = army_pain;
self->die = army_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -57,7 +57,8 @@ mmove_t demon_move_stand =
NULL
};
void demon_stand(edict_t *self)
void
demon_stand(edict_t *self)
{
self->monsterinfo.currentmove = &demon_move_stand;
}
@ -81,12 +82,14 @@ mmove_t demon_move_run =
NULL
};
void demon_run(edict_t *self)
void
demon_run(edict_t *self)
{
self->monsterinfo.currentmove = &demon_move_run;
}
qboolean CheckDemonJump(edict_t *self)
static qboolean
check_demon_jump(edict_t *self)
{
vec3_t dir;
float distance;
@ -113,7 +116,8 @@ qboolean CheckDemonJump(edict_t *self)
return true;
};
void DemonJumpTouch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void
demon_jump_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
if (self->health < 1)
return;
@ -141,7 +145,8 @@ void DemonJumpTouch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *
}
}
void DemonJump(edict_t *self)
static void
demon_jump(edict_t *self)
{
vec3_t forward;
@ -151,10 +156,11 @@ void DemonJump(edict_t *self)
self->velocity[2] = 250;
self->groundentity = NULL;
self->touch = DemonJumpTouch;
self->touch = demon_jump_touch;
}
void demon_roar(edict_t *self)
static void
demon_roar(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_jump, 1, ATTN_NORM, 0);
}
@ -165,7 +171,7 @@ static mframe_t demon_frames_jump [] =
{ai_charge, 0, demon_roar},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, DemonJump},
{ai_charge, 0, demon_jump},
{ai_move, 0, NULL},
{ai_move, 0, NULL},
@ -185,13 +191,17 @@ mmove_t demon_move_jump =
demon_run
};
void demon_attack(edict_t *self)
void
demon_attack(edict_t *self)
{
//if (CheckDemonJump(self))
self->monsterinfo.currentmove = &demon_move_jump;
if (check_demon_jump(self))
{
self->monsterinfo.currentmove = &demon_move_jump;
}
}
void DemonMelee(edict_t *self)
static void
demon_melee_step(edict_t *self)
{
vec3_t dir;
static vec3_t aim = {100, 0, -24};
@ -217,14 +227,14 @@ static mframe_t demon_frames_melee [] =
{ai_charge, 0, NULL},
{ai_charge, 1, NULL},
{ai_charge, 14, DemonMelee},
{ai_charge, 14, demon_melee_step},
{ai_charge, 1, NULL},
{ai_charge, 6, NULL},
{ai_charge, 8, NULL},
{ai_charge, 4, NULL},
{ai_charge, 2, NULL},
{ai_charge, 12, DemonMelee},
{ai_charge, 12, demon_melee_step},
{ai_charge, 5, NULL},
{ai_charge, 8, NULL},
@ -239,7 +249,8 @@ mmove_t demon_move_melee =
demon_run
};
void demon_melee(edict_t *self)
void
demon_melee(edict_t *self)
{
self->monsterinfo.currentmove = &demon_move_melee;
}
@ -263,12 +274,13 @@ mmove_t demon_move_pain =
demon_run
};
void demon_pain(edict_t *self, edict_t *other, float kick, int damage)
void
demon_pain(edict_t *self, edict_t *other, float kick, int damage)
{
// decino: No pain animations in Nightmare mode
if (skill->value == SKILL_HARDPLUS)
return;
if (self->touch == DemonJumpTouch)
if (self->touch == demon_jump_touch)
return;
if (self->pain_debounce_time > level.time)
return;
@ -280,7 +292,8 @@ void demon_pain(edict_t *self, edict_t *other, float kick, int damage)
self->monsterinfo.currentmove = &demon_move_pain;
}
void demon_dead(edict_t *self)
void
demon_dead(edict_t *self)
{
VectorSet(self->mins, -32, -32, -24);
VectorSet(self->maxs, 32, 32, -8);
@ -313,7 +326,8 @@ mmove_t demon_move_die =
demon_dead
};
void demon_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
demon_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -340,18 +354,21 @@ void demon_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage,
}
// Sight
void demon_sight(edict_t *self, edict_t *other /* unused */)
void
demon_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound (self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
// Search
void demon_search(edict_t *self)
void
demon_search(edict_t *self)
{
gi.sound (self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
void SP_monster_demon(edict_t *self)
void
SP_monster_demon(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/demon/tris.md2");
VectorSet(self->mins, -32, -32, -24);
@ -383,7 +400,7 @@ void SP_monster_demon(edict_t *self)
self->pain = demon_pain;
self->die = demon_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -52,7 +52,8 @@ mmove_t dog_move_stand =
NULL
};
void dog_stand(edict_t *self)
void
dog_stand(edict_t *self)
{
self->monsterinfo.currentmove = &dog_move_stand;
}
@ -83,12 +84,14 @@ mmove_t dog_move_run =
NULL
};
void dog_run(edict_t *self)
void
dog_run(edict_t *self)
{
self->monsterinfo.currentmove = &dog_move_run;
}
void DogLeapTouch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void
dog_leap_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
if (self->health < 1)
return;
@ -114,7 +117,8 @@ void DogLeapTouch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *su
}
}
void DogLeap(edict_t *self)
static void
dog_leap_step(edict_t *self)
{
vec3_t forward;
@ -124,14 +128,14 @@ void DogLeap(edict_t *self)
self->velocity[2] = 200;
self->groundentity = NULL;
self->touch = DogLeapTouch;
self->touch = dog_leap_touch;
}
// Leap
static mframe_t dog_frames_leap [] =
{
{ai_charge, 0, NULL},
{ai_charge, 0, DogLeap},
{ai_charge, 0, dog_leap_step},
{ai_move, 0, NULL},
{ai_move, 0, NULL},
@ -150,12 +154,14 @@ mmove_t dog_move_leap =
dog_run
};
void dog_leap(edict_t *self)
void
dog_leap(edict_t *self)
{
self->monsterinfo.currentmove = &dog_move_leap;
}
void DogBite(edict_t *self)
static void
dogbite_step(edict_t *self)
{
vec3_t dir;
static vec3_t aim = {100, 0, -24};
@ -180,7 +186,7 @@ static mframe_t dog_frames_melee [] =
{ai_charge, 10, NULL},
{ai_charge, 10, NULL},
{ai_charge, 10, NULL},
{ai_charge, 10, DogBite},
{ai_charge, 10, dogbite_step},
{ai_charge, 10, NULL},
{ai_charge, 10, NULL},
@ -195,19 +201,22 @@ mmove_t dog_move_melee =
dog_run
};
void dog_melee(edict_t *self)
void
dog_melee(edict_t *self)
{
self->monsterinfo.currentmove = &dog_move_melee;
}
// Sight
void dog_sight(edict_t *self, edict_t *other /* unused */)
void
dog_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
// Search
void dog_search(edict_t *self)
void
dog_search(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
@ -262,7 +271,8 @@ mmove_t dog_move_pain2 =
dog_run
};
void dog_pain(edict_t *self, edict_t *other /* unused */,
void
dog_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
// decino: No pain animations in Nightmare mode
@ -275,7 +285,8 @@ void dog_pain(edict_t *self, edict_t *other /* unused */,
gi.sound(self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0);
}
void dog_dead(edict_t *self)
void
dog_dead(edict_t *self)
{
VectorSet(self->mins, -32, -32, -24);
VectorSet(self->maxs, 32, 32, -8);
@ -331,7 +342,8 @@ mmove_t dog_move_die2 =
dog_dead
};
void dog_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
dog_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -360,7 +372,8 @@ void dog_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, v
self->monsterinfo.currentmove = &dog_move_die2;
}
void SP_monster_dog(edict_t *self)
void
SP_monster_dog(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/dog/tris.md2");
VectorSet(self->mins, -32, -32, -24);
@ -382,7 +395,7 @@ void SP_monster_dog(edict_t *self)
self->monsterinfo.stand = dog_stand;
self->monsterinfo.walk = dog_run;
self->monsterinfo.run = dog_run;
//self->monsterinfo.attack = dog_leap;
self->monsterinfo.attack = dog_leap;
self->monsterinfo.melee = dog_melee;
self->monsterinfo.sight = dog_sight;
self->monsterinfo.search = dog_search;
@ -390,7 +403,7 @@ void SP_monster_dog(edict_t *self)
self->pain = dog_pain;
self->die = dog_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -199,7 +199,7 @@ fire_enfbolt(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
}
static void
FireEnforcerBolt(edict_t *self)
enforcer_fire_bolt(edict_t *self)
{
vec3_t forward, right;
vec3_t start;
@ -222,7 +222,7 @@ FireEnforcerBolt(edict_t *self)
static mframe_t enforcer_frames_attack2 [] =
{
{ai_charge, 0, NULL},
{ai_charge, 0, FireEnforcerBolt},
{ai_charge, 0, enforcer_fire_bolt},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
@ -252,7 +252,7 @@ static mframe_t enforcer_frames_attack1 [] =
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, FireEnforcerBolt},
{ai_charge, 0, enforcer_fire_bolt},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL}
};
@ -554,7 +554,7 @@ SP_monster_enforcer(edict_t *self)
self->pain = enforcer_pain;
self->die = enforcer_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -59,7 +59,8 @@ mmove_t fish_move_stand =
NULL
};
void fish_stand(edict_t *self)
void
fish_stand(edict_t *self)
{
self->monsterinfo.currentmove = &fish_move_stand;
}
@ -98,12 +99,14 @@ mmove_t fish_move_run =
NULL
};
void fish_run(edict_t *self)
void
fish_run(edict_t *self)
{
self->monsterinfo.currentmove = &fish_move_run;
}
void FishBite(edict_t *self)
static void
fish_bite_step(edict_t *self)
{
vec3_t dir;
static vec3_t aim = {100, 0, 0};
@ -127,7 +130,7 @@ static mframe_t fish_frames_melee [] =
{
{ai_run, 10, NULL},
{ai_run, 10, NULL},
{ai_run, 0, FishBite},
{ai_run, 0, fish_bite_step},
{ai_run, 10, NULL},
{ai_run, 10, NULL},
@ -135,14 +138,14 @@ static mframe_t fish_frames_melee [] =
{ai_run, 10, NULL},
{ai_run, 10, NULL},
{ai_run, 0, FishBite},
{ai_run, 0, fish_bite_step},
{ai_run, 10, NULL},
{ai_run, 10, NULL},
{ai_run, 10, NULL},
{ai_run, 10, NULL},
{ai_run, 10, NULL},
{ai_run, 0, FishBite},
{ai_run, 0, fish_bite_step},
{ai_run, 10, NULL},
{ai_run, 10, NULL},
@ -156,18 +159,21 @@ mmove_t fish_move_melee =
fish_run
};
void fish_melee(edict_t *self)
void
fish_melee(edict_t *self)
{
self->monsterinfo.currentmove = &fish_move_melee;
}
// Search
void fish_search(edict_t *self)
void
fish_search(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
void fish_dead(edict_t *self)
void
fish_dead(edict_t *self)
{
VectorSet(self->mins, -16, -16, -24);
VectorSet(self->maxs, 16, 16, -8);
@ -215,7 +221,8 @@ mmove_t fish_move_death =
fish_dead
};
void fish_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
fish_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -274,7 +281,8 @@ mmove_t fish_move_pain =
fish_run
};
void fish_pain(edict_t *self, edict_t *other /* unused */,
void
fish_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
if (level.time < self->pain_debounce_time)
@ -287,7 +295,8 @@ void fish_pain(edict_t *self, edict_t *other /* unused */,
self->monsterinfo.currentmove = &fish_move_pain;
}
void SP_monster_fish(edict_t *self)
void
SP_monster_fish(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/fish/tris.md2");
VectorSet(self->mins, -16, -16, -24);
@ -313,7 +322,7 @@ void SP_monster_fish(edict_t *self)
self->pain = fish_pain;
self->die = fish_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
flymonster_start(self);

View file

@ -30,7 +30,7 @@ static int sound_search;
static int sound_pain;
void hknight_run(edict_t *self);
void SwingSword(edict_t *self);
void swing_sword_step(edict_t *self);
// Stand
static mframe_t hknight_frames_stand [] =
@ -55,7 +55,8 @@ mmove_t hknight_move_stand =
NULL
};
void hknight_stand(edict_t *self)
void
hknight_stand(edict_t *self)
{
self->monsterinfo.currentmove = &hknight_move_stand;
}
@ -69,13 +70,13 @@ static mframe_t hknight_frames_charge [] =
{ai_charge, 16, NULL},
{ai_charge, 14, NULL},
{ai_charge, 20, SwingSword},
{ai_charge, 21, SwingSword},
{ai_charge, 13, SwingSword},
{ai_charge, 20, swing_sword_step},
{ai_charge, 21, swing_sword_step},
{ai_charge, 13, swing_sword_step},
{ai_charge, 20, SwingSword},
{ai_charge, 20, SwingSword},
{ai_charge, 18, SwingSword},
{ai_charge, 20, swing_sword_step},
{ai_charge, 20, swing_sword_step},
{ai_charge, 18, swing_sword_step},
{ai_charge, 16, NULL},
{ai_charge, 20, NULL},
@ -91,7 +92,8 @@ mmove_t hknight_move_charge =
hknight_run
};
qboolean CheckForCharge(edict_t *self)
static qboolean
check_for_charge(edict_t *self)
{
if (!self->enemy)
return false;
@ -125,12 +127,14 @@ mmove_t hknight_move_run =
NULL
};
void hknight_run(edict_t *self)
void
hknight_run(edict_t *self)
{
self->monsterinfo.currentmove = &hknight_move_run;
}
void hknight_reset_magic(edict_t *self)
static void
hknight_reset_magic(edict_t *self)
{
self->radius_dmg = -2;
@ -140,7 +144,8 @@ void hknight_reset_magic(edict_t *self)
}
}
void magic_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void
magic_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
if (other == self->owner)
{
@ -169,7 +174,8 @@ void magic_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *sur
G_FreeEdict(self);
}
void fire_magic(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
static void
fire_magic(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
{
edict_t *magic;
trace_t tr;
@ -212,7 +218,8 @@ void fire_magic(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
gi.sound(self, CHAN_WEAPON, sound_attack, 1, ATTN_NORM, 0);
}
void FireMagic(edict_t *self)
static void
fire_magic_step(edict_t *self)
{
vec3_t dir;
@ -233,13 +240,13 @@ static mframe_t hknight_frames_attack [] =
{ai_charge, 0, NULL},
{ai_charge, 0, hknight_reset_magic},
{ai_charge, 0, FireMagic},
{ai_charge, 0, FireMagic},
{ai_charge, 0, FireMagic},
{ai_charge, 0, fire_magic_step},
{ai_charge, 0, fire_magic_step},
{ai_charge, 0, fire_magic_step},
{ai_charge, 0, FireMagic},
{ai_charge, 0, FireMagic},
{ai_charge, 0, FireMagic}
{ai_charge, 0, fire_magic_step},
{ai_charge, 0, fire_magic_step},
{ai_charge, 0, fire_magic_step}
};
mmove_t hknight_move_attack =
{
@ -249,9 +256,10 @@ mmove_t hknight_move_attack =
hknight_run
};
void hknight_attack(edict_t *self)
void
hknight_attack(edict_t *self)
{
if (CheckForCharge(self))
if (check_for_charge(self))
self->monsterinfo.currentmove = &hknight_move_charge;
else if (self->monsterinfo.attack_finished < level.time)
self->monsterinfo.currentmove = &hknight_move_attack;
@ -267,12 +275,12 @@ static mframe_t hknight_frames_slice [] =
{ai_charge, 13, NULL},
{ai_charge, 4, NULL},
{ai_charge, 7, SwingSword},
{ai_charge, 15, SwingSword},
{ai_charge, 8, SwingSword},
{ai_charge, 2, SwingSword},
{ai_charge, 7, swing_sword_step},
{ai_charge, 15, swing_sword_step},
{ai_charge, 8, swing_sword_step},
{ai_charge, 2, swing_sword_step},
{ai_charge, 0, SwingSword},
{ai_charge, 0, swing_sword_step},
{ai_charge, 3, NULL}
};
mmove_t hknight_move_slice =
@ -291,12 +299,12 @@ static mframe_t hknight_frames_smash [] =
{ai_charge, 9, NULL},
{ai_charge, 11, NULL},
{ai_charge, 10, SwingSword},
{ai_charge, 7, SwingSword},
{ai_charge, 12, SwingSword},
{ai_charge, 2, SwingSword},
{ai_charge, 10, swing_sword_step},
{ai_charge, 7, swing_sword_step},
{ai_charge, 12, swing_sword_step},
{ai_charge, 2, swing_sword_step},
{ai_charge, 3, SwingSword},
{ai_charge, 3, swing_sword_step},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL}
};
@ -314,26 +322,26 @@ static mframe_t hknight_frames_watk [] =
{ai_charge, 2, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, SwingSword},
{ai_charge, 0, swing_sword_step},
{ai_charge, 0, SwingSword},
{ai_charge, 0, SwingSword},
{ai_charge, 0, swing_sword_step},
{ai_charge, 0, swing_sword_step},
{ai_charge, 1, NULL},
{ai_charge, 4, NULL},
{ai_charge, 5, NULL},
{ai_charge, 3, SwingSword},
{ai_charge, 2, SwingSword},
{ai_charge, 2, SwingSword},
{ai_charge, 3, swing_sword_step},
{ai_charge, 2, swing_sword_step},
{ai_charge, 2, swing_sword_step},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 1, NULL},
{ai_charge, 1, SwingSword},
{ai_charge, 3, SwingSword},
{ai_charge, 4, SwingSword},
{ai_charge, 1, swing_sword_step},
{ai_charge, 3, swing_sword_step},
{ai_charge, 4, swing_sword_step},
{ai_charge, 6, NULL},
{ai_charge, 7, NULL},
@ -349,7 +357,8 @@ mmove_t hknight_move_watk =
};
// Melee
void hknight_melee(edict_t *self)
void
hknight_melee(edict_t *self)
{
self->dmg_radius++;
@ -383,7 +392,8 @@ mmove_t hknight_move_pain =
hknight_run
};
void hknight_pain(edict_t *self, edict_t *other, float kick, int damage)
void
hknight_pain(edict_t *self, edict_t *other, float kick, int damage)
{
// decino: No pain animations in Nightmare mode
if (skill->value == SKILL_HARDPLUS)
@ -405,7 +415,8 @@ void hknight_pain(edict_t *self, edict_t *other, float kick, int damage)
gi.sound(self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0);
}
void hknight_dead(edict_t *self)
void
hknight_dead(edict_t *self)
{
VectorSet(self->mins, -16, -16, -24);
VectorSet(self->maxs, 16, 16, -8);
@ -464,7 +475,8 @@ mmove_t hknight_move_die2 =
hknight_dead
};
void hknight_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
hknight_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -494,18 +506,21 @@ void hknight_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damag
}
// Sight
void hknight_sight(edict_t *self, edict_t *other /* unused */)
void
hknight_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
// Search
void hknight_search(edict_t *self)
void
hknight_search(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
void SP_monster_hknight(edict_t *self)
void
SP_monster_hknight(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/hknight/tris.md2");
VectorSet(self->mins, -16, -16, -24);
@ -537,7 +552,7 @@ void SP_monster_hknight(edict_t *self)
self->pain = hknight_pain;
self->die = hknight_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -53,7 +53,8 @@ mmove_t knight_move_stand =
NULL
};
void knight_stand(edict_t *self)
void
knight_stand(edict_t *self)
{
self->monsterinfo.currentmove = &knight_move_stand;
}
@ -79,12 +80,14 @@ mmove_t knight_move_run =
NULL
};
void knight_run(edict_t *self)
void
knight_run(edict_t *self)
{
self->monsterinfo.currentmove = &knight_move_run;
}
void knight_attack_swing(edict_t *self)
static void
knight_attack_swing(edict_t *self)
{
if (random() > 0.5)
{
@ -96,7 +99,8 @@ void knight_attack_swing(edict_t *self)
}
}
void SwingSword(edict_t *self)
void
swing_sword_step(edict_t *self)
{
vec3_t dir;
static vec3_t aim = {100, 0, -24};
@ -127,12 +131,12 @@ static mframe_t knight_frames_attack [] =
{ai_charge, 13, NULL},
{ai_charge, 7, NULL},
{ai_charge, 16, SwingSword},
{ai_charge, 20, SwingSword},
{ai_charge, 14, SwingSword},
{ai_charge, 6, SwingSword},
{ai_charge, 16, swing_sword_step},
{ai_charge, 20, swing_sword_step},
{ai_charge, 14, swing_sword_step},
{ai_charge, 6, swing_sword_step},
{ai_charge, 14, SwingSword},
{ai_charge, 14, swing_sword_step},
{ai_charge, 10, NULL},
{ai_charge, 7, NULL}
};
@ -144,7 +148,8 @@ mmove_t knight_move_attack =
knight_run
};
void knight_attack(edict_t *self)
void
knight_attack(edict_t *self)
{
if (self->enemy && realrange(self, self->enemy) < (MELEE_DISTANCE * 4))
{
@ -156,7 +161,8 @@ void knight_attack(edict_t *self)
}
}
void knight_melee_swing(edict_t *self)
static void
knight_melee_swing(edict_t *self)
{
gi.sound(self, CHAN_WEAPON, sound_melee1, 1, ATTN_NORM, 0);
}
@ -170,9 +176,9 @@ static mframe_t knight_frames_melee [] =
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 4, SwingSword},
{ai_charge, 4, SwingSword},
{ai_charge, 1, SwingSword},
{ai_charge, 4, swing_sword_step},
{ai_charge, 4, swing_sword_step},
{ai_charge, 1, swing_sword_step},
{ai_charge, 3, NULL},
{ai_charge, 1, NULL},
@ -186,7 +192,8 @@ mmove_t knight_move_melee =
knight_run
};
void knight_melee(edict_t *self)
void
knight_melee(edict_t *self)
{
self->monsterinfo.currentmove = &knight_move_melee;
}
@ -231,7 +238,8 @@ mmove_t knight_move_pain2 =
knight_run
};
void knight_pain(edict_t *self, edict_t *other /* unused */,
void
knight_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
// decino: No pain animations in Nightmare mode
@ -247,7 +255,8 @@ void knight_pain(edict_t *self, edict_t *other /* unused */,
gi.sound (self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0);
}
void knight_dead(edict_t *self)
void
knight_dead(edict_t *self)
{
VectorSet(self->mins, -16, -16, -24);
VectorSet(self->maxs, 16, 16, -8);
@ -306,7 +315,8 @@ mmove_t knight_move_die2 =
knight_dead
};
void knight_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
knight_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -336,18 +346,21 @@ void knight_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage
}
// Search
void knight_search(edict_t *self)
void
knight_search(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
// Sight
void knight_sight(edict_t *self, edict_t *other /* unused */)
void
knight_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
void SP_monster_knight(edict_t *self)
void
SP_monster_knight(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/knight/tris.md2");
VectorSet(self->mins, -16, -16, -24);
@ -370,7 +383,7 @@ void SP_monster_knight(edict_t *self)
self->monsterinfo.stand = knight_stand;
self->monsterinfo.walk = knight_run;
self->monsterinfo.run = knight_run;
//self->monsterinfo.attack = knight_attack;
self->monsterinfo.attack = knight_attack;
self->monsterinfo.melee = knight_melee;
self->monsterinfo.sight = knight_sight;
self->monsterinfo.search = knight_search;
@ -378,7 +391,7 @@ void SP_monster_knight(edict_t *self)
self->pain = knight_pain;
self->die = knight_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -29,7 +29,8 @@ static int sound_search;
static int sound_idle;
static int sound_pain;
void ogre_idle(edict_t *self)
static void
ogre_idle(edict_t *self)
{
if (random() < 0.2)
gi.sound(self, CHAN_VOICE, sound_idle, 1, ATTN_NORM, 0);
@ -58,7 +59,8 @@ mmove_t ogre_move_stand =
NULL
};
void ogre_stand(edict_t *self)
void
ogre_stand(edict_t *self)
{
self->monsterinfo.currentmove = &ogre_move_stand;
}
@ -84,12 +86,14 @@ mmove_t ogre_move_run =
NULL
};
void ogre_run(edict_t *self)
void
ogre_run(edict_t *self)
{
self->monsterinfo.currentmove = &ogre_move_run;
}
void OgreChainsaw(edict_t *self)
static void
OgreChainsaw(edict_t *self)
{
vec3_t dir;
static vec3_t aim = {100, 0, -24};
@ -165,7 +169,8 @@ mmove_t ogre_move_swing =
};
// Melee
void ogre_melee(edict_t *self)
void
ogre_melee(edict_t *self)
{
if (random() > 0.5)
self->monsterinfo.currentmove = &ogre_move_smash;
@ -174,7 +179,8 @@ void ogre_melee(edict_t *self)
gi.sound(self, CHAN_WEAPON, sound_melee, 1, ATTN_NORM, 0);
}
void FireOgreGrenade(edict_t *self)
static void
FireOgreGrenade(edict_t *self)
{
vec3_t start;
vec3_t forward, right;
@ -207,7 +213,8 @@ mmove_t ogre_move_attack =
ogre_run
};
void ogre_attack(edict_t *self)
void
ogre_attack(edict_t *self)
{
self->monsterinfo.currentmove = &ogre_move_attack;
}
@ -326,7 +333,8 @@ mmove_t ogre_move_pain5 =
};
// Pain
void ogre_pain(edict_t *self, edict_t *other /* unused */,
void
ogre_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
float r;
@ -366,7 +374,8 @@ void ogre_pain(edict_t *self, edict_t *other /* unused */,
}
}
void ogre_dead(edict_t *self)
void
ogre_dead(edict_t *self)
{
VectorSet(self->mins, -32, -32, -24);
VectorSet(self->maxs, 32, 32, -8);
@ -430,7 +439,8 @@ mmove_t ogre_move_death2 =
};
// Death
void ogre_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
ogre_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -460,18 +470,21 @@ void ogre_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage,
}
// Sight
void ogre_sight(edict_t *self, edict_t *other /* unused */)
void
ogre_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
// Search
void ogre_search(edict_t *self)
void
ogre_search(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
void SP_monster_ogre(edict_t *self)
void
SP_monster_ogre(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/ogre/tris.md2");
VectorSet(self->mins, -32, -32, -24);
@ -503,7 +516,7 @@ void SP_monster_ogre(edict_t *self)
self->pain = ogre_pain;
self->die = ogre_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -42,7 +42,8 @@ mmove_t shalrath_move_stand =
NULL
};
void shalrath_stand(edict_t *self)
void
shalrath_stand(edict_t *self)
{
self->monsterinfo.currentmove = &shalrath_move_stand;
}
@ -73,17 +74,20 @@ mmove_t shalrath_move_run =
NULL
};
void shalrath_run(edict_t *self)
void
shalrath_run(edict_t *self)
{
self->monsterinfo.currentmove = &shalrath_move_run;
}
void shalrath_roar(edict_t *self)
static void
shalrath_roar(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_attack, 1, ATTN_NORM, 0);
}
void shalrath_pod_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void
shalrath_pod_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
if (other == self->owner)
return;
@ -99,7 +103,8 @@ void shalrath_pod_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface
G_FreeEdict(self);
}
void shalrath_pod_home(edict_t *self)
void
shalrath_pod_home(edict_t *self)
{
static qboolean think = false;
vec3_t end;
@ -142,7 +147,8 @@ void shalrath_pod_home(edict_t *self)
think = !think;
}
void fire_shalrath_pod(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
static void
fire_shalrath_pod(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
{
edict_t *pod;
@ -176,7 +182,8 @@ void fire_shalrath_pod(edict_t *self, vec3_t start, vec3_t dir, int damage, int
gi.sound(self, CHAN_WEAPON, sound_fire, 1, ATTN_NORM, 0);
}
void FireShalrathPod(edict_t *self)
static void
FireShalrathPod(edict_t *self)
{
vec3_t forward, right;
vec3_t start;
@ -220,7 +227,8 @@ mmove_t shalrath_move_attack =
shalrath_run
};
void shalrath_attack(edict_t *self)
void
shalrath_attack(edict_t *self)
{
self->monsterinfo.currentmove = &shalrath_move_attack;
}
@ -243,7 +251,8 @@ mmove_t shalrath_move_pain =
shalrath_run
};
void shalrath_pain(edict_t *self, edict_t *other /* unused */,
void
shalrath_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
// decino: No pain animations in Nightmare mode
@ -257,7 +266,8 @@ void shalrath_pain(edict_t *self, edict_t *other /* unused */,
gi.sound(self, CHAN_VOICE, sound_pain, 1, ATTN_NORM, 0);
}
void shalrath_dead(edict_t *self)
void
shalrath_dead(edict_t *self)
{
VectorSet(self->mins, -32, -32, -24);
VectorSet(self->maxs, 32, 32, -8);
@ -287,7 +297,8 @@ mmove_t shalrath_move_death =
shalrath_dead
};
void shalrath_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
shalrath_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -313,18 +324,21 @@ void shalrath_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int dama
}
// Sight
void shalrath_sight(edict_t *self, edict_t *other /* unused */)
void
shalrath_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
// Search
void shalrath_search(edict_t *self)
void
shalrath_search(edict_t *self)
{
gi.sound(self, CHAN_VOICE, sound_search, 1, ATTN_NORM, 0);
}
void SP_monster_shalrath(edict_t *self)
void
SP_monster_shalrath(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/shalrath/tris.md2");
VectorSet(self->mins, -32, -32, -24);
@ -354,7 +368,7 @@ void SP_monster_shalrath(edict_t *self)
self->pain = shalrath_pain;
self->die = shalrath_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -438,11 +438,11 @@ shambler_melee2(edict_t* self)
gi.sound(self, CHAN_WEAPON, sound_melee2, 1, ATTN_NORM, 0);
}
void sham_swingl9(edict_t* self);
void sham_swingr9(edict_t* self);
static void sham_swingl9_step(edict_t* self);
static void sham_swingr9_step(edict_t* self);
void
sham_smash10(edict_t* self)
static void
sham_smash10_step(edict_t* self)
{
if (!self->enemy)
return;
@ -489,7 +489,7 @@ static mframe_t shambler_frames_smash[] = {
{ai_charge, 0},
{ai_charge, 0},
{ai_charge, 0},
{ai_charge, 0, sham_smash10},
{ai_charge, 0, sham_smash10_step},
{ai_charge, 5},
{ai_charge, 4},
};
@ -511,7 +511,7 @@ static mframe_t shambler_frames_swingl[] = {
{ai_charge, 9},
{ai_charge, 5, ShamClaw},
{ai_charge, 4},
{ai_charge, 8, sham_swingl9},
{ai_charge, 8, sham_swingl9_step},
};
mmove_t shambler_attack_swingl =
@ -531,7 +531,7 @@ static mframe_t shambler_frames_swingr[] = {
{ai_charge, 6},
{ai_charge, 6, ShamClaw},
{ai_charge, 3},
{ai_charge, 8, sham_swingr9},
{ai_charge, 8, sham_swingr9_step},
};
mmove_t shambler_attack_swingr =
@ -542,8 +542,8 @@ mmove_t shambler_attack_swingr =
shambler_run
};
void
sham_swingl9(edict_t* self)
static void
sham_swingl9_step(edict_t* self)
{
if (!self)
{
@ -565,8 +565,8 @@ sham_swingl9(edict_t* self)
}
}
void
sham_swingr9(edict_t* self)
static void
sham_swingr9_step(edict_t* self)
{
if (!self)
{
@ -627,7 +627,7 @@ shambler_dead(edict_t* self)
gi.linkentity(self);
}
void
static void
shambler_shrink(edict_t* self)
{
self->maxs[2] = 0;

View file

@ -28,7 +28,8 @@ static int sound_sight;
void tarbaby_rejump(edict_t *self);
void tarbaby_unbounce(edict_t *self)
static void
tarbaby_unbounce(edict_t *self)
{
self->movetype = MOVETYPE_STEP;
}
@ -46,7 +47,8 @@ mmove_t tarbaby_move_stand =
NULL
};
void tarbaby_stand(edict_t *self)
void
tarbaby_stand(edict_t *self)
{
self->monsterinfo.currentmove = &tarbaby_move_stand;
}
@ -94,18 +96,21 @@ mmove_t tarbaby_move_run =
NULL
};
void tarbaby_run(edict_t *self)
void
tarbaby_run(edict_t *self)
{
self->monsterinfo.currentmove = &tarbaby_move_run;
}
// Sight
void tarbaby_sight(edict_t *self, edict_t *other /* unused */)
void
tarbaby_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
void tarbaby_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void
tarbaby_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
if (other->takedamage)
{
@ -132,7 +137,8 @@ void tarbaby_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *s
}
}
void TarBabyJump(edict_t *self)
static void
tarbaby_jump_step(edict_t *self)
{
vec3_t forward;
@ -162,7 +168,8 @@ mmove_t tarbaby_move_fly =
tarbaby_rejump
};
void tarbaby_fly(edict_t *self)
void
tarbaby_fly(edict_t *self)
{
self->monsterinfo.currentmove = &tarbaby_move_fly;
}
@ -175,7 +182,7 @@ static mframe_t tarbaby_frames_jump [] =
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, TarBabyJump},
{ai_charge, 0, tarbaby_jump_step},
{ai_charge, 0, NULL}
};
mmove_t tarbaby_move_jump =
@ -186,19 +193,22 @@ mmove_t tarbaby_move_jump =
tarbaby_fly
};
void tarbaby_rejump(edict_t *self)
void
tarbaby_rejump(edict_t *self)
{
self->monsterinfo.currentmove = &tarbaby_move_jump;
self->monsterinfo.nextframe = 54;
}
// Attack
void tarbaby_attack(edict_t *self)
void
tarbaby_attack(edict_t *self)
{
self->monsterinfo.currentmove = &tarbaby_move_jump;
}
void tarbaby_explode(edict_t *self)
void
tarbaby_explode(edict_t *self)
{
T_RadiusDamage(self, self, 120, NULL, 160, 0);
gi.sound(self, CHAN_VOICE, sound_death, 1, ATTN_NORM, 0);
@ -217,9 +227,9 @@ void tarbaby_explode(edict_t *self)
}
// Death
void tarbaby_die(edict_t *self, edict_t *inflictor /* unused */,
edict_t *attacker /* unused */, int damage,
vec3_t point /* unused */)
void
tarbaby_die(edict_t *self, edict_t *inflictor /* unused */,
edict_t *attacker /* unused */, int damage, vec3_t point /* unused */)
{
if (self->deadflag == DEAD_DEAD)
return;
@ -230,14 +240,15 @@ void tarbaby_die(edict_t *self, edict_t *inflictor /* unused */,
}
// Pain
void tarbaby_pain(edict_t *self, edict_t *other /* unused */,
void
tarbaby_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
}
void SP_monster_tarbaby(edict_t *self)
void
SP_monster_tarbaby(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/tarbaby/tris.md2");
VectorSet(self->mins, -16, -16, -24);
@ -264,7 +275,7 @@ void SP_monster_tarbaby(edict_t *self)
self->die = tarbaby_die;
self->pain = tarbaby_pain;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -59,7 +59,8 @@ mmove_t wizard_move_stand =
NULL
};
void wizard_stand(edict_t *self)
void
wizard_stand(edict_t *self)
{
self->monsterinfo.currentmove = &wizard_move_stand;
}
@ -94,12 +95,14 @@ mmove_t wizard_move_run =
NULL
};
void wizard_run(edict_t *self)
void
wizard_run(edict_t *self)
{
self->monsterinfo.currentmove = &wizard_move_run;
}
void wizard_frame(edict_t *self)
static void
wizard_frame(edict_t *self)
{
static int frame = 0;
@ -130,12 +133,14 @@ mmove_t wizard_move_finish =
wizard_run
};
void wizard_finish_attack(edict_t *self)
void
wizard_finish_attack(edict_t *self)
{
self->monsterinfo.currentmove = &wizard_move_finish;
}
void spit_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
void
spit_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
if (other == self->owner)
{
@ -164,7 +169,8 @@ void spit_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf
G_FreeEdict(self);
}
void fire_spit(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
static void
spit_fire(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
{
edict_t *spit;
trace_t tr;
@ -206,7 +212,8 @@ void fire_spit(edict_t *self, vec3_t start, vec3_t dir, int damage, int speed)
}
}
void WizardSpit(edict_t *self)
static void
wizard_spit(edict_t *self)
{
vec3_t forward, right;
vec3_t start;
@ -222,10 +229,11 @@ void WizardSpit(edict_t *self)
VectorSubtract(vec, start, dir);
VectorNormalize(dir);
fire_spit(self, start, dir, 9, 600);
spit_fire(self, start, dir, 9, 600);
}
void wizard_prespit(edict_t *self)
static void
wizard_prespit(edict_t *self)
{
gi.sound(self, CHAN_WEAPON, sound_attack, 1, ATTN_NORM, 0);
}
@ -234,11 +242,11 @@ void wizard_prespit(edict_t *self)
static mframe_t wizard_frames_attack [] =
{
{ai_charge, 0, wizard_prespit},
{ai_charge, 0, WizardSpit},
{ai_charge, 0, wizard_spit},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, WizardSpit},
{ai_charge, 0, wizard_spit},
{ai_charge, 0, NULL}
};
mmove_t wizard_move_attack =
@ -249,7 +257,8 @@ mmove_t wizard_move_attack =
wizard_finish_attack
};
void wizard_attack(edict_t *self)
void
wizard_attack(edict_t *self)
{
self->monsterinfo.currentmove = &wizard_move_attack;
}
@ -270,7 +279,8 @@ mmove_t wizard_move_pain =
wizard_run
};
void wizard_pain(edict_t *self, edict_t *other /* unused */,
void
wizard_pain(edict_t *self, edict_t *other /* unused */,
float kick /* unused */, int damage)
{
if (level.time < self->pain_debounce_time)
@ -284,7 +294,8 @@ void wizard_pain(edict_t *self, edict_t *other /* unused */,
self->monsterinfo.currentmove = &wizard_move_pain;
}
void wizard_fling(edict_t *self)
static void
wizard_fling(edict_t *self)
{
self->velocity[0] = -200 + 400 * random();
self->velocity[1] = -200 + 400 * random();
@ -297,7 +308,8 @@ void wizard_fling(edict_t *self)
self->svflags |= SVF_DEADMONSTER;
}
void wizard_dead(edict_t *self)
void
wizard_dead(edict_t *self)
{
self->nextthink = 0;
gi.linkentity(self);
@ -324,7 +336,8 @@ mmove_t wizard_move_death =
wizard_dead
};
void wizard_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
void
wizard_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
int n;
@ -349,12 +362,14 @@ void wizard_die(edict_t *self, edict_t *inflictor, edict_t *attacker, int damage
self->monsterinfo.currentmove = &wizard_move_death;
}
void wizard_sight(edict_t *self, edict_t *other /* unused */)
void
wizard_sight(edict_t *self, edict_t *other /* unused */)
{
gi.sound(self, CHAN_VOICE, sound_sight, 1, ATTN_NORM, 0);
}
void wizard_search(edict_t *self)
void
wizard_search(edict_t *self)
{
float r;
r = random() * 5;
@ -365,7 +380,8 @@ void wizard_search(edict_t *self)
gi.sound(self, CHAN_VOICE, sound_idle2, 1, ATTN_NORM, 0);
}
void SP_monster_wizard(edict_t *self)
void
SP_monster_wizard(edict_t *self)
{
self->s.modelindex = gi.modelindex("models/monsters/wizard/tris.md2");
VectorSet(self->mins, -16, -16, -24);
@ -396,7 +412,7 @@ void SP_monster_wizard(edict_t *self)
self->pain = wizard_pain;
self->die = wizard_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
flymonster_start(self);

View file

@ -228,7 +228,7 @@ fire_zombie_gib(edict_t *self, vec3_t start, vec3_t aimdir, int damage, int spee
}
static void
FireZombieGib(edict_t *self)
zombie_fire_gib_step(edict_t *self)
{
vec3_t start;
vec3_t forward, right;
@ -260,7 +260,7 @@ static mframe_t zombie_frames_attack1 [] =
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, FireZombieGib}
{ai_charge, 0, zombie_fire_gib_step}
};
mmove_t zombie_move_attack1 =
{
@ -289,7 +289,7 @@ static mframe_t zombie_frames_attack2 [] =
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, FireZombieGib}
{ai_charge, 0, zombie_fire_gib_step}
};
mmove_t zombie_move_attack2 =
{
@ -315,7 +315,7 @@ static mframe_t zombie_frames_attack3 [] =
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, NULL},
{ai_charge, 0, FireZombieGib},
{ai_charge, 0, zombie_fire_gib_step},
};
mmove_t zombie_move_attack3 =
{
@ -755,7 +755,7 @@ SP_monster_zombie(edict_t *self)
self->pain = zombie_pain;
self->die = zombie_die;
self->monsterinfo.scale = 1.000000;
self->monsterinfo.scale = MODEL_SCALE;
gi.linkentity(self);
walkmonster_start(self);

View file

@ -89,7 +89,7 @@ extern qboolean berserk_blocked ( edict_t * self , float dist ) ;
extern qboolean blocked_checkjump ( edict_t * self , float dist , float maxDown , float maxUp ) ;
extern qboolean blocked_checknewenemy ( edict_t * self ) ;
extern qboolean blocked_checkplat ( edict_t * self , float dist ) ;
extern qboolean canReach(edict_t *self, edict_t *other) ;
extern qboolean canReach ( edict_t * self , edict_t * other ) ;
extern qboolean chick_blocked ( edict_t * self , float dist ) ;
extern qboolean face_wall ( edict_t * self ) ;
extern qboolean fire_hit ( edict_t * self , vec3_t aim , int damage , int kick ) ;
@ -102,11 +102,11 @@ extern qboolean gladiator_blocked ( edict_t *self , float dist ) ;
extern qboolean gunner_blocked ( edict_t * self , float dist ) ;
extern qboolean gunner_grenade_check ( edict_t * self ) ;
extern qboolean has_valid_enemy ( edict_t * self ) ;
extern qboolean hover_blocked ( edict_t *self, float dist ) ;
extern qboolean hover_blocked ( edict_t * self , float dist ) ;
extern qboolean inback ( edict_t * self , edict_t * other ) ;
extern qboolean infantry_blocked ( edict_t * self , float dist ) ;
extern qboolean infront ( edict_t * self , edict_t * other ) ;
extern qboolean medic_blocked ( edict_t *self, float dist ) ;
extern qboolean medic_blocked ( edict_t * self , float dist ) ;
extern qboolean medic_checkattack ( edict_t * self ) ;
extern qboolean monster_jump_finished ( edict_t * self ) ;
extern qboolean monster_start ( edict_t * self ) ;
@ -120,7 +120,7 @@ extern qboolean parasite_checkattack ( edict_t * self ) ;
extern qboolean soldier_blocked ( edict_t * self , float dist ) ;
extern qboolean stalker_blocked ( edict_t * self , float dist ) ;
extern qboolean supertank_blocked ( edict_t * self , float dist ) ;
extern qboolean tank_blocked( edict_t *self, float dist );
extern qboolean tank_blocked( edict_t * self , float dist );
extern qboolean turret_checkattack ( edict_t * self ) ;
extern qboolean visible ( edict_t * self , edict_t * other ) ;
extern qboolean widow_blocked ( edict_t * self , float dist ) ;
@ -148,7 +148,7 @@ extern void CarrierSaveLoc ( edict_t * self ) ;
extern void CarrierSpawn ( edict_t * self ) ;
extern void Chaingun_Fire ( edict_t * ent ) ;
extern void ChangeWeapon ( edict_t * ent ) ;
extern void ChasecamTrack(edict_t *ent);
extern void ChasecamTrack ( edict_t * ent ) ;
extern void ChickMoan ( edict_t * self ) ;
extern void ChickReload ( edict_t * self ) ;
extern void ChickRocket ( edict_t * self ) ;
@ -253,7 +253,6 @@ extern void SV_Physics_Toss ( edict_t * ent ) ;
extern void SetRespawn ( edict_t * ent , float delay ) ;
extern void SetTriggeredSpawn ( edict_t * ent ) ;
extern void SpawnItem ( edict_t * ent , gitem_t * item ) ;
extern void viewthing_think ( edict_t * ent ) ;
extern void Tag_DogTag ( edict_t * ent , edict_t * killer , char * * pic ) ;
extern void Tag_DropToken ( edict_t * ent , gitem_t * item ) ;
extern void Tag_KillItBonus ( edict_t * self ) ;
@ -381,7 +380,7 @@ extern void WidowRail ( edict_t * self ) ;
extern void WidowRespondPowerup ( edict_t * self , edict_t * other ) ;
extern void WidowSaveLoc ( edict_t * self ) ;
extern void WidowSpawn ( edict_t * self ) ;
extern void abortHeal ( edict_t *self, qboolean change_frame, qboolean gib, qboolean mark ) ;
extern void abortHeal ( edict_t * self , qboolean change_frame , qboolean gib , qboolean mark ) ;
extern void actorMachineGun ( edict_t * self ) ;
extern void actor_attack ( edict_t * self ) ;
extern void actor_dead ( edict_t * self ) ;
@ -409,16 +408,24 @@ extern void amb4_think ( edict_t * ent ) ;
extern void arachnid_attack ( edict_t * self ) ;
extern void arachnid_charge_rail ( edict_t * self ) ;
extern void arachnid_dead ( edict_t * self ) ;
extern void arachnid_die(edict_t *self, edict_t *inflictor /* unused */, edict_t *attacker /* unused */, int damage, vec3_t point /* unused */);
extern void arachnid_die ( edict_t * self , edict_t *inflictor , edict_t *attacker , int damage, vec3_t point ) ;
extern void arachnid_footstep ( edict_t * self ) ;
extern void arachnid_melee_charge ( edict_t * self ) ;
extern void arachnid_melee_hit ( edict_t * self ) ;
extern void arachnid_pain(edict_t *self, edict_t *other /* other */, float kick /* other */, int damage);
extern void arachnid_pain ( edict_t * self , edict_t *other , float kick , int damage);
extern void arachnid_rail ( edict_t * self ) ;
extern void arachnid_run ( edict_t * self ) ;
extern void arachnid_sight(edict_t *self, edict_t *other /* unused */);
extern void arachnid_sight ( edict_t * self , edict_t *other );
extern void arachnid_stand ( edict_t * self ) ;
extern void arachnid_walk ( edict_t * self ) ;
extern void army_attack ( edict_t * self ) ;
extern void army_dead ( edict_t * self ) ;
extern void army_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point ) ;
extern void army_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void army_run ( edict_t * self ) ;
extern void army_search ( edict_t * self ) ;
extern void army_sight ( edict_t * self , edict_t *other ) ;
extern void army_stand ( edict_t * self ) ;
extern void badarea_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void barrel_delay ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void barrel_explode ( edict_t * self ) ;
@ -430,7 +437,7 @@ extern void berserk_attack_spike ( edict_t * self ) ;
extern void berserk_dead ( edict_t * self ) ;
extern void berserk_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void berserk_fidget ( edict_t * self ) ;
extern void berserk_footstep( edict_t *self ) ;
extern void berserk_footstep ( edict_t *self ) ;
extern void berserk_melee ( edict_t * self ) ;
extern void berserk_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void berserk_run ( edict_t * self ) ;
@ -486,7 +493,7 @@ extern void brain_duck ( edict_t * self , float eta ) ;
extern void brain_duck_down ( edict_t * self ) ;
extern void brain_duck_hold ( edict_t * self ) ;
extern void brain_duck_up ( edict_t * self ) ;
extern void brain_footstep( edict_t *self ) ;
extern void brain_footstep ( edict_t *self ) ;
extern void brain_hit_left ( edict_t * self ) ;
extern void brain_hit_right ( edict_t * self ) ;
extern void brain_idle ( edict_t * self ) ;
@ -541,7 +548,7 @@ extern void chick_duck_down ( edict_t * self ) ;
extern void chick_duck_hold ( edict_t * self ) ;
extern void chick_duck_up ( edict_t * self ) ;
extern void chick_fidget ( edict_t * self ) ;
extern void chick_footstep( edict_t *self ) ;
extern void chick_footstep ( edict_t *self ) ;
extern void chick_melee ( edict_t * self ) ;
extern void chick_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void chick_rerocket ( edict_t * self ) ;
@ -563,6 +570,26 @@ extern void debris_die ( edict_t * self , edict_t * inflictor , edict_t * attack
extern void defender_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void defender_shoot ( edict_t * self , edict_t * enemy ) ;
extern void defender_think ( edict_t * self ) ;
extern void demon_attack ( edict_t * self ) ;
extern void demon_dead ( edict_t * self ) ;
extern void demon_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point);
extern void demon_jump_touch ( edict_t * self , edict_t * other , cplane_t *plane, csurface_t *surf);
extern void demon_melee ( edict_t * self ) ;
extern void demon_pain ( edict_t * self , edict_t * other , float kick, int damage);
extern void demon_run ( edict_t * self ) ;
extern void demon_search ( edict_t * self ) ;
extern void demon_sight ( edict_t * self , edict_t *other );
extern void demon_stand ( edict_t * self ) ;
extern void dog_dead ( edict_t * self ) ;
extern void dog_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point);
extern void dog_leap ( edict_t * self ) ;
extern void dog_leap_touch ( edict_t * self , edict_t * other , cplane_t *plane, csurface_t *surf);
extern void dog_melee ( edict_t * self ) ;
extern void dog_pain ( edict_t * self , edict_t * other , float kick , int damage);
extern void dog_run ( edict_t * self ) ;
extern void dog_search ( edict_t * self ) ;
extern void dog_sight ( edict_t * self , edict_t *other );
extern void dog_stand ( edict_t * self ) ;
extern void door_blocked ( edict_t * self , edict_t * other ) ;
extern void door_go_down ( edict_t * self ) ;
extern void door_go_up ( edict_t * self , edict_t * activator ) ;
@ -589,13 +616,16 @@ extern void drawbbox ( edict_t * self ) ;
extern void drop_make_touchable ( edict_t * ent ) ;
extern void drop_temp_touch ( edict_t * ent , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void droptofloor ( edict_t * ent ) ;
extern void enfbolt_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf);
extern void enfbolt_touch ( edict_t * self , edict_t * other , cplane_t * plane, csurface_t *surf);
extern void enforcer_attack ( edict_t * self ) ;
extern void enforcer_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void enforcer_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point);
extern void enforcer_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void enforcer_pain ( edict_t * self , edict_t * other , float kick , int damage);
extern void enforcer_run ( edict_t * self ) ;
extern void enforcer_search ( edict_t * self ) ;
extern void enforcer_sight ( edict_t * self , edict_t * other ) ;
extern void enforcer_sight ( edict_t * self , edict_t *other );
extern void enforcer_stand ( edict_t * self ) ;
extern void enforcer_walk ( edict_t * self ) ;
extern void fd_secret_done ( edict_t * self ) ;
@ -632,6 +662,13 @@ extern void fire_shotgun ( edict_t * self , vec3_t start , vec3_t aimdir , int d
extern void fire_tesla ( edict_t * self , vec3_t start , vec3_t aimdir , int damage_multiplier , int speed ) ;
extern void fire_tracker ( edict_t * self , vec3_t start , vec3_t dir , int damage , int speed , edict_t * enemy ) ;
extern void fire_trap ( edict_t * self , vec3_t start , vec3_t aimdir , int damage , int speed , float timer , float damage_radius , qboolean held ) ;
extern void fish_dead ( edict_t * self ) ;
extern void fish_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point ) ;
extern void fish_melee ( edict_t * self ) ;
extern void fish_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void fish_run ( edict_t * self ) ;
extern void fish_search ( edict_t * self ) ;
extern void fish_stand ( edict_t * self ) ;
extern void fixbot_attack ( edict_t * self ) ;
extern void fixbot_dead ( edict_t * self ) ;
extern void fixbot_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
@ -770,7 +807,7 @@ extern void gladiator_attack ( edict_t * self ) ;
extern void gladiator_cleaver_swing ( edict_t * self ) ;
extern void gladiator_dead ( edict_t * self ) ;
extern void gladiator_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void gladiator_footstep( edict_t *self ) ;
extern void gladiator_footstep ( edict_t *self ) ;
extern void gladiator_idle ( edict_t * self ) ;
extern void gladiator_melee ( edict_t * self ) ;
extern void gladiator_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
@ -787,14 +824,14 @@ extern void guardian_atk2 ( edict_t * self ) ;
extern void guardian_atk2_out ( edict_t * self ) ;
extern void guardian_attack ( edict_t * self ) ;
extern void guardian_dead ( edict_t * self ) ;
extern void guardian_die(edict_t *self, edict_t *inflictor /* unused */, edict_t *attacker /* unused */, int damage, vec3_t point /* unused */);
extern void guardian_die ( edict_t * self , edict_t *inflictor , edict_t *attacker , int damage, vec3_t point );
extern void guardian_explode ( edict_t * self ) ;
extern void guardian_fire_blaster ( edict_t * self ) ;
extern void guardian_footstep ( edict_t * self ) ;
extern void guardian_hyper_sound ( edict_t * self ) ;
extern void guardian_kick ( edict_t * self ) ;
extern void guardian_laser_fire ( edict_t * self ) ;
extern void guardian_pain(edict_t *self, edict_t *other /* other */, float kick /* other */, int damage);
extern void guardian_pain ( edict_t * self , edict_t * other , float kick , int damage);
extern void guardian_run ( edict_t * self ) ;
extern void guardian_stand ( edict_t * self ) ;
extern void guardian_walk ( edict_t * self ) ;
@ -809,7 +846,7 @@ extern void gunner_duck_hold ( edict_t * self ) ;
extern void gunner_duck_up ( edict_t * self ) ;
extern void gunner_fidget ( edict_t * self ) ;
extern void gunner_fire_chain ( edict_t * self ) ;
extern void gunner_footstep( edict_t *self ) ;
extern void gunner_footstep ( edict_t *self ) ;
extern void gunner_idlesound ( edict_t * self ) ;
extern void gunner_jump ( edict_t * self ) ;
extern void gunner_jump2_now ( edict_t * self ) ;
@ -829,6 +866,15 @@ extern void heat_think ( edict_t * self ) ;
extern void hint_path_touch ( edict_t * self , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void hintpath_go ( edict_t * self , edict_t * point ) ;
extern void hintpath_stop ( edict_t * self ) ;
extern void hknight_attack ( edict_t * self ) ;
extern void hknight_dead ( edict_t * self ) ;
extern void hknight_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point) ;
extern void hknight_melee ( edict_t * self ) ;
extern void hknight_pain ( edict_t * self , edict_t * other , float kick, int damage) ;
extern void hknight_run ( edict_t * self ) ;
extern void hknight_search ( edict_t * self ) ;
extern void hknight_sight ( edict_t * self , edict_t *other ) ;
extern void hknight_stand ( edict_t * self ) ;
extern void hover_attack ( edict_t * self ) ;
extern void hover_dead ( edict_t * self ) ;
extern void hover_deadthink ( edict_t * self ) ;
@ -859,7 +905,7 @@ extern void infantry_duck_up ( edict_t * self ) ;
extern void infantry_fidget ( edict_t * self ) ;
extern void infantry_fire ( edict_t * self ) ;
extern void infantry_fire_prep ( edict_t * self ) ;
extern void infantry_footstep( edict_t *self ) ;
extern void infantry_footstep ( edict_t *self ) ;
extern void infantry_jump ( edict_t * self ) ;
extern void infantry_jump2_now ( edict_t * self ) ;
extern void infantry_jump_now ( edict_t * self ) ;
@ -879,7 +925,7 @@ extern void insane_cross ( edict_t * self ) ;
extern void insane_dead ( edict_t * self ) ;
extern void insane_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void insane_fist ( edict_t * self ) ;
extern void insane_footstep( edict_t *self ) ;
extern void insane_footstep ( edict_t *self ) ;
extern void insane_moan ( edict_t * self ) ;
extern void insane_onground ( edict_t * self ) ;
extern void insane_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
@ -909,11 +955,21 @@ extern void jorg_stand ( edict_t * self ) ;
extern void jorg_step_left ( edict_t * self ) ;
extern void jorg_step_right ( edict_t * self ) ;
extern void jorg_walk ( edict_t * self ) ;
extern void knight_attack ( edict_t * self ) ;
extern void knight_dead ( edict_t * self ) ;
extern void knight_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point) ;
extern void knight_melee ( edict_t * self ) ;
extern void knight_pain (edict_t * self , edict_t * other , float kick , int damage) ;
extern void knight_run ( edict_t * self ) ;
extern void knight_search ( edict_t * self ) ;
extern void knight_sight ( edict_t * self , edict_t *other ) ;
extern void knight_stand ( edict_t * self ) ;
extern void land_to_water ( edict_t * self ) ;
extern void landing_goal ( edict_t * self ) ;
extern void light_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
extern void loogie ( edict_t * self ) ;
extern void loogie_touch ( edict_t * self , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void magic_touch ( edict_t * self, edict_t * other , cplane_t *plane, csurface_t *surf) ;
extern void makronBFG ( edict_t * self ) ;
extern void makron_attack ( edict_t * self ) ;
extern void makron_brainsplorch ( edict_t * self ) ;
@ -941,20 +997,20 @@ extern void medic_dead ( edict_t * self ) ;
extern void medic_determine_spawn ( edict_t *self ) ;
extern void medic_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void medic_dodge ( edict_t * self , edict_t * attacker , float eta, trace_t *tr ) ;
extern void medic_duck( edict_t *self, float eta ) ;
extern void medic_duck ( edict_t * self , float eta ) ;
extern void medic_duck_down ( edict_t * self ) ;
extern void medic_duck_hold ( edict_t * self ) ;
extern void medic_duck_up ( edict_t * self ) ;
extern void medic_finish_spawn ( edict_t *self );
extern void medic_fire_blaster ( edict_t * self ) ;
extern void medic_footstep( edict_t *self ) ;
extern void medic_footstep ( edict_t *self ) ;
extern void medic_hook_launch ( edict_t * self ) ;
extern void medic_hook_retract ( edict_t * self ) ;
extern void medic_idle ( edict_t * self ) ;
extern void medic_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void medic_run ( edict_t * self ) ;
extern void medic_search ( edict_t * self ) ;
extern void medic_sidestep( edict_t *self ) ;
extern void medic_sidestep ( edict_t *self ) ;
extern void medic_sight ( edict_t * self , edict_t * other ) ;
extern void medic_spawngrows ( edict_t *self );
extern void medic_stand ( edict_t * self ) ;
@ -1031,6 +1087,15 @@ extern void nuke_die ( edict_t * self , edict_t * inflictor , edict_t * attacker
extern void object_repair_dead ( edict_t * ent ) ;
extern void object_repair_fx ( edict_t * ent ) ;
extern void object_repair_sparks ( edict_t * ent ) ;
extern void ogre_attack ( edict_t * self ) ;
extern void ogre_dead ( edict_t * self ) ;
extern void ogre_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point ) ;
extern void ogre_melee ( edict_t * self ) ;
extern void ogre_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void ogre_run ( edict_t * self ) ;
extern void ogre_search ( edict_t * self ) ;
extern void ogre_sight ( edict_t * self , edict_t *other ) ;
extern void ogre_stand ( edict_t * self ) ;
extern void orb_think ( edict_t * self ) ;
extern void parasite_attack ( edict_t * self ) ;
extern void parasite_dead ( edict_t * self ) ;
@ -1094,25 +1159,31 @@ extern void rotating_touch ( edict_t * self , edict_t * other , cplane_t * plane
extern void rotating_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
extern void secret_blocked ( edict_t * self , edict_t * other ) ;
extern void secret_touch ( edict_t * self , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void sham_smash10(edict_t* self);
extern void sham_swingl9(edict_t* self);
extern void sham_swingr9(edict_t* self);
extern void shambler_attack(edict_t* self);
extern void shambler_dead(edict_t* self);
extern void shambler_die(edict_t *self, edict_t *inflictor /* unused */, edict_t *attacker /* unused */, int damage, vec3_t point /* unused */);
extern void shambler_idle(edict_t* self);
extern void shalrath_attack ( edict_t * self ) ;
extern void shalrath_dead ( edict_t * self ) ;
extern void shalrath_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point ) ;
extern void shalrath_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void shalrath_pod_home ( edict_t * self ) ;
extern void shalrath_pod_touch ( edict_t * self , edict_t * other , cplane_t *plane, csurface_t * surf ) ;
extern void shalrath_run ( edict_t * self ) ;
extern void shalrath_search ( edict_t * self ) ;
extern void shalrath_sight ( edict_t * self , edict_t *other ) ;
extern void shalrath_stand ( edict_t * self ) ;
extern void shambler_attack ( edict_t * self ) ;
extern void shambler_dead (edict_t * self ) ;
extern void shambler_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point ) ;
extern void shambler_idle ( edict_t * self);
extern void shambler_lightning_update ( edict_t * self ) ;
extern void shambler_maybe_idle(edict_t* self);
extern void shambler_melee(edict_t* self);
extern void shambler_melee1(edict_t* self);
extern void shambler_melee2(edict_t* self);
extern void shambler_pain(edict_t *self, edict_t *other /* unused */, float kick /* unused */, int damage /* unused */);
extern void shambler_run(edict_t* self);
extern void shambler_shrink(edict_t* self);
extern void shambler_sight(edict_t* self, edict_t* other);
extern void shambler_stand(edict_t* self);
extern void shambler_walk(edict_t* self);
extern void shambler_windup(edict_t* self);
extern void shambler_maybe_idle ( edict_t * self);
extern void shambler_melee (edict_t* self);
extern void shambler_melee1 (edict_t* self);
extern void shambler_melee2 (edict_t* self);
extern void shambler_pain ( edict_t * self , edict_t * other , float kick , int damage );
extern void shambler_run ( edict_t * self );
extern void shambler_sight ( edict_t * self, edict_t* other);
extern void shambler_stand ( edict_t * self);
extern void shambler_walk ( edict_t * self);
extern void shambler_windup ( edict_t * self);
extern void showme ( edict_t * self ) ;
extern void smart_water_blocked ( edict_t * self , edict_t * other ) ;
extern void smart_water_go_up ( edict_t * self ) ;
@ -1142,7 +1213,7 @@ extern void soldier_fire6 ( edict_t * self ) ;
extern void soldier_fire7 ( edict_t * self ) ;
extern void soldier_fire8 ( edict_t * self ) ;
extern void soldier_fire_run ( edict_t * self ) ;
extern void soldier_footstep( edict_t *self ) ;
extern void soldier_footstep ( edict_t *self ) ;
extern void soldier_idle ( edict_t * self ) ;
extern void soldier_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void soldier_run ( edict_t * self ) ;
@ -1199,6 +1270,7 @@ extern void sphere_fly ( edict_t * self ) ;
extern void sphere_if_idle_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void sphere_think_explode ( edict_t * self ) ;
extern void sphere_touch ( edict_t * self , edict_t * other , cplane_t * plane , csurface_t * surf , int mod ) ;
extern void spit_touch ( edict_t * self , edict_t * other , cplane_t *plane, csurface_t *surf);
extern void stalker_attack_melee ( edict_t * self ) ;
extern void stalker_attack_ranged ( edict_t * self ) ;
extern void stalker_dead ( edict_t * self ) ;
@ -1243,6 +1315,7 @@ extern void supertank_stand ( edict_t * self ) ;
extern void supertank_walk ( edict_t * self ) ;
extern void swimmonster_start ( edict_t * self ) ;
extern void swimmonster_start_go ( edict_t * self ) ;
extern void swing_sword_step ( edict_t * self ) ;
extern void takeoff_goal ( edict_t * self ) ;
extern void tank_attack ( edict_t * self ) ;
extern void tank_dead ( edict_t * self ) ;
@ -1261,6 +1334,16 @@ extern void tank_stand_think ( edict_t * self ) ;
extern void tank_thud ( edict_t * self ) ;
extern void tank_walk ( edict_t * self ) ;
extern void tank_windup ( edict_t * self ) ;
extern void tarbaby_attack ( edict_t * self ) ;
extern void tarbaby_die ( edict_t * self , edict_t *inflictor , edict_t *attacker , int damage, vec3_t point );
extern void tarbaby_explode ( edict_t * self ) ;
extern void tarbaby_fly ( edict_t * self ) ;
extern void tarbaby_pain (edict_t * self , edict_t * other , float kick , int damage);
extern void tarbaby_rejump ( edict_t * self ) ;
extern void tarbaby_run ( edict_t * self ) ;
extern void tarbaby_sight ( edict_t * self , edict_t *other );
extern void tarbaby_stand ( edict_t * self ) ;
extern void tarbaby_touch ( edict_t * self , edict_t * other , cplane_t *plane, csurface_t *surf);
extern void target_actor_touch ( edict_t * self , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void target_anger_use ( edict_t * self , edict_t * other , edict_t * activator ) ;
extern void target_crosslevel_target_think ( edict_t * self ) ;
@ -1358,7 +1441,8 @@ extern void use_target_steam ( edict_t * self , edict_t * other , edict_t * acti
extern void vengeance_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void vengeance_think ( edict_t * self ) ;
extern void vengeance_touch ( edict_t * self , edict_t * other , cplane_t * plane , csurface_t * surf ) ;
extern void wait_and_change_think(edict_t* ent);
extern void viewthing_think ( edict_t * ent ) ;
extern void wait_and_change_think ( edict_t * ent ) ;
extern void walkmonster_start ( edict_t * self ) ;
extern void walkmonster_start_go ( edict_t * self ) ;
extern void water_to_land ( edict_t * self ) ;
@ -1419,13 +1503,25 @@ extern void widow_step ( edict_t * self ) ;
extern void widow_stepshoot ( edict_t * self ) ;
extern void widow_walk ( edict_t * self ) ;
extern void widowlegs_think ( edict_t * self ) ;
extern void zombie_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf);
extern void zombie_gib_touch(edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf);
extern void wizard_attack ( edict_t * self ) ;
extern void wizard_dead ( edict_t * self ) ;
extern void wizard_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point);
extern void wizard_finish_attack ( edict_t * self ) ;
extern void wizard_pain ( edict_t * self , edict_t * other , float kick , int damage);
extern void wizard_run ( edict_t * self ) ;
extern void wizard_search ( edict_t * self ) ;
extern void wizard_sight ( edict_t * self , edict_t *other );
extern void wizard_stand ( edict_t * self ) ;
extern void zombie_attack ( edict_t * self ) ;
extern void zombie_die ( edict_t * self , edict_t * inflictor , edict_t * attacker , int damage , vec3_t point ) ;
extern void zombie_die (edict_t * self , edict_t * inflictor , edict_t * attacker , int damage, vec3_t point) ;
extern void zombie_gib_touch ( edict_t * self , edict_t * other , cplane_t *plane, csurface_t *surf);
extern void zombie_pain ( edict_t * self , edict_t * other , float kick , int damage ) ;
extern void zombie_pain (edict_t * self , edict_t * other , float kick, int damage) ;
extern void zombie_run ( edict_t * self ) ;
extern void zombie_search ( edict_t * self ) ;
extern void zombie_sight ( edict_t * self , edict_t *other ) ;
extern void zombie_sight ( edict_t * self , edict_t * other ) ;
extern void zombie_stand ( edict_t * self ) ;
extern void zombie_touch ( edict_t * self , edict_t * other , cplane_t *plane, csurface_t *surf);
extern void zombie_walk ( edict_t * self ) ;

View file

@ -202,7 +202,6 @@
{"SetRespawn", (byte *)SetRespawn},
{"SetTriggeredSpawn", (byte *)SetTriggeredSpawn},
{"SpawnItem", (byte *)SpawnItem},
{"viewthing_think", (byte *)viewthing_think},
{"Tag_ChangeDamage", (byte *)Tag_ChangeDamage},
{"Tag_DogTag", (byte *)Tag_DogTag},
{"Tag_DropToken", (byte *)Tag_DropToken},
@ -373,6 +372,14 @@
{"arachnid_sight", (byte *)arachnid_sight},
{"arachnid_stand", (byte *)arachnid_stand},
{"arachnid_walk", (byte *)arachnid_walk},
{"army_attack", (byte *)army_attack},
{"army_dead", (byte *)army_dead},
{"army_die", (byte *)army_die},
{"army_pain", (byte *)army_pain},
{"army_run", (byte *)army_run},
{"army_search", (byte *)army_search},
{"army_sight", (byte *)army_sight},
{"army_stand", (byte *)army_stand},
{"badarea_touch", (byte *)badarea_touch},
{"barrel_delay", (byte *)barrel_delay},
{"barrel_explode", (byte *)barrel_explode},
@ -525,6 +532,26 @@
{"defender_pain", (byte *)defender_pain},
{"defender_shoot", (byte *)defender_shoot},
{"defender_think", (byte *)defender_think},
{"demon_attack", (byte *)demon_attack},
{"demon_dead", (byte *)demon_dead},
{"demon_die", (byte *)demon_die},
{"demon_jump_touch", (byte *)demon_jump_touch},
{"demon_melee", (byte *)demon_melee},
{"demon_pain", (byte *)demon_pain},
{"demon_run", (byte *)demon_run},
{"demon_search", (byte *)demon_search},
{"demon_sight", (byte *)demon_sight},
{"demon_stand", (byte *)demon_stand},
{"dog_dead", (byte *)dog_dead},
{"dog_die", (byte *)dog_die},
{"dog_leap", (byte *)dog_leap},
{"dog_leap_touch", (byte *)dog_leap_touch},
{"dog_melee", (byte *)dog_melee},
{"dog_pain", (byte *)dog_pain},
{"dog_run", (byte *)dog_run},
{"dog_search", (byte *)dog_search},
{"dog_sight", (byte *)dog_sight},
{"dog_stand", (byte *)dog_stand},
{"door_blocked", (byte *)door_blocked},
{"door_go_down", (byte *)door_go_down},
{"door_go_up", (byte *)door_go_up},
@ -581,6 +608,7 @@
{"fire_grenade", (byte *)fire_grenade},
{"fire_grenade2", (byte *)fire_grenade2},
{"fire_heat", (byte *)fire_heat},
{"fire_heatbeam", (byte *)fire_heatbeam},
{"fire_hit", (byte *)fire_hit},
{"fire_ionripper", (byte *)fire_ionripper},
{"fire_lead", (byte *)fire_lead},
@ -595,6 +623,13 @@
{"fire_tesla", (byte *)fire_tesla},
{"fire_tracker", (byte *)fire_tracker},
{"fire_trap", (byte *)fire_trap},
{"fish_dead", (byte *)fish_dead},
{"fish_die", (byte *)fish_die},
{"fish_melee", (byte *)fish_melee},
{"fish_pain", (byte *)fish_pain},
{"fish_run", (byte *)fish_run},
{"fish_search", (byte *)fish_search},
{"fish_stand", (byte *)fish_stand},
{"fixbot_attack", (byte *)fixbot_attack},
{"fixbot_dead", (byte *)fixbot_dead},
{"fixbot_die", (byte *)fixbot_die},
@ -803,6 +838,15 @@
{"hint_path_touch", (byte *)hint_path_touch},
{"hintpath_go", (byte *)hintpath_go},
{"hintpath_stop", (byte *)hintpath_stop},
{"hknight_attack", (byte *)hknight_attack},
{"hknight_dead", (byte *)hknight_dead},
{"hknight_die", (byte *)hknight_die},
{"hknight_melee", (byte *)hknight_melee},
{"hknight_pain", (byte *)hknight_pain},
{"hknight_run", (byte *)hknight_run},
{"hknight_search", (byte *)hknight_search},
{"hknight_sight", (byte *)hknight_sight},
{"hknight_stand", (byte *)hknight_stand},
{"hover_attack", (byte *)hover_attack},
{"hover_blocked", (byte *)hover_blocked},
{"hover_dead", (byte *)hover_dead},
@ -887,11 +931,21 @@
{"jorg_step_left", (byte *)jorg_step_left},
{"jorg_step_right", (byte *)jorg_step_right},
{"jorg_walk", (byte *)jorg_walk},
{"knight_attack", (byte *)knight_attack},
{"knight_dead", (byte *)knight_dead},
{"knight_die", (byte *)knight_die},
{"knight_melee", (byte *)knight_melee},
{"knight_pain", (byte *)knight_pain},
{"knight_run", (byte *)knight_run},
{"knight_search", (byte *)knight_search},
{"knight_sight", (byte *)knight_sight},
{"knight_stand", (byte *)knight_stand},
{"land_to_water", (byte *)land_to_water},
{"landing_goal", (byte *)landing_goal},
{"light_use", (byte *)light_use},
{"loogie", (byte *)loogie},
{"loogie_touch", (byte *)loogie_touch},
{"magic_touch", (byte *)magic_touch},
{"makronBFG", (byte *)makronBFG},
{"makron_attack", (byte *)makron_attack},
{"makron_brainsplorch", (byte *)makron_brainsplorch},
@ -1018,6 +1072,15 @@
{"object_repair_dead", (byte *)object_repair_dead},
{"object_repair_fx", (byte *)object_repair_fx},
{"object_repair_sparks", (byte *)object_repair_sparks},
{"ogre_attack", (byte *)ogre_attack},
{"ogre_dead", (byte *)ogre_dead},
{"ogre_die", (byte *)ogre_die},
{"ogre_melee", (byte *)ogre_melee},
{"ogre_pain", (byte *)ogre_pain},
{"ogre_run", (byte *)ogre_run},
{"ogre_search", (byte *)ogre_search},
{"ogre_sight", (byte *)ogre_sight},
{"ogre_stand", (byte *)ogre_stand},
{"orb_think", (byte *)orb_think},
{"parasite_attack", (byte *)parasite_attack},
{"parasite_blocked", (byte *)parasite_blocked},
@ -1084,9 +1147,16 @@
{"rotating_use", (byte *)rotating_use},
{"secret_blocked", (byte *)secret_blocked},
{"secret_touch", (byte *)secret_touch},
{"sham_smash10", (byte *)sham_smash10},
{"sham_swingl9", (byte *)sham_swingl9},
{"sham_swingr9", (byte *)sham_swingr9},
{"shalrath_attack", (byte *)shalrath_attack},
{"shalrath_dead", (byte *)shalrath_dead},
{"shalrath_die", (byte *)shalrath_die},
{"shalrath_pain", (byte *)shalrath_pain},
{"shalrath_pod_home", (byte *)shalrath_pod_home},
{"shalrath_pod_touch", (byte *)shalrath_pod_touch},
{"shalrath_run", (byte *)shalrath_run},
{"shalrath_search", (byte *)shalrath_search},
{"shalrath_sight", (byte *)shalrath_sight},
{"shalrath_stand", (byte *)shalrath_stand},
{"shambler_attack", (byte *)shambler_attack},
{"shambler_dead", (byte *)shambler_dead},
{"shambler_die", (byte *)shambler_die},
@ -1098,7 +1168,6 @@
{"shambler_melee2", (byte *)shambler_melee2},
{"shambler_pain", (byte *)shambler_pain},
{"shambler_run", (byte *)shambler_run},
{"shambler_shrink", (byte *)shambler_shrink},
{"shambler_sight", (byte *)shambler_sight},
{"shambler_stand", (byte *)shambler_stand},
{"shambler_walk", (byte *)shambler_walk},
@ -1190,6 +1259,7 @@
{"sphere_if_idle_die", (byte *)sphere_if_idle_die},
{"sphere_think_explode", (byte *)sphere_think_explode},
{"sphere_touch", (byte *)sphere_touch},
{"spit_touch", (byte *)spit_touch},
{"stalker_attack_melee", (byte *)stalker_attack_melee},
{"stalker_attack_ranged", (byte *)stalker_attack_ranged},
{"stalker_blocked", (byte *)stalker_blocked},
@ -1238,6 +1308,7 @@
{"supertank_walk", (byte *)supertank_walk},
{"swimmonster_start", (byte *)swimmonster_start},
{"swimmonster_start_go", (byte *)swimmonster_start_go},
{"swing_sword_step", (byte *)swing_sword_step},
{"takeoff_goal", (byte *)takeoff_goal},
{"tank_attack", (byte *)tank_attack},
{"tank_blocked", (byte *)tank_blocked},
@ -1257,6 +1328,16 @@
{"tank_thud", (byte *)tank_thud},
{"tank_walk", (byte *)tank_walk},
{"tank_windup", (byte *)tank_windup},
{"tarbaby_attack", (byte *)tarbaby_attack},
{"tarbaby_die", (byte *)tarbaby_die},
{"tarbaby_explode", (byte *)tarbaby_explode},
{"tarbaby_fly", (byte *)tarbaby_fly},
{"tarbaby_pain", (byte *)tarbaby_pain},
{"tarbaby_rejump", (byte *)tarbaby_rejump},
{"tarbaby_run", (byte *)tarbaby_run},
{"tarbaby_sight", (byte *)tarbaby_sight},
{"tarbaby_stand", (byte *)tarbaby_stand},
{"tarbaby_touch", (byte *)tarbaby_touch},
{"target_actor_touch", (byte *)target_actor_touch},
{"target_anger_use", (byte *)target_anger_use},
{"target_angle", (byte *)target_angle},
@ -1356,6 +1437,7 @@
{"vengeance_pain", (byte *)vengeance_pain},
{"vengeance_think", (byte *)vengeance_think},
{"vengeance_touch", (byte *)vengeance_touch},
{"viewthing_think", (byte *)viewthing_think},
{"visible", (byte *)visible},
{"wait_and_change_think", (byte *)wait_and_change_think},
{"walkmonster_start", (byte *)walkmonster_start},
@ -1419,14 +1501,23 @@
{"widow_stepshoot", (byte *)widow_stepshoot},
{"widow_walk", (byte *)widow_walk},
{"widowlegs_think", (byte *)widowlegs_think},
{"zombie_touch", (byte *)zombie_touch},
{"zombie_gib_touch", (byte *)zombie_gib_touch},
{"wizard_attack", (byte *)wizard_attack},
{"wizard_dead", (byte *)wizard_dead},
{"wizard_die", (byte *)wizard_die},
{"wizard_finish_attack", (byte *)wizard_finish_attack},
{"wizard_pain", (byte *)wizard_pain},
{"wizard_run", (byte *)wizard_run},
{"wizard_search", (byte *)wizard_search},
{"wizard_sight", (byte *)wizard_sight},
{"wizard_stand", (byte *)wizard_stand},
{"zombie_attack", (byte *)zombie_attack},
{"zombie_die", (byte *)zombie_die},
{"zombie_gib_touch", (byte *)zombie_gib_touch},
{"zombie_pain", (byte *)zombie_pain},
{"zombie_run", (byte *)zombie_run},
{"zombie_search", (byte *)zombie_search},
{"zombie_sight", (byte *)zombie_sight},
{"zombie_stand", (byte *)zombie_stand},
{"zombie_touch", (byte *)zombie_touch},
{"zombie_walk", (byte *)zombie_walk},
{0, 0}