mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-22 19:51:16 +00:00
- handle PlayerDamageSlide and ActorDamageSlide.
This commit is contained in:
parent
16cc147173
commit
8b70326da5
3 changed files with 45 additions and 48 deletions
|
@ -2593,7 +2593,7 @@ void DriveCrush(PLAYER* pp, DVector2* quad)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
damage = -(actor->user.Health + 100);
|
damage = -(actor->user.Health + 100);
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, pp->angle.ang.Buildang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, pp->angle.ang);
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
PlayerCheckDeath(actor->user.PlayerP, pp->actor);
|
PlayerCheckDeath(actor->user.PlayerP, pp->actor);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4078,7 +4078,7 @@ int SpawnBlood(DSWActor* actor, DSWActor* weapActor, DAngle hit_angle, const DVe
|
||||||
case BLADE3:
|
case BLADE3:
|
||||||
case 5011:
|
case 5011:
|
||||||
p = SmallBlood;
|
p = SmallBlood;
|
||||||
hit_angle = DAngle::fromBuild(AngToSprite(actor, weapActor) + 1024);
|
hit_angle = AngToSprite(actor, weapActor) + DAngle180;
|
||||||
hitpos.XY() = actor->spr.pos.XY();
|
hitpos.XY() = actor->spr.pos.XY();
|
||||||
hitpos.Z = weapActor->spr.pos.Z + (ActorSizeZ(weapActor) * 0.5);
|
hitpos.Z = weapActor->spr.pos.Z + (ActorSizeZ(weapActor) * 0.5);
|
||||||
break;
|
break;
|
||||||
|
@ -5314,10 +5314,8 @@ int ActorStdMissile(DSWActor* actor, DSWActor* weapActor)
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
int ActorDamageSlide(DSWActor* actor, int damage, int ang)
|
int ActorDamageSlide(DSWActor* actor, int damage, DAngle angle)
|
||||||
{
|
{
|
||||||
auto angle = DAngle::fromBuild(ang);
|
|
||||||
|
|
||||||
if (actor->user.Flags & (SPR_CLIMBING))
|
if (actor->user.Flags & (SPR_CLIMBING))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
@ -5354,9 +5352,8 @@ int ActorDamageSlide(DSWActor* actor, int damage, int ang)
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
int PlayerDamageSlide(PLAYER* pp, int damage, short ang)
|
int PlayerDamageSlide(PLAYER* pp, int damage, DAngle angle)
|
||||||
{
|
{
|
||||||
DAngle angle = DAngle::fromBuild(ang);
|
|
||||||
|
|
||||||
damage = abs(damage);
|
damage = abs(damage);
|
||||||
|
|
||||||
|
@ -5687,7 +5684,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5752,7 +5749,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5786,7 +5783,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5816,7 +5813,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5844,7 +5841,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5874,7 +5871,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5908,7 +5905,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5943,7 +5940,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -5974,7 +5971,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
{
|
{
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage/4, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage/4, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6050,7 +6047,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
// Is the player blocking?
|
// Is the player blocking?
|
||||||
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
if (actor->user.PlayerP->WpnKungFuMove == 3)
|
||||||
damage /= 3;
|
damage /= 3;
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6064,7 +6061,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6083,7 +6080,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6097,7 +6094,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6116,7 +6113,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6128,7 +6125,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6147,7 +6144,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6159,7 +6156,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6183,7 +6180,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
//PlayerDamageSlide(actor->user.PlayerP, damage, AngToPlayer(actor->user.PlayerP, weapActor));
|
//PlayerDamageSlide(actor->user.PlayerP, damage, AngToPlayer(actor->user.PlayerP, weapActor));
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage/2, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage/2, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6197,7 +6194,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
switch (actor->user.ID)
|
switch (actor->user.ID)
|
||||||
{
|
{
|
||||||
|
@ -6232,7 +6229,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6246,7 +6243,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6281,7 +6278,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6308,7 +6305,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6391,7 +6388,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage>>1, weapActor->int_ang());
|
ActorDamageSlide(actor, damage>>1, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6776,7 +6773,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6801,7 +6798,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6866,7 +6863,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6878,7 +6875,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6899,7 +6896,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
}
|
}
|
||||||
else if (actor->user.PlayerP)
|
else if (actor->user.PlayerP)
|
||||||
{
|
{
|
||||||
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->int_ang());
|
PlayerDamageSlide(actor->user.PlayerP, damage, weapActor->spr.angle);
|
||||||
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
if (PlayerTakeDamage(actor->user.PlayerP, weapActor))
|
||||||
{
|
{
|
||||||
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
PlayerUpdateHealth(actor->user.PlayerP, damage);
|
||||||
|
@ -6913,7 +6910,7 @@ int DoDamage(DSWActor* actor, DSWActor* weapActor)
|
||||||
ActorHealth(actor, damage);
|
ActorHealth(actor, damage);
|
||||||
ActorPain(actor);
|
ActorPain(actor);
|
||||||
ActorStdMissile(actor, weapActor);
|
ActorStdMissile(actor, weapActor);
|
||||||
ActorDamageSlide(actor, damage, weapActor->int_ang());
|
ActorDamageSlide(actor, damage, weapActor->spr.angle);
|
||||||
ActorChooseDeath(actor, weapActor);
|
ActorChooseDeath(actor, weapActor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8455,7 +8452,7 @@ int DoGrenade(DSWActor* actor)
|
||||||
{
|
{
|
||||||
for (i=0; i<5; i++)
|
for (i=0; i<5; i++)
|
||||||
{
|
{
|
||||||
actor->set_int_ang(NORM_ANGLE(RandomRange(2048)));
|
actor->spr.angle = RandomAngle();
|
||||||
InitPhosphorus(actor);
|
InitPhosphorus(actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8522,7 +8519,7 @@ int DoGrenade(DSWActor* actor)
|
||||||
{
|
{
|
||||||
for (i=0; i<5; i++)
|
for (i=0; i<5; i++)
|
||||||
{
|
{
|
||||||
actor->set_int_ang(NORM_ANGLE(RandomRange(2048)));
|
actor->spr.angle = RandomAngle();
|
||||||
InitPhosphorus(actor);
|
InitPhosphorus(actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8565,7 +8562,7 @@ int DoGrenade(DSWActor* actor)
|
||||||
{
|
{
|
||||||
for (i=0; i<5; i++)
|
for (i=0; i<5; i++)
|
||||||
{
|
{
|
||||||
actor->set_int_ang(NORM_ANGLE(RandomRange(2048)));
|
actor->spr.angle = RandomAngle();
|
||||||
InitPhosphorus(actor);
|
InitPhosphorus(actor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9277,7 +9274,7 @@ int DoEMPBurst(DSWActor* actor)
|
||||||
if (attachActor != nullptr)
|
if (attachActor != nullptr)
|
||||||
{
|
{
|
||||||
SetActorZ(actor, attachActor->spr.pos.plusZ(-actor->user.pos.Z));
|
SetActorZ(actor, attachActor->spr.pos.plusZ(-actor->user.pos.Z));
|
||||||
actor->set_int_ang(NORM_ANGLE(attachActor->int_ang() + 1024));
|
actor->spr.angle = attachActor->spr.angle + DAngle180;
|
||||||
}
|
}
|
||||||
|
|
||||||
// not activated yet
|
// not activated yet
|
||||||
|
@ -9675,7 +9672,7 @@ int SpawnExtraMicroMini(DSWActor* actor)
|
||||||
actorNew->user.floor_dist = actor->user.floor_dist;
|
actorNew->user.floor_dist = actor->user.floor_dist;
|
||||||
actorNew->spr.cstat = actor->spr.cstat;
|
actorNew->spr.cstat = actor->spr.cstat;
|
||||||
|
|
||||||
actorNew->set_int_ang(NORM_ANGLE(actorNew->int_ang() + RandomRange(64) - 32));
|
actorNew->spr.angle += RandomAngle(11.25) - DAngle22_5/2;
|
||||||
actorNew->vel.Z = -actor->vel.Z;
|
actorNew->vel.Z = -actor->vel.Z;
|
||||||
actorNew->add_int_zvel( RandomRange(Z(16)) - Z(8));
|
actorNew->add_int_zvel( RandomRange(Z(16)) - Z(8));
|
||||||
|
|
||||||
|
@ -14018,7 +14015,7 @@ int InitNuke(PLAYER* pp)
|
||||||
UpdateChangeXY(actorNew);
|
UpdateChangeXY(actorNew);
|
||||||
actorNew->user.set_int_change_z(zvel);
|
actorNew->user.set_int_change_z(zvel);
|
||||||
|
|
||||||
PlayerDamageSlide(pp, -40, NORM_ANGLE(pp->angle.ang.Buildang()+1024)); // Recoil slide
|
PlayerDamageSlide(pp, -40, pp->angle.ang + DAngle180); // Recoil slide
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,14 +33,14 @@ BEGIN_SW_NS
|
||||||
#define HORIZ_MULT 128
|
#define HORIZ_MULT 128
|
||||||
constexpr double HORIZ_MULTF = 0.5;
|
constexpr double HORIZ_MULTF = 0.5;
|
||||||
|
|
||||||
inline int AngToSprite(DSWActor* actor, DSWActor* other)
|
inline DAngle AngToSprite(DSWActor* actor, DSWActor* other)
|
||||||
{
|
{
|
||||||
return getangle(actor->spr.pos - other->spr.pos);
|
return VecToAngle(actor->spr.pos - other->spr.pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline int AngToPlayer(PLAYER* player, DSWActor* other)
|
inline DAngle AngToPlayer(PLAYER* player, DSWActor* other)
|
||||||
{
|
{
|
||||||
return getangle(player->pos - other->spr.pos);
|
return VecToAngle(player->pos - other->spr.pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -231,7 +231,7 @@ void AddSpriteToSectorObject(DSWActor*,SECTOR_OBJECT* sop);
|
||||||
void QueueReset(void);
|
void QueueReset(void);
|
||||||
int PlayerCheckDeath(PLAYER* pp,DSWActor*);
|
int PlayerCheckDeath(PLAYER* pp,DSWActor*);
|
||||||
bool SpriteWarpToUnderwater(DSWActor* actor);
|
bool SpriteWarpToUnderwater(DSWActor* actor);
|
||||||
int PlayerDamageSlide(PLAYER* pp,int damage,short ang);
|
int PlayerDamageSlide(PLAYER* pp,int damage,DAngle ang);
|
||||||
bool VehicleMoveHit(DSWActor*);
|
bool VehicleMoveHit(DSWActor*);
|
||||||
int SpawnSplash(DSWActor*);
|
int SpawnSplash(DSWActor*);
|
||||||
void SpawnMineExp(DSWActor*);
|
void SpawnMineExp(DSWActor*);
|
||||||
|
|
Loading…
Reference in a new issue