mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-22 03:21:07 +00:00
- WeaponAutoAimHitscan
# Conflicts: # source/games/sw/src/weapon.cpp
This commit is contained in:
parent
9d0056f8c7
commit
2c0a597f06
1 changed files with 14 additions and 14 deletions
|
@ -14030,11 +14030,10 @@ AimHitscanToTarget(SPRITEp sp, int *z, short *ang, int z_ratio)
|
||||||
return hit_sprite;
|
return hit_sprite;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
DSWActor* WeaponAutoAimHitscan(DSWActor* actor, int *z, short *ang, bool test)
|
||||||
WeaponAutoAimHitscan(SPRITEp sp, int *z, short *ang, bool test)
|
|
||||||
{
|
{
|
||||||
auto actor = &swActors[sp - sprite];
|
|
||||||
USERp u = actor->u();
|
USERp u = actor->u();
|
||||||
|
auto sp = &actor->s();
|
||||||
int dist;
|
int dist;
|
||||||
int zh;
|
int zh;
|
||||||
int xvect;
|
int xvect;
|
||||||
|
@ -14044,7 +14043,7 @@ WeaponAutoAimHitscan(SPRITEp sp, int *z, short *ang, bool test)
|
||||||
{
|
{
|
||||||
if (!Autoaim(u->PlayerP->pnum))
|
if (!Autoaim(u->PlayerP->pnum))
|
||||||
{
|
{
|
||||||
return -1;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14080,7 +14079,7 @@ WeaponAutoAimHitscan(SPRITEp sp, int *z, short *ang, bool test)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return hitActor == nullptr? -1 : hitActor->GetSpriteIndex();
|
return hitActor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -14495,7 +14494,7 @@ InitShotgun(PLAYERp pp)
|
||||||
sp = pp->SpriteP;
|
sp = pp->SpriteP;
|
||||||
|
|
||||||
daang = 64;
|
daang = 64;
|
||||||
if (WeaponAutoAimHitscan(sp, &daz, &daang, false) != -1)
|
if (WeaponAutoAimHitscan(pp->Actor(), &daz, &daang, false) != nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -17344,7 +17343,7 @@ InitUzi(PLAYERp pp)
|
||||||
nz = pp->posz + pp->bob_z;
|
nz = pp->posz + pp->bob_z;
|
||||||
daz = pp->posz + pp->bob_z;
|
daz = pp->posz + pp->bob_z;
|
||||||
daang = 32;
|
daang = 32;
|
||||||
if (WeaponAutoAimHitscan(pp->SpriteP, &daz, &daang, false) != -1)
|
if (WeaponAutoAimHitscan(pp->Actor(), &daz, &daang, false) != nullptr)
|
||||||
{
|
{
|
||||||
daang += RandomRange(24) - 12;
|
daang += RandomRange(24) - 12;
|
||||||
daang = NORM_ANGLE(daang);
|
daang = NORM_ANGLE(daang);
|
||||||
|
@ -17535,7 +17534,7 @@ InitEMP(PLAYERp pp)
|
||||||
|
|
||||||
daz = nz = pp->posz + pp->bob_z;
|
daz = nz = pp->posz + pp->bob_z;
|
||||||
daang = 64;
|
daang = 64;
|
||||||
if (WeaponAutoAimHitscan(pp->SpriteP, &daz, &daang, false) != -1)
|
if (WeaponAutoAimHitscan(pp->Actor(), &daz, &daang, false) != nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -18044,6 +18043,7 @@ InitTurretLaser(short SpriteNum, PLAYERp pp)
|
||||||
int
|
int
|
||||||
InitSobjMachineGun(short SpriteNum, PLAYERp pp)
|
InitSobjMachineGun(short SpriteNum, PLAYERp pp)
|
||||||
{
|
{
|
||||||
|
DSWActor* actor = &swActors[SpriteNum];
|
||||||
USERp u = User[SpriteNum].Data();
|
USERp u = User[SpriteNum].Data();
|
||||||
SPRITEp sp = u->SpriteP;
|
SPRITEp sp = u->SpriteP;
|
||||||
short daang;
|
short daang;
|
||||||
|
@ -18068,7 +18068,7 @@ InitSobjMachineGun(short SpriteNum, PLAYERp pp)
|
||||||
InitTracerTurret(short(sp - sprite), pp->PlayerSprite, pp->horizon.horiz.asq16());
|
InitTracerTurret(short(sp - sprite), pp->PlayerSprite, pp->horizon.horiz.asq16());
|
||||||
|
|
||||||
daang = 64;
|
daang = 64;
|
||||||
if (WeaponAutoAimHitscan(sp, &daz, &daang, false) != -1)
|
if (WeaponAutoAimHitscan(actor, &daz, &daang, false) != nullptr)
|
||||||
{
|
{
|
||||||
daz += RandomRange(Z(30)) - Z(15);
|
daz += RandomRange(Z(30)) - Z(15);
|
||||||
//daz += 0;
|
//daz += 0;
|
||||||
|
@ -18449,9 +18449,9 @@ int InitTurretMgun(SECTOR_OBJECTp sop)
|
||||||
{
|
{
|
||||||
// only auto aim for Z
|
// only auto aim for Z
|
||||||
daang = 512;
|
daang = 512;
|
||||||
auto hit = WeaponAutoAimHitscan(sp, &daz, &daang, false);
|
auto hit = WeaponAutoAimHitscan(actor, &daz, &daang, false);
|
||||||
hitinfo.hitactor = hit == -1 ? nullptr : &swActors[hit];
|
hitinfo.hitactor = hit;
|
||||||
if (hitinfo.hitactor != nullptr)
|
if (hit != nullptr)
|
||||||
{
|
{
|
||||||
delta = short(abs(getincangle(sp->ang, daang)));
|
delta = short(abs(getincangle(sp->ang, daang)));
|
||||||
if (delta > 128)
|
if (delta > 128)
|
||||||
|
@ -18463,7 +18463,7 @@ int InitTurretMgun(SECTOR_OBJECTp sop)
|
||||||
{
|
{
|
||||||
// always shoot the ground when tracking
|
// always shoot the ground when tracking
|
||||||
// and not close
|
// and not close
|
||||||
WeaponHitscanShootFeet(sp, &hitinfo.hitactor->s(), &daz);
|
WeaponHitscanShootFeet(sp, &hit->s(), &daz);
|
||||||
|
|
||||||
daang = sp->ang;
|
daang = sp->ang;
|
||||||
daang = NORM_ANGLE(daang + RANDOM_P2(32) - 16);
|
daang = NORM_ANGLE(daang + RANDOM_P2(32) - 16);
|
||||||
|
@ -18481,7 +18481,7 @@ int InitTurretMgun(SECTOR_OBJECTp sop)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
daang = 64;
|
daang = 64;
|
||||||
if (WeaponAutoAimHitscan(sp, &daz, &daang, false) != -1)
|
if (WeaponAutoAimHitscan(actor, &daz, &daang, false) != nullptr)
|
||||||
{
|
{
|
||||||
daz += RandomRange(Z(30)) - Z(15);
|
daz += RandomRange(Z(30)) - Z(15);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue