2006-02-24 04:48:15 +00:00
|
|
|
|
2016-02-10 09:04:52 +00:00
|
|
|
//
|
2016-02-09 22:08:51 +00:00
|
|
|
class PClassWeaponPiece : public PClassInventory
|
|
|
|
{
|
|
|
|
DECLARE_CLASS(PClassWeaponPiece, PClassInventory)
|
|
|
|
protected:
|
|
|
|
public:
|
|
|
|
virtual void ReplaceClassRef(PClass *oldclass, PClass *newclass);
|
|
|
|
};
|
|
|
|
|
2006-02-24 04:48:15 +00:00
|
|
|
class AWeaponPiece : public AInventory
|
|
|
|
{
|
2016-02-09 22:08:51 +00:00
|
|
|
DECLARE_CLASS_WITH_META(AWeaponPiece, AInventory, PClassWeaponPiece)
|
2008-03-12 02:56:11 +00:00
|
|
|
HAS_OBJECT_POINTERS
|
2006-02-24 04:48:15 +00:00
|
|
|
protected:
|
|
|
|
bool PrivateShouldStay ();
|
|
|
|
public:
|
|
|
|
void Serialize (FArchive &arc);
|
2008-09-13 22:08:41 +00:00
|
|
|
bool TryPickup (AActor *&toucher);
|
2011-09-23 08:23:51 +00:00
|
|
|
bool TryPickupRestricted (AActor *&toucher);
|
2006-02-24 04:48:15 +00:00
|
|
|
bool ShouldStay ();
|
|
|
|
virtual const char *PickupMessage ();
|
|
|
|
virtual void PlayPickupSound (AActor *toucher);
|
|
|
|
|
|
|
|
int PieceValue;
|
2010-03-25 20:38:00 +00:00
|
|
|
PClassWeapon *WeaponClass;
|
2008-03-12 02:56:11 +00:00
|
|
|
TObjPtr<AWeapon> FullWeapon;
|
2006-02-24 04:48:15 +00:00
|
|
|
};
|
2008-05-18 15:48:03 +00:00
|
|
|
|
|
|
|
// an internal class to hold the information for player class independent weapon piece handling
|
|
|
|
// [BL] Needs to be available for SBarInfo to check weaponpieces
|
|
|
|
class AWeaponHolder : public AInventory
|
|
|
|
{
|
2008-08-09 11:35:42 +00:00
|
|
|
DECLARE_CLASS(AWeaponHolder, AInventory)
|
2008-05-18 15:48:03 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
int PieceMask;
|
|
|
|
const PClass * PieceWeapon;
|
|
|
|
|
2008-09-15 00:47:31 +00:00
|
|
|
void Serialize (FArchive &arc);
|
2008-05-18 15:48:03 +00:00
|
|
|
};
|