mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-11 15:22:15 +00:00
Merge pull request #316 from Doom2fan/RailgunSpiralOffset
Added SpiralOffset parameter to railgun functions.
This commit is contained in:
commit
45b006252a
7 changed files with 14 additions and 12 deletions
|
@ -586,7 +586,7 @@ void P_DrawSplash2 (int count, fixed_t x, fixed_t y, fixed_t z, angle_t angle, i
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void P_DrawRailTrail (AActor *source, const FVector3 &start, const FVector3 &end, int color1, int color2, float maxdiff, int flags, const PClass *spawnclass, angle_t angle, int duration, float sparsity, float drift)
|
void P_DrawRailTrail (AActor *source, const FVector3 &start, const FVector3 &end, int color1, int color2, float maxdiff, int flags, const PClass *spawnclass, angle_t angle, int duration, float sparsity, float drift, int SpiralOffset)
|
||||||
{
|
{
|
||||||
double length, lengthsquared;
|
double length, lengthsquared;
|
||||||
int steps, i;
|
int steps, i;
|
||||||
|
@ -678,7 +678,7 @@ void P_DrawRailTrail (AActor *source, const FVector3 &start, const FVector3 &end
|
||||||
|
|
||||||
color1 = color1 == 0 ? -1 : ParticleColor(color1);
|
color1 = color1 == 0 ? -1 : ParticleColor(color1);
|
||||||
pos = start;
|
pos = start;
|
||||||
deg = FAngle(270);
|
deg = FAngle(SpiralOffset);
|
||||||
for (i = spiral_steps; i; i--)
|
for (i = spiral_steps; i; i--)
|
||||||
{
|
{
|
||||||
particle_t *p = NewParticle ();
|
particle_t *p = NewParticle ();
|
||||||
|
|
|
@ -88,7 +88,7 @@ void P_RunEffects (void);
|
||||||
|
|
||||||
void P_RunEffect (AActor *actor, int effects);
|
void P_RunEffect (AActor *actor, int effects);
|
||||||
|
|
||||||
void P_DrawRailTrail (AActor *source, const FVector3 &start, const FVector3 &end, int color1, int color2, float maxdiff = 0, int flags = 0, const PClass *spawnclass = NULL, angle_t angle = 0, int duration = 35, float sparsity = 1.0, float drift = 1.0);
|
void P_DrawRailTrail (AActor *source, const FVector3 &start, const FVector3 &end, int color1, int color2, float maxdiff = 0, int flags = 0, const PClass *spawnclass = NULL, angle_t angle = 0, int duration = 35, float sparsity = 1.0, float drift = 1.0, int SpiralOffset = 270);
|
||||||
void P_DrawSplash (int count, fixed_t x, fixed_t y, fixed_t z, angle_t angle, int kind);
|
void P_DrawSplash (int count, fixed_t x, fixed_t y, fixed_t z, angle_t angle, int kind);
|
||||||
void P_DrawSplash2 (int count, fixed_t x, fixed_t y, fixed_t z, angle_t angle, int updown, int kind);
|
void P_DrawSplash2 (int count, fixed_t x, fixed_t y, fixed_t z, angle_t angle, int updown, int kind);
|
||||||
void P_DisconnectEffect (AActor *actor);
|
void P_DisconnectEffect (AActor *actor);
|
||||||
|
|
|
@ -474,7 +474,7 @@ void P_TraceBleed (int damage, AActor *target); // random direction version
|
||||||
bool P_HitFloor (AActor *thing);
|
bool P_HitFloor (AActor *thing);
|
||||||
bool P_HitWater (AActor *thing, sector_t *sec, fixed_t splashx = FIXED_MIN, fixed_t splashy = FIXED_MIN, fixed_t splashz=FIXED_MIN, bool checkabove = false, bool alert = true);
|
bool P_HitWater (AActor *thing, sector_t *sec, fixed_t splashx = FIXED_MIN, fixed_t splashy = FIXED_MIN, fixed_t splashz=FIXED_MIN, bool checkabove = false, bool alert = true);
|
||||||
void P_CheckSplash(AActor *self, fixed_t distance);
|
void P_CheckSplash(AActor *self, fixed_t distance);
|
||||||
void P_RailAttack (AActor *source, int damage, int offset_xy, fixed_t offset_z = 0, int color1 = 0, int color2 = 0, float maxdiff = 0, int flags = 0, const PClass *puff = NULL, angle_t angleoffset = 0, angle_t pitchoffset = 0, fixed_t distance = 8192*FRACUNIT, int duration = 0, float sparsity = 1.0, float drift = 1.0, const PClass *spawnclass = NULL); // [RH] Shoot a railgun
|
void P_RailAttack (AActor *source, int damage, int offset_xy, fixed_t offset_z = 0, int color1 = 0, int color2 = 0, float maxdiff = 0, int flags = 0, const PClass *puff = NULL, angle_t angleoffset = 0, angle_t pitchoffset = 0, fixed_t distance = 8192*FRACUNIT, int duration = 0, float sparsity = 1.0, float drift = 1.0, const PClass *spawnclass = NULL, int SpiralOffset = 270); // [RH] Shoot a railgun
|
||||||
|
|
||||||
enum // P_RailAttack / A_RailAttack / A_CustomRailgun / P_DrawRailTrail flags
|
enum // P_RailAttack / A_RailAttack / A_CustomRailgun / P_DrawRailTrail flags
|
||||||
{
|
{
|
||||||
|
|
|
@ -4140,7 +4140,7 @@ static ETraceStatus ProcessRailHit(FTraceResults &res, void *userdata)
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
void P_RailAttack(AActor *source, int damage, int offset_xy, fixed_t offset_z, int color1, int color2, float maxdiff, int railflags, const PClass *puffclass, angle_t angleoffset, angle_t pitchoffset, fixed_t distance, int duration, float sparsity, float drift, const PClass *spawnclass)
|
void P_RailAttack(AActor *source, int damage, int offset_xy, fixed_t offset_z, int color1, int color2, float maxdiff, int railflags, const PClass *puffclass, angle_t angleoffset, angle_t pitchoffset, fixed_t distance, int duration, float sparsity, float drift, const PClass *spawnclass, int SpiralOffset)
|
||||||
{
|
{
|
||||||
fixed_t vx, vy, vz;
|
fixed_t vx, vy, vz;
|
||||||
angle_t angle, pitch;
|
angle_t angle, pitch;
|
||||||
|
@ -4292,7 +4292,7 @@ void P_RailAttack(AActor *source, int damage, int offset_xy, fixed_t offset_z, i
|
||||||
end.X = FIXED2FLOAT(trace.X);
|
end.X = FIXED2FLOAT(trace.X);
|
||||||
end.Y = FIXED2FLOAT(trace.Y);
|
end.Y = FIXED2FLOAT(trace.Y);
|
||||||
end.Z = FIXED2FLOAT(trace.Z);
|
end.Z = FIXED2FLOAT(trace.Z);
|
||||||
P_DrawRailTrail(source, start, end, color1, color2, maxdiff, railflags, spawnclass, source->angle + angleoffset, duration, sparsity, drift);
|
P_DrawRailTrail(source, start, end, color1, color2, maxdiff, railflags, spawnclass, source->angle + angleoffset, duration, sparsity, drift, SpiralOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
|
|
@ -1495,7 +1495,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_CustomPunch)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_RailAttack)
|
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_RailAttack)
|
||||||
{
|
{
|
||||||
ACTION_PARAM_START(16);
|
ACTION_PARAM_START(17);
|
||||||
ACTION_PARAM_INT(Damage, 0);
|
ACTION_PARAM_INT(Damage, 0);
|
||||||
ACTION_PARAM_INT(Spawnofs_XY, 1);
|
ACTION_PARAM_INT(Spawnofs_XY, 1);
|
||||||
ACTION_PARAM_BOOL(UseAmmo, 2);
|
ACTION_PARAM_BOOL(UseAmmo, 2);
|
||||||
|
@ -1512,6 +1512,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_RailAttack)
|
||||||
ACTION_PARAM_FLOAT(DriftSpeed, 13);
|
ACTION_PARAM_FLOAT(DriftSpeed, 13);
|
||||||
ACTION_PARAM_CLASS(SpawnClass, 14);
|
ACTION_PARAM_CLASS(SpawnClass, 14);
|
||||||
ACTION_PARAM_FIXED(Spawnofs_Z, 15);
|
ACTION_PARAM_FIXED(Spawnofs_Z, 15);
|
||||||
|
ACTION_PARAM_INT(SpiralOffset, 16);
|
||||||
|
|
||||||
if(Range==0) Range=8192*FRACUNIT;
|
if(Range==0) Range=8192*FRACUNIT;
|
||||||
if(Sparsity==0) Sparsity=1.0;
|
if(Sparsity==0) Sparsity=1.0;
|
||||||
|
@ -1540,7 +1541,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_RailAttack)
|
||||||
slope = pr_crailgun.Random2() * (Spread_Z / 255);
|
slope = pr_crailgun.Random2() * (Spread_Z / 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
P_RailAttack (self, Damage, Spawnofs_XY, Spawnofs_Z, Color1, Color2, MaxDiff, Flags, PuffType, angle, slope, Range, Duration, Sparsity, DriftSpeed, SpawnClass);
|
P_RailAttack (self, Damage, Spawnofs_XY, Spawnofs_Z, Color1, Color2, MaxDiff, Flags, PuffType, angle, slope, Range, Duration, Sparsity, DriftSpeed, SpawnClass, SpiralOffset);
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
@ -1558,7 +1559,7 @@ enum
|
||||||
|
|
||||||
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_CustomRailgun)
|
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_CustomRailgun)
|
||||||
{
|
{
|
||||||
ACTION_PARAM_START(16);
|
ACTION_PARAM_START(17);
|
||||||
ACTION_PARAM_INT(Damage, 0);
|
ACTION_PARAM_INT(Damage, 0);
|
||||||
ACTION_PARAM_INT(Spawnofs_XY, 1);
|
ACTION_PARAM_INT(Spawnofs_XY, 1);
|
||||||
ACTION_PARAM_COLOR(Color1, 2);
|
ACTION_PARAM_COLOR(Color1, 2);
|
||||||
|
@ -1575,6 +1576,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_CustomRailgun)
|
||||||
ACTION_PARAM_FLOAT(DriftSpeed, 13);
|
ACTION_PARAM_FLOAT(DriftSpeed, 13);
|
||||||
ACTION_PARAM_CLASS(SpawnClass, 14);
|
ACTION_PARAM_CLASS(SpawnClass, 14);
|
||||||
ACTION_PARAM_FIXED(Spawnofs_Z, 15);
|
ACTION_PARAM_FIXED(Spawnofs_Z, 15);
|
||||||
|
ACTION_PARAM_INT(SpiralOffset, 16);
|
||||||
|
|
||||||
if(Range==0) Range=8192*FRACUNIT;
|
if(Range==0) Range=8192*FRACUNIT;
|
||||||
if(Sparsity==0) Sparsity=1.0;
|
if(Sparsity==0) Sparsity=1.0;
|
||||||
|
@ -1658,7 +1660,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_CustomRailgun)
|
||||||
slopeoffset = pr_crailgun.Random2() * (Spread_Z / 255);
|
slopeoffset = pr_crailgun.Random2() * (Spread_Z / 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
P_RailAttack (self, Damage, Spawnofs_XY, Spawnofs_Z, Color1, Color2, MaxDiff, Flags, PuffType, angleoffset, slopeoffset, Range, Duration, Sparsity, DriftSpeed, SpawnClass);
|
P_RailAttack (self, Damage, Spawnofs_XY, Spawnofs_Z, Color1, Color2, MaxDiff, Flags, PuffType, angleoffset, slopeoffset, Range, Duration, Sparsity, DriftSpeed, SpawnClass, SpiralOffset);
|
||||||
|
|
||||||
self->x = saved_x;
|
self->x = saved_x;
|
||||||
self->y = saved_y;
|
self->y = saved_y;
|
||||||
|
|
|
@ -210,7 +210,7 @@ ACTOR Actor native //: Thinker
|
||||||
action native A_Jump(int chance = 256, state label, ...);
|
action native A_Jump(int chance = 256, state label, ...);
|
||||||
action native A_CustomMissile(class<Actor> missiletype, float spawnheight = 32, int spawnofs_xy = 0, float angle = 0, int flags = 0, float pitch = 0, int ptr = AAPTR_TARGET);
|
action native A_CustomMissile(class<Actor> missiletype, float spawnheight = 32, int spawnofs_xy = 0, float angle = 0, int flags = 0, float pitch = 0, int ptr = AAPTR_TARGET);
|
||||||
action native A_CustomBulletAttack(float spread_xy, float spread_z, int numbullets, int damageperbullet, class<Actor> pufftype = "BulletPuff", float range = 0, int flags = 0, int ptr = AAPTR_TARGET);
|
action native A_CustomBulletAttack(float spread_xy, float spread_z, int numbullets, int damageperbullet, class<Actor> pufftype = "BulletPuff", float range = 0, int flags = 0, int ptr = AAPTR_TARGET);
|
||||||
action native A_CustomRailgun(int damage, int spawnofs_xy = 0, color color1 = "", color color2 = "", int flags = 0, bool aim = false, 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);
|
action native A_CustomRailgun(int damage, int spawnofs_xy = 0, color color1 = "", color color2 = "", int flags = 0, bool aim = false, 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_JumpIfHealthLower(int health, state label, int ptr_selector = AAPTR_DEFAULT);
|
action native A_JumpIfHealthLower(int health, state label, int ptr_selector = AAPTR_DEFAULT);
|
||||||
action native A_JumpIfCloser(float distance, state label);
|
action native A_JumpIfCloser(float distance, state label);
|
||||||
action native A_JumpIfTracerCloser(float distance, state label);
|
action native A_JumpIfTracerCloser(float distance, state label);
|
||||||
|
|
|
@ -11,7 +11,7 @@ ACTOR Inventory native
|
||||||
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, bool aimatangle = false, 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);
|
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();
|
||||||
action native A_Light1();
|
action native A_Light1();
|
||||||
|
|
Loading…
Reference in a new issue