- Fixed: The global WeaponSection string was never freed. It has been replaced

with an FString now.
- Fixed: The music strings in the default level info were never freed and
  caused memory leaks when used repeatedly.
- Fixed: The intermusic string in the level info was never freed.
- Fixed: The default fire obituary should only be printed if the damage
  came from the environment. If it comes from a monster the monster specific
  obituary should be used instead.
- Added custom damage types from the floating point test release.
- Changed Pain Elemental's massacre check. Now A_PainDie checks for the damage 
  type and doesn't spawn anything if it is NAME_Massacre. A_PainDie can also 
  be used by other actors so a more generalized approach is needed than hard
  coding it into the Pain Elemental.
- Converted a few of Doom's monsters to DECORATE because I couldn't test the
  first version of the custom state code with the corpses inheriting from them.
- Added custom states from last year's floating point test release and fixed
  some bugs I found in that code. Unfortunately it wasn't all salvageable
  and it was easier to recreate some parts from scratch.



SVN r368 (trunk)
This commit is contained in:
Christoph Oelckers 2006-10-31 14:53:21 +00:00
commit 063c85b157
118 changed files with 2103 additions and 1818 deletions

View file

@ -124,7 +124,7 @@ IMPLEMENT_ACTOR (ADragonFireball, Hexen, -1, 0)
PROP_RadiusFixed (12)
PROP_HeightFixed (10)
PROP_Damage (6)
PROP_DamageType (MOD_FIRE)
PROP_DamageType (NAME_Fire)
PROP_Flags (MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DROPOFF|MF_MISSILE)
PROP_Flags2 (MF2_NOTELEPORT)
PROP_RenderStyle (STYLE_Add)
@ -163,7 +163,7 @@ FState ADragonExplosion::States[] =
IMPLEMENT_ACTOR (ADragonExplosion, Hexen, -1, 0)
PROP_RadiusFixed (8)
PROP_HeightFixed (8)
PROP_DamageType (MOD_FIRE)
PROP_DamageType (NAME_Fire)
PROP_Flags (MF_NOBLOCKMAP)
PROP_Flags2 (MF2_NOTELEPORT)
PROP_RenderFlags (RF_INVISIBLE)
@ -251,7 +251,7 @@ static void DragonSeek (AActor *actor, angle_t thresh, angle_t turnMax)
if (actor->CheckMeleeRange ())
{
int damage = pr_dragonseek.HitDice (10);
P_DamageMobj (actor->target, actor, actor, damage, MOD_HIT);
P_DamageMobj (actor->target, actor, actor, damage, NAME_Melee);
P_TraceBleed (damage, actor->target, actor);
S_SoundID (actor, CHAN_WEAPON, actor->AttackSound, 1, ATTN_NORM);
}
@ -365,7 +365,7 @@ void A_DragonFlight (AActor *actor)
if (abs(actor->angle-angle) < ANGLE_45/2 && actor->CheckMeleeRange())
{
int damage = pr_dragonflight.HitDice (8);
P_DamageMobj (actor->target, actor, actor, damage, MOD_HIT);
P_DamageMobj (actor->target, actor, actor, damage, NAME_Melee);
P_TraceBleed (damage, actor->target, actor);
S_SoundID (actor, CHAN_WEAPON, actor->AttackSound, 1, ATTN_NORM);
}