mirror of
https://github.com/yquake2/rogue.git
synced 2024-11-22 20:31:50 +00:00
Investigated PVS report for monster code and addressed a number of issues
This commit is contained in:
parent
e2cadbc06b
commit
c2188ed5f6
11 changed files with 12 additions and 99 deletions
|
@ -711,10 +711,6 @@ Boss2_CheckAttack(edict_t *self)
|
|||
{
|
||||
chance = 0.4;
|
||||
}
|
||||
else if (enemy_range == RANGE_MELEE)
|
||||
{
|
||||
chance = 0.8;
|
||||
}
|
||||
else if (enemy_range == RANGE_NEAR)
|
||||
{
|
||||
chance = 0.8;
|
||||
|
|
|
@ -807,10 +807,6 @@ Jorg_CheckAttack(edict_t *self)
|
|||
{
|
||||
chance = 0.4;
|
||||
}
|
||||
else if (enemy_range == RANGE_MELEE)
|
||||
{
|
||||
chance = 0.8;
|
||||
}
|
||||
else if (enemy_range == RANGE_NEAR)
|
||||
{
|
||||
chance = 0.4;
|
||||
|
|
|
@ -975,10 +975,6 @@ Makron_CheckAttack(edict_t *self)
|
|||
{
|
||||
chance = 0.4;
|
||||
}
|
||||
else if (enemy_range == RANGE_MELEE)
|
||||
{
|
||||
chance = 0.8;
|
||||
}
|
||||
else if (enemy_range == RANGE_NEAR)
|
||||
{
|
||||
chance = 0.4;
|
||||
|
|
|
@ -1436,10 +1436,6 @@ Carrier_CheckAttack(edict_t *self)
|
|||
{
|
||||
chance = 0.4;
|
||||
}
|
||||
else if (enemy_range == RANGE_MELEE)
|
||||
{
|
||||
chance = 0.8;
|
||||
}
|
||||
else if (enemy_range == RANGE_NEAR)
|
||||
{
|
||||
chance = 0.8;
|
||||
|
|
|
@ -330,11 +330,6 @@ InfantryMachineGun(edict_t *self)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!self->enemy || !self->enemy->inuse)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
/* new attack start frame */
|
||||
if (self->s.frame == FRAME_attak104)
|
||||
{
|
||||
|
@ -343,7 +338,7 @@ InfantryMachineGun(edict_t *self)
|
|||
G_ProjectSource(self->s.origin, monster_flash_offset[flash_number],
|
||||
forward, right, start);
|
||||
|
||||
if (self->enemy)
|
||||
if (self->enemy && self->enemy->inuse)
|
||||
{
|
||||
VectorMA(self->enemy->s.origin, -0.2, self->enemy->velocity, target);
|
||||
target[2] += self->enemy->viewheight;
|
||||
|
|
|
@ -18,7 +18,6 @@ edict_t *new_bad;
|
|||
* Returns false if any part of the bottom of the
|
||||
* entity is off an edge that is not a staircase.
|
||||
*/
|
||||
int c_yes, c_no;
|
||||
|
||||
qboolean
|
||||
M_CheckBottom(edict_t *ent)
|
||||
|
@ -60,11 +59,9 @@ M_CheckBottom(edict_t *ent)
|
|||
}
|
||||
}
|
||||
|
||||
c_yes++;
|
||||
return true; /* we got out easy */
|
||||
|
||||
realcheck:
|
||||
c_no++;
|
||||
start[2] = mins[2];
|
||||
|
||||
/* the midpoint must be within 16 of the bottom */
|
||||
|
@ -132,7 +129,6 @@ realcheck:
|
|||
}
|
||||
}
|
||||
|
||||
c_yes++;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -449,34 +445,13 @@ SV_movestep(edict_t *ent, vec3_t move, qboolean relink)
|
|||
|
||||
if (!current_bad && new_bad)
|
||||
{
|
||||
if (new_bad->owner)
|
||||
if (new_bad->owner && !strcmp(new_bad->owner->classname, "tesla"))
|
||||
{
|
||||
if (!strcmp(new_bad->owner->classname, "tesla"))
|
||||
if (!ent->enemy || !ent->enemy->inuse ||
|
||||
!ent->enemy->client || !visible(ent, ent->enemy))
|
||||
{
|
||||
if ((!(ent->enemy)) || (!(ent->enemy->inuse)))
|
||||
{
|
||||
TargetTesla(ent, new_bad->owner);
|
||||
ent->monsterinfo.aiflags |= AI_BLOCKED;
|
||||
}
|
||||
else if (!strcmp(ent->enemy->classname, "telsa"))
|
||||
{
|
||||
}
|
||||
else if ((ent->enemy) && (ent->enemy->client))
|
||||
{
|
||||
if (visible(ent, ent->enemy))
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
TargetTesla(ent, new_bad->owner);
|
||||
ent->monsterinfo.aiflags |= AI_BLOCKED;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
TargetTesla(ent, new_bad->owner);
|
||||
ent->monsterinfo.aiflags |= AI_BLOCKED;
|
||||
}
|
||||
TargetTesla(ent, new_bad->owner);
|
||||
ent->monsterinfo.aiflags |= AI_BLOCKED;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -676,14 +676,11 @@ supertankMachineGun(edict_t *self)
|
|||
G_ProjectSource(self->s.origin, monster_flash_offset[flash_number],
|
||||
forward, right, start);
|
||||
|
||||
if (self->enemy)
|
||||
{
|
||||
VectorCopy(self->enemy->s.origin, vec);
|
||||
VectorMA(vec, 0, self->enemy->velocity, vec);
|
||||
vec[2] += self->enemy->viewheight;
|
||||
VectorSubtract(vec, start, forward);
|
||||
VectorNormalize(forward);
|
||||
}
|
||||
VectorCopy(self->enemy->s.origin, vec);
|
||||
VectorMA(vec, 0, self->enemy->velocity, vec);
|
||||
vec[2] += self->enemy->viewheight;
|
||||
VectorSubtract(vec, start, forward);
|
||||
VectorNormalize(forward);
|
||||
|
||||
monster_fire_bullet(self, start, forward, 6, 4, DEFAULT_BULLET_HSPREAD,
|
||||
DEFAULT_BULLET_VSPREAD, flash_number);
|
||||
|
|
|
@ -526,7 +526,7 @@ TurretFire(edict_t *self)
|
|||
VectorCopy(self->enemy->s.origin, end);
|
||||
|
||||
/* aim for the head. */
|
||||
if ((self->enemy) && (self->enemy->client))
|
||||
if (self->enemy->client)
|
||||
{
|
||||
end[2] += self->enemy->viewheight;
|
||||
}
|
||||
|
|
|
@ -1712,42 +1712,6 @@ ThrowWidowGibReal(edict_t *self, char *gibname, int damage, int type,
|
|||
gi.linkentity(gib);
|
||||
}
|
||||
|
||||
void
|
||||
BloodFountain(edict_t *self, int number, vec3_t startpos, int damage)
|
||||
{
|
||||
int n;
|
||||
vec3_t vd;
|
||||
vec3_t origin, size, velocity;
|
||||
|
||||
if (!self)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
for (n = 0; n < number; n++)
|
||||
{
|
||||
if (startpos)
|
||||
{
|
||||
VectorCopy(startpos, origin);
|
||||
}
|
||||
else
|
||||
{
|
||||
VectorScale(self->size, 0.5, size);
|
||||
VectorAdd(self->absmin, size, origin);
|
||||
origin[0] = origin[0] + crandom() * size[0];
|
||||
origin[1] = origin[1] + crandom() * size[1];
|
||||
origin[2] = origin[2] + crandom() * size[2];
|
||||
}
|
||||
|
||||
WidowVelocityForDamage(damage, vd);
|
||||
VectorMA(self->velocity, 1.0, vd, velocity);
|
||||
velocity[0] *= 2;
|
||||
velocity[1] *= 2;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ThrowSmallStuff(edict_t *self, vec3_t point)
|
||||
{
|
||||
|
|
|
@ -206,7 +206,6 @@ extern void WidowExplosion1 ( edict_t * self ) ;
|
|||
extern void WidowExplode ( edict_t * self ) ;
|
||||
extern void ThrowMoreStuff ( edict_t * self , vec3_t point ) ;
|
||||
extern void ThrowSmallStuff ( edict_t * self , vec3_t point ) ;
|
||||
extern void BloodFountain ( edict_t * self , int number , vec3_t startpos , int damage ) ;
|
||||
extern void ThrowWidowGibReal ( edict_t * self , char * gibname , int damage , int type , vec3_t startpos , qboolean sized , int hitsound , qboolean fade ) ;
|
||||
extern void ThrowWidowGibSized ( edict_t * self , char * gibname , int damage , int type , vec3_t startpos , int hitsound , qboolean fade ) ;
|
||||
extern void ThrowWidowGibLoc ( edict_t * self , char * gibname , int damage , int type , vec3_t startpos , qboolean fade ) ;
|
||||
|
|
|
@ -206,7 +206,6 @@
|
|||
{"WidowExplode", (byte *)WidowExplode},
|
||||
{"ThrowMoreStuff", (byte *)ThrowMoreStuff},
|
||||
{"ThrowSmallStuff", (byte *)ThrowSmallStuff},
|
||||
{"BloodFountain", (byte *)BloodFountain},
|
||||
{"ThrowWidowGibReal", (byte *)ThrowWidowGibReal},
|
||||
{"ThrowWidowGibSized", (byte *)ThrowWidowGibSized},
|
||||
{"ThrowWidowGibLoc", (byte *)ThrowWidowGibLoc},
|
||||
|
|
Loading…
Reference in a new issue