- fixed: WIF_STAFF2_KICKBACK did not work anymore because it depended on conditions
that were changed some time ago. - fixed: The damage inflictor for a rail attack was the shooter, not the puff. - Fixed: Floor and ceiling huggers may not change their z-velocity when seeking. - Fixed: UDMF set the secret sector flag before parsing the sector's properties, resulting in it always being false. - Renamed sector's oldspecial variable to secretsector to better reflect its only use. - Fixed: A_BrainSpit stored as the SpawnShot's target the intended BossTarget, not itself contrarily to other projectile spawning functions. A_SpawnFly then used the target for CopyFriendliness, thinking it'll be the BossEye when in fact it wasn't. - Added Gez's submission for a DEHACKED hack introduced by Boom. (using code pointers of the form 'Pointer 0 (x statenumber)'. - fixed: Attaching 3DMidtex lines by sector tag did not work because lines were marked by index in the sector's line list but needed to be marked by line index in the global array. - fixed: On Linux ZDoom was creating a directory called "~.zdoom" for save files because of a missing slash. - fixed: UDMF was unable to read floating point values in exponential format because the C Mode scanner was missing a definition for them. - fixed: The recent changes for removing pointer aliasing got the end sequence info from an incorrect variable. To make this more robust the sequence index is now stored as a hexadecimal string to avoid storing binary data in a string. Also moved end sequence lookup from f_finale.cpp to the calling code so that the proper end sequences can be retrieved for secret exits, too. SVN r1777 (trunk)
This commit is contained in:
parent
6e3fdbdfc8
commit
ba28749df7
24 changed files with 847 additions and 495 deletions
|
|
@ -3567,6 +3567,11 @@ void P_RailAttack (AActor *source, int damage, int offset, int color1, int color
|
|||
AActor *puffDefaults = puffclass == NULL? NULL : GetDefaultByType (puffclass);
|
||||
FName damagetype = (puffDefaults == NULL || puffDefaults->DamageType == NAME_None) ? FName(NAME_Railgun) : puffDefaults->DamageType;
|
||||
|
||||
// used as damage inflictor
|
||||
AActor *thepuff = NULL;
|
||||
|
||||
if (puffclass != NULL) thepuff = Spawn (puffclass, source->x, source->y, source->z, ALLOW_REPLACE);
|
||||
|
||||
for (i = 0; i < RailHits.Size (); i++)
|
||||
{
|
||||
fixed_t x, y, z;
|
||||
|
|
@ -3585,7 +3590,7 @@ void P_RailAttack (AActor *source, int damage, int offset, int color1, int color
|
|||
P_SpawnBlood (x, y, z, source->angle - ANG180, damage, RailHits[i].HitActor);
|
||||
P_TraceBleed (damage, x, y, z, RailHits[i].HitActor, source->angle, pitch);
|
||||
}
|
||||
P_DamageMobj (RailHits[i].HitActor, source, source, damage, damagetype);
|
||||
P_DamageMobj (RailHits[i].HitActor, thepuff? thepuff:source, source, damage, damagetype, DMG_INFLICTOR_IS_PUFF);
|
||||
}
|
||||
|
||||
// Spawn a decal or puff at the point where the trace ended.
|
||||
|
|
@ -3597,22 +3602,20 @@ void P_RailAttack (AActor *source, int damage, int offset, int color1, int color
|
|||
trace.CrossedWater == NULL &&
|
||||
trace.Sector->heightsec == NULL)
|
||||
{
|
||||
AActor *thepuff = Spawn (puffclass, trace.X, trace.Y, trace.Z, ALLOW_REPLACE);
|
||||
if (thepuff != NULL)
|
||||
{
|
||||
thepuff->SetOrigin(trace.X, trace.Y, trace.Z);
|
||||
P_HitWater (thepuff, trace.Sector);
|
||||
thepuff->Destroy ();
|
||||
}
|
||||
}
|
||||
if (trace.CrossedWater)
|
||||
{
|
||||
AActor *thepuff = Spawn (puffclass, 0, 0, 0, ALLOW_REPLACE);
|
||||
if (thepuff != NULL)
|
||||
{
|
||||
SpawnDeepSplash (source, trace, thepuff, vx, vy, vz, shootz);
|
||||
thepuff->Destroy ();
|
||||
}
|
||||
}
|
||||
thepuff->Destroy ();
|
||||
|
||||
// Draw the slug's trail.
|
||||
end.X = FIXED2FLOAT(trace.X);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue