- Updated thingdef_specials.h for the new thingdef_specials.gperf file.

- Created a new MorphedMonster class that Chicken and Pig now derive from.
  This class automatically takes care of unmorphing the monster when its
  time is up.
- Made PlayerClass and MonsterClass properties of EggFX. You can override
  these in a subclass to create new kinds of morpher projectiles. Along with
  that, MorphWeapon is a new property of PlayerPawn that controls what type
  of weapon you have available while morphed ("None" means you have no
  weapons).
- Changed morphed monsters to record the time when they want to unmorph, not
  the time left until they unmorph. This simplifies calling
  P_UpdateMorhpedMonster() because you don't need to pass it a tic count.
- Added an optional second parameter to A_SpawnDebris and an optional
  fifth parameter to A_SpawnItem that both do the same thing: If you set it
  to 1, then the spawned actor will be assigned the same translation table
  as the actor that called the function.
- Moved the blood colorization in P_SpawnBlood() ahead of the SetDamage()
  call so that the blood color will available to the states of the blood
  actor.
- Extended the puke command so that giving it a negative script number will
  act like ACS_ExecuteAlways and always execute the script. (Ugh. Why did I
  use's Raven's cheat code to name this command?)


SVN r296 (trunk)
This commit is contained in:
Randy Heit 2006-08-17 00:19:26 +00:00
commit a6d656b108
17 changed files with 601 additions and 629 deletions

View file

@ -46,6 +46,7 @@
#include "w_wad.h"
#include "a_strifeglobal.h"
#include "thingdef.h"
#include "ravenshared.h"
void FActorInfo::BuildDefaults ()
{
@ -129,6 +130,7 @@ static void ApplyActorDefault (int defnum, const char *datastr, int dataint)
ASigil *const sigil = (ASigil *)sgDefaults;
AAmmo *const ammo = (AAmmo *)sgDefaults;
APlayerPawn *const player = (APlayerPawn *)sgDefaults;
AEggFX *const eggfx = (AEggFX *)sgDefaults;
switch (defnum)
{
@ -325,6 +327,7 @@ static void ApplyActorDefault (int defnum, const char *datastr, int dataint)
case ADEF_PlayerPawn_ColorRange: sgClass->Meta.SetMetaInt (APMETA_ColorRange, dataint); break;
case ADEF_PlayerPawn_CrouchSprite: player->crouchsprite = GetSpriteIndex(datastr); break;
case ADEF_PlayerPawn_SpawnMask: player->SpawnMask = dataint; break;
case ADEF_PlayerPawn_MorphWeapon: player->MorphWeapon = FName(datastr); break;
case ADEF_PlayerPawn_DisplayName:
sgClass->Meta.SetMetaString (APMETA_DisplayName, datastr);
@ -340,6 +343,9 @@ static void ApplyActorDefault (int defnum, const char *datastr, int dataint)
}
break;
case ADEF_EggFX_PlayerClass: eggfx->PlayerClass = FName(datastr); break;
case ADEF_EggFX_MonsterClass: eggfx->MonsterClass = FName(datastr); break;
}
}