mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 07:12:02 +00:00
- Fixed: Reflected projectiles were always changing their angles to 0.
This commit is contained in:
parent
2a0fc16ce3
commit
fa411af1da
1 changed files with 3 additions and 1 deletions
|
@ -1970,6 +1970,7 @@ fixed_t P_XYMovement (AActor *mo, fixed_t scrollx, fixed_t scrolly)
|
||||||
{
|
{
|
||||||
//int dir;
|
//int dir;
|
||||||
//angle_t delta;
|
//angle_t delta;
|
||||||
|
angle = R_PointToAngle2(BlockingMobj->x, BlockingMobj->y, mo->x, mo->y);
|
||||||
bool dontReflect = (mo->AdjustReflectionAngle(BlockingMobj, angle));
|
bool dontReflect = (mo->AdjustReflectionAngle(BlockingMobj, angle));
|
||||||
// Change angle for deflection/reflection
|
// Change angle for deflection/reflection
|
||||||
|
|
||||||
|
@ -1989,7 +1990,7 @@ fixed_t P_XYMovement (AActor *mo, fixed_t scrollx, fixed_t scrolly)
|
||||||
//dest->x - source->x
|
//dest->x - source->x
|
||||||
FVector3 velocity(origin->x - mo->x, origin->y - mo->y, (origin->z + (origin->height/2)) - mo->z);
|
FVector3 velocity(origin->x - mo->x, origin->y - mo->y, (origin->z + (origin->height/2)) - mo->z);
|
||||||
velocity.Resize(speed);
|
velocity.Resize(speed);
|
||||||
angle = mo->angle >> ANGLETOFINESHIFT;
|
angle = mo->angle >>= ANGLETOFINESHIFT;
|
||||||
mo->velx = (fixed_t)(velocity.X);
|
mo->velx = (fixed_t)(velocity.X);
|
||||||
mo->vely = (fixed_t)(velocity.Y);
|
mo->vely = (fixed_t)(velocity.Y);
|
||||||
mo->velz = (fixed_t)(velocity.Z);
|
mo->velz = (fixed_t)(velocity.Z);
|
||||||
|
@ -2001,6 +2002,7 @@ fixed_t P_XYMovement (AActor *mo, fixed_t scrollx, fixed_t scrolly)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
mo->angle = angle;
|
mo->angle = angle;
|
||||||
angle >>= ANGLETOFINESHIFT;
|
angle >>= ANGLETOFINESHIFT;
|
||||||
mo->velx = FixedMul(mo->Speed >> 1, finecosine[angle]);
|
mo->velx = FixedMul(mo->Speed >> 1, finecosine[angle]);
|
||||||
|
|
Loading…
Reference in a new issue