qzdoom-gpl/src/g_raven/ravenshared.h
Randy Heit a6d656b108 - 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)
2006-08-17 00:19:26 +00:00

64 lines
1.4 KiB
C++

#ifndef __RAVENSHARED_H__
#define __RAVENSHARED_H__
class AActor;
class player_s;
bool P_MorphPlayer (player_s *player);
bool P_UndoPlayerMorph (player_s *player, bool force);
bool P_MorphMonster (AActor *actor, const PClass *morphClass);
bool P_UpdateMorphedMonster (AActor *actor);
class AMinotaur : public AActor
{
DECLARE_ACTOR (AMinotaur, AActor)
public:
void NoBlockingSet ();
int DoSpecialDamage (AActor *target, int damage);
public:
bool Slam (AActor *);
void Tick ();
};
class AMinotaurFriend : public AMinotaur
{
DECLARE_STATELESS_ACTOR (AMinotaurFriend, AMinotaur)
public:
int StartTime;
void NoBlockingSet ();
bool IsOkayToAttack (AActor *target);
void Die (AActor *source, AActor *inflictor);
bool OkayToSwitchTarget (AActor *other);
void BeginPlay ();
void Serialize (FArchive &arc);
};
class AEggFX : public AActor
{
DECLARE_ACTOR (AEggFX, AActor)
public:
int DoSpecialDamage (AActor *target, int damage);
void Serialize (FArchive &arc);
int PlayerClass, MonsterClass; // actually names
};
class AMorphedMonster : public AActor
{
DECLARE_ACTOR (AMorphedMonster, AActor)
HAS_OBJECT_POINTERS
public:
void Tick ();
void Serialize (FArchive &arc);
void Die (AActor *source, AActor *inflictor);
void Destroy ();
AActor *UnmorphedMe;
int UnmorphTime;
DWORD FlagsSave;
};
#endif //__RAVENSHARED_H__