- 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

@ -37,8 +37,7 @@ public:
FState *GetUpState ();
FState *GetDownState ();
FState *GetReadyState ();
FState *GetAtkState ();
FState *GetHoldAtkState ();
FState *GetAtkState (bool hold);
};
FState AFWeapAxe::States[] =
@ -121,27 +120,22 @@ END_DEFAULTS
FState *AFWeapAxe::GetUpState ()
{
return Ammo1->Amount ? &States[S_FAXEUP_G] : UpState;
return Ammo1->Amount ? &States[S_FAXEUP_G] : Super::GetUpState();
}
FState *AFWeapAxe::GetDownState ()
{
return Ammo1->Amount ? &States[S_FAXEDOWN_G] : DownState;
return Ammo1->Amount ? &States[S_FAXEDOWN_G] : Super::GetDownState();
}
FState *AFWeapAxe::GetReadyState ()
{
return Ammo1->Amount ? &States[S_FAXEREADY_G] : ReadyState;
return Ammo1->Amount ? &States[S_FAXEREADY_G] : Super::GetReadyState();
}
FState *AFWeapAxe::GetAtkState ()
FState *AFWeapAxe::GetAtkState (bool hold)
{
return Ammo1->Amount ? &States[S_FAXEATK_G] : AtkState;
}
FState *AFWeapAxe::GetHoldAtkState ()
{
return Ammo1->Amount ? &States[S_FAXEATK_G] : HoldAtkState;
return Ammo1->Amount ? &States[S_FAXEATK_G] : Super::GetAtkState(hold);
}
// Axe Puff -----------------------------------------------------------------
@ -388,7 +382,7 @@ void A_FAxeAttack (AActor *actor)
slope = P_AimLineAttack (pmo, angle, AXERANGE);
if (linetarget)
{
P_LineAttack (pmo, angle, AXERANGE, slope, damage, MOD_HIT, pufftype);
P_LineAttack (pmo, angle, AXERANGE, slope, damage, NAME_Melee, pufftype);
if (linetarget->flags3&MF3_ISMONSTER || linetarget->player)
{
P_ThrustMobj (linetarget, angle, power);
@ -401,7 +395,7 @@ void A_FAxeAttack (AActor *actor)
slope = P_AimLineAttack (pmo, angle, AXERANGE);
if (linetarget)
{
P_LineAttack (pmo, angle, AXERANGE, slope, damage, MOD_HIT, pufftype);
P_LineAttack (pmo, angle, AXERANGE, slope, damage, NAME_Melee, pufftype);
if (linetarget->flags3&MF3_ISMONSTER)
{
P_ThrustMobj (linetarget, angle, power);
@ -416,7 +410,7 @@ void A_FAxeAttack (AActor *actor)
angle = pmo->angle;
slope = P_AimLineAttack (pmo, angle, MELEERANGE);
P_LineAttack (pmo, angle, MELEERANGE, slope, damage, MOD_HIT, pufftype);
P_LineAttack (pmo, angle, MELEERANGE, slope, damage, NAME_Melee, pufftype);
axedone:
if (useMana == 2)