2016-11-30 11:24:50 +00:00
|
|
|
#pragma once
|
|
|
|
#include "a_pickups.h"
|
|
|
|
|
|
|
|
// Ammo: Something a weapon needs to operate
|
|
|
|
class PClassAmmo : public PClassInventory
|
|
|
|
{
|
|
|
|
DECLARE_CLASS(PClassAmmo, PClassInventory)
|
|
|
|
protected:
|
|
|
|
virtual void DeriveData(PClass *newclass);
|
|
|
|
public:
|
|
|
|
PClassAmmo();
|
|
|
|
|
|
|
|
int DropAmount; // Specifies the amount for a dropped ammo item.
|
|
|
|
};
|
|
|
|
|
|
|
|
class AAmmo : public AInventory
|
|
|
|
{
|
|
|
|
DECLARE_CLASS_WITH_META(AAmmo, AInventory, PClassAmmo)
|
|
|
|
public:
|
|
|
|
|
2016-11-30 14:54:01 +00:00
|
|
|
virtual void Serialize(FSerializer &arc) override;
|
|
|
|
virtual AInventory *CreateCopy (AActor *other) override;
|
|
|
|
virtual bool HandlePickup (AInventory *item) override;
|
|
|
|
virtual AInventory *CreateTossable () override;
|
2016-11-30 11:24:50 +00:00
|
|
|
PClassActor *GetParentAmmo () const;
|
|
|
|
|
|
|
|
int BackpackAmount, BackpackMaxAmount;
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// A backpack gives you one clip of each ammo and doubles your
|
|
|
|
// normal maximum ammo amounts.
|
|
|
|
class ABackpackItem : public AInventory
|
|
|
|
{
|
|
|
|
DECLARE_CLASS (ABackpackItem, AInventory)
|
|
|
|
public:
|
|
|
|
|
2016-11-30 14:54:01 +00:00
|
|
|
virtual void Serialize(FSerializer &arc) override;
|
|
|
|
virtual bool HandlePickup (AInventory *item) override;
|
|
|
|
virtual AInventory *CreateCopy (AActor *other) override;
|
|
|
|
virtual AInventory *CreateTossable () override;
|
|
|
|
virtual void DetachFromOwner () override;
|
2016-11-30 11:24:50 +00:00
|
|
|
|
|
|
|
bool bDepleted;
|
|
|
|
};
|
|
|
|
|
|
|
|
|