qzdoom/src/g_hexen/a_hexenglobal.h
Christoph Oelckers 93cd78ebfb - Fixed: The check for no skill menu was incorrect when a custom player
class menu was present so instead of starting the game specific skill menu
  it always started Hexen's.
- Fixed: When a non-player tried to play a player sound it tried to access 
  the actor object as an APlayerPawn.
- Changed PlayAttacking2 to always use the melee state instead of different
  implementations per player and hard coding it to MissileState+1. Also
  changed PlayAttacking for the HereticPlayer to use the same animation as
  PlayAttacking2. Now the special handling for Heretic in the FireWeapon
  functions can be removed.

For R258:

- Fixed: PlayerStartItem created a duplicate of the item's class name before
  converting it into an FName.
- Removed game check for Doom from P_BloodSplatter. The BloodSplatter actor
  is compatible with all games now so the explicit handling is no longer needed.
- Moved replacement handling back into AActor::StaticSpawn but controlled
  by a (mandatory) parameter. Also added replacement to most other
  instances in the game where non-inventory items are spawned. Replacement is safe 
  nearly everywhere except for inventory related spawns.
- Fixed: Due to the player class inclusion A_NoBlocking never called
  NoBlockingSet for monsters.
- Changed: Sounds can be specified by full path now in SNDINFO and S_SKIN.


SVN r259 (trunk)
2006-07-16 10:23:14 +00:00

134 lines
3 KiB
C++

#ifndef __A_HEXENGLOBAL_H__
#define __A_HEXENGLOBAL_H__
#include "d_player.h"
class ALightning : public AActor
{
DECLARE_STATELESS_ACTOR (ALightning, AActor)
public:
int SpecialMissileHit (AActor *victim);
};
class APoisonCloud : public AActor
{
DECLARE_ACTOR (APoisonCloud, AActor)
public:
void GetExplodeParms (int &damage, int &distance, bool &hurtSource);
int DoSpecialDamage (AActor *target, int damage);
void BeginPlay ();
};
class ABishop : public AActor
{
DECLARE_ACTOR (ABishop, AActor)
public:
void GetExplodeParms (int &damage, int &distance, bool &hurtSource);
};
class AHeresiarch : public AActor
{
DECLARE_ACTOR (AHeresiarch, AActor)
public:
const PClass *StopBall;
void Serialize (FArchive &arc);
void Die (AActor *source, AActor *inflictor);
};
class AHolySpirit : public AActor
{
DECLARE_ACTOR (AHolySpirit, AActor)
public:
bool Slam (AActor *thing);
bool SpecialBlastHandling (AActor *source, fixed_t strength);
bool IsOkayToAttack (AActor *link);
};
class AHammerPuff : public AActor
{
DECLARE_ACTOR (AHammerPuff, AActor)
public:
void BeginPlay ();
};
class ACentaur : public AActor
{
DECLARE_ACTOR (ACentaur, AActor)
public:
void Howl ();
};
class AFourthWeaponPiece : public AInventory
{
DECLARE_STATELESS_ACTOR (AFourthWeaponPiece, AInventory)
HAS_OBJECT_POINTERS
public:
void Serialize (FArchive &arc);
bool TryPickup (AActor *toucher);
const char *PickupMessage ();
bool ShouldStay ();
void PlayPickupSound (AActor *toucher);
protected:
virtual bool MatchPlayerClass (AActor *toucher);
const PClass *FourthWeaponClass;
int PieceValue;
AInventory *TempFourthWeapon;
bool PrivateShouldStay ();
};
class AFighterPlayer : public APlayerPawn
{
DECLARE_ACTOR (AFighterPlayer, APlayerPawn)
public:
void GiveDefaultInventory ();
bool DoHealingRadius (APlayerPawn *other);
};
class AFighterWeapon : public AWeapon
{
DECLARE_STATELESS_ACTOR (AFighterWeapon, AWeapon);
public:
bool TryPickup (AActor *toucher);
};
class AClericPlayer : public APlayerPawn
{
DECLARE_ACTOR (AClericPlayer, APlayerPawn)
public:
void GiveDefaultInventory ();
void SpecialInvulnerabilityHandling (EInvulState state, fixed_t * pAlpha);
};
class AClericWeapon : public AWeapon
{
DECLARE_STATELESS_ACTOR (AClericWeapon, AWeapon);
public:
bool TryPickup (AActor *toucher);
};
class AMagePlayer : public APlayerPawn
{
DECLARE_ACTOR (AMagePlayer, APlayerPawn)
public:
void GiveDefaultInventory ();
bool DoHealingRadius (APlayerPawn *other);
void SpecialInvulnerabilityHandling (EInvulState state, fixed_t * pAlpha);
};
class AMageWeapon : public AWeapon
{
DECLARE_STATELESS_ACTOR (AMageWeapon, AWeapon);
public:
bool TryPickup (AActor *toucher);
};
class ASwitchableDecoration : public AActor
{
DECLARE_STATELESS_ACTOR (ASwitchableDecoration, AActor)
public:
void Activate (AActor *activator);
void Deactivate (AActor *activator);
};
#endif //__A_HEXENGLOBAL_H__