mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2024-12-13 13:40:53 +00:00
a6d656b108
- 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)
64 lines
1.4 KiB
C++
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__
|