- sync source with latest GZDoom:
Includes: - Made the move tried from checking missile spawns ignore drop off height. This solves the Voodoo Gun ghostly civilian issue. - Fixed: the NOTELEPORT flag is removed from Dehacked missiles which lose the MISSILE flag. This caused problems with certain special effects based on dehacked spawn cubes. - Fixed: all Boom silent teleporters preserve relative height. - support for palette independent particle colors if the renderer can handle them. SVN r3329 (trunk)
This commit is contained in:
parent
8e8331d44c
commit
893455ef61
20 changed files with 488 additions and 339 deletions
|
|
@ -99,7 +99,7 @@ void P_SpawnTeleportFog(fixed_t x, fixed_t y, fixed_t z, int spawnid)
|
|||
//
|
||||
|
||||
bool P_Teleport (AActor *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle,
|
||||
bool useFog, bool sourceFog, bool keepOrientation, bool bHaltVelocity)
|
||||
bool useFog, bool sourceFog, bool keepOrientation, bool bHaltVelocity, bool keepHeight)
|
||||
{
|
||||
fixed_t oldx;
|
||||
fixed_t oldy;
|
||||
|
|
@ -127,7 +127,11 @@ bool P_Teleport (AActor *thing, fixed_t x, fixed_t y, fixed_t z, angle_t angle,
|
|||
{ // We don't measure z velocity, because it doesn't change.
|
||||
missilespeed = xs_CRoundToInt(TVector2<double>(thing->velx, thing->vely).Length());
|
||||
}
|
||||
if (z == ONFLOORZ)
|
||||
if (keepHeight)
|
||||
{
|
||||
z = floorheight + aboveFloor;
|
||||
}
|
||||
else if (z == ONFLOORZ)
|
||||
{
|
||||
if (player)
|
||||
{
|
||||
|
|
@ -320,7 +324,7 @@ static AActor *SelectTeleDest (int tid, int tag)
|
|||
}
|
||||
|
||||
bool EV_Teleport (int tid, int tag, line_t *line, int side, AActor *thing, bool fog,
|
||||
bool sourceFog, bool keepOrientation, bool haltVelocity)
|
||||
bool sourceFog, bool keepOrientation, bool haltVelocity, bool keepHeight)
|
||||
{
|
||||
AActor *searcher;
|
||||
fixed_t z;
|
||||
|
|
@ -377,7 +381,7 @@ bool EV_Teleport (int tid, int tag, line_t *line, int side, AActor *thing, bool
|
|||
{
|
||||
badangle = 1 << ANGLETOFINESHIFT;
|
||||
}
|
||||
if (P_Teleport (thing, searcher->x, searcher->y, z, searcher->angle + badangle, fog, sourceFog, keepOrientation, haltVelocity))
|
||||
if (P_Teleport (thing, searcher->x, searcher->y, z, searcher->angle + badangle, fog, sourceFog, keepOrientation, haltVelocity, keepHeight))
|
||||
{
|
||||
// [RH] Lee Killough's changes for silent teleporters from BOOM
|
||||
if (!fog && line && keepOrientation)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue