mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-01-31 04:50:48 +00:00
Added FPF_NOAUTOAIM to A_FireCustomMissile
This commit is contained in:
parent
364ca11b43
commit
8948f5dc2b
5 changed files with 7 additions and 5 deletions
|
@ -153,7 +153,7 @@ AActor *P_SpawnMissileZAimed (AActor *source, fixed_t z, AActor *dest, const PCl
|
||||||
AActor *P_SpawnPlayerMissile (AActor* source, const PClass *type);
|
AActor *P_SpawnPlayerMissile (AActor* source, const PClass *type);
|
||||||
AActor *P_SpawnPlayerMissile (AActor *source, const PClass *type, angle_t angle);
|
AActor *P_SpawnPlayerMissile (AActor *source, const PClass *type, angle_t angle);
|
||||||
AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z, const PClass *type, angle_t angle,
|
AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z, const PClass *type, angle_t angle,
|
||||||
AActor **pLineTarget = NULL, AActor **MissileActor = NULL, bool nofreeaim = false);
|
AActor **pLineTarget = NULL, AActor **MissileActor = NULL, bool nofreeaim = false, bool noautoaim = false);
|
||||||
|
|
||||||
void P_CheckFakeFloorTriggers (AActor *mo, fixed_t oldz, bool oldz_has_viewheight=false);
|
void P_CheckFakeFloorTriggers (AActor *mo, fixed_t oldz, bool oldz_has_viewheight=false);
|
||||||
|
|
||||||
|
|
|
@ -5923,7 +5923,7 @@ AActor *P_SpawnPlayerMissile (AActor *source, const PClass *type, angle_t angle)
|
||||||
|
|
||||||
AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z,
|
AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z,
|
||||||
const PClass *type, angle_t angle, AActor **pLineTarget, AActor **pMissileActor,
|
const PClass *type, angle_t angle, AActor **pLineTarget, AActor **pMissileActor,
|
||||||
bool nofreeaim)
|
bool nofreeaim, bool noautoaim)
|
||||||
{
|
{
|
||||||
static const int angdiff[3] = { -1<<26, 1<<26, 0 };
|
static const int angdiff[3] = { -1<<26, 1<<26, 0 };
|
||||||
angle_t an = angle;
|
angle_t an = angle;
|
||||||
|
@ -5936,7 +5936,7 @@ AActor *P_SpawnPlayerMissile (AActor *source, fixed_t x, fixed_t y, fixed_t z,
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (source->player && source->player->ReadyWeapon && (source->player->ReadyWeapon->WeaponFlags & WIF_NOAUTOAIM))
|
if (source->player && source->player->ReadyWeapon && ((source->player->ReadyWeapon->WeaponFlags & WIF_NOAUTOAIM) || noautoaim))
|
||||||
{
|
{
|
||||||
// Keep exactly the same angle and pitch as the player's own aim
|
// Keep exactly the same angle and pitch as the player's own aim
|
||||||
an = angle;
|
an = angle;
|
||||||
|
|
|
@ -1320,6 +1320,7 @@ enum FP_Flags
|
||||||
{
|
{
|
||||||
FPF_AIMATANGLE = 1,
|
FPF_AIMATANGLE = 1,
|
||||||
FPF_TRANSFERTRANSLATION = 2,
|
FPF_TRANSFERTRANSLATION = 2,
|
||||||
|
FPF_NOAUTOAIM = 4,
|
||||||
};
|
};
|
||||||
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FireCustomMissile)
|
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FireCustomMissile)
|
||||||
{
|
{
|
||||||
|
@ -1358,7 +1359,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FireCustomMissile)
|
||||||
// Temporarily adjusts the pitch
|
// Temporarily adjusts the pitch
|
||||||
fixed_t SavedPlayerPitch = self->pitch;
|
fixed_t SavedPlayerPitch = self->pitch;
|
||||||
self->pitch -= pitch;
|
self->pitch -= pitch;
|
||||||
AActor * misl=P_SpawnPlayerMissile (self, x, y, z, ti, shootangle, &linetarget);
|
AActor * misl=P_SpawnPlayerMissile (self, x, y, z, ti, shootangle, &linetarget, NULL, false, Flags & FPF_NOAUTOAIM);
|
||||||
self->pitch = SavedPlayerPitch;
|
self->pitch = SavedPlayerPitch;
|
||||||
|
|
||||||
// automatic handling of seeker missiles
|
// automatic handling of seeker missiles
|
||||||
|
|
|
@ -188,6 +188,7 @@ const int CPF_STEALARMOR = 32;
|
||||||
// Flags for A_CustomMissile
|
// Flags for A_CustomMissile
|
||||||
const int FPF_AIMATANGLE = 1;
|
const int FPF_AIMATANGLE = 1;
|
||||||
const int FPF_TRANSFERTRANSLATION = 2;
|
const int FPF_TRANSFERTRANSLATION = 2;
|
||||||
|
const int FPF_NOAUTOAIM = 4;
|
||||||
|
|
||||||
// Flags for A_Teleport
|
// Flags for A_Teleport
|
||||||
enum
|
enum
|
||||||
|
|
|
@ -10,7 +10,7 @@ ACTOR Inventory native
|
||||||
action native A_JumpIfNoAmmo(state label);
|
action native A_JumpIfNoAmmo(state label);
|
||||||
action native A_CustomPunch(int damage, bool norandom = false, int flags = CPF_USEAMMO, class<Actor> pufftype = "BulletPuff", float range = 0, float lifesteal = 0, int lifestealmax = 0, class<BasicArmorBonus> armorbonustype = "ArmorBonus");
|
action native A_CustomPunch(int damage, bool norandom = false, int flags = CPF_USEAMMO, class<Actor> pufftype = "BulletPuff", float range = 0, float lifesteal = 0, int lifestealmax = 0, class<BasicArmorBonus> armorbonustype = "ArmorBonus");
|
||||||
action native A_FireBullets(float spread_xy, float spread_z, int numbullets, int damageperbullet, class<Actor> pufftype = "BulletPuff", int flags = 1, float range = 0);
|
action native A_FireBullets(float spread_xy, float spread_z, int numbullets, int damageperbullet, class<Actor> pufftype = "BulletPuff", int flags = 1, float range = 0);
|
||||||
action native A_FireCustomMissile(class<Actor> missiletype, float angle = 0, bool useammo = true, int spawnofs_xy = 0, float spawnheight = 0, bool aimatangle = false, float pitch = 0);
|
action native A_FireCustomMissile(class<Actor> missiletype, float angle = 0, bool useammo = true, int spawnofs_xy = 0, float spawnheight = 0, int flags = 0, float pitch = 0);
|
||||||
action native A_RailAttack(int damage, int spawnofs_xy = 0, int useammo = true, color color1 = "", color color2 = "", int flags = 0, float maxdiff = 0, class<Actor> pufftype = "BulletPuff", float spread_xy = 0, float spread_z = 0, float range = 0, int duration = 0, float sparsity = 1.0, float driftspeed = 1.0, class<Actor> spawnclass = "none", float spawnofs_z = 0, int spiraloffset = 270);
|
action native A_RailAttack(int damage, int spawnofs_xy = 0, int useammo = true, color color1 = "", color color2 = "", int flags = 0, float maxdiff = 0, class<Actor> pufftype = "BulletPuff", float spread_xy = 0, float spread_z = 0, float range = 0, int duration = 0, float sparsity = 1.0, float driftspeed = 1.0, class<Actor> spawnclass = "none", float spawnofs_z = 0, int spiraloffset = 270);
|
||||||
action native A_Light(int extralight);
|
action native A_Light(int extralight);
|
||||||
action native A_Light0();
|
action native A_Light0();
|
||||||
|
|
Loading…
Reference in a new issue