re3/src/control/Pickups.h

63 lines
1.3 KiB
C
Raw Normal View History

#pragma once
2019-08-01 22:04:30 +00:00
#include "Weapon.h"
2019-10-01 16:53:25 +00:00
enum ePickupType : uint8
2019-06-30 19:06:55 +00:00
{
PICKUP_NONE = 0,
PICKUP_IN_SHOP = 1,
PICKUP_ON_STREET = 2,
PICKUP_ONCE = 3,
PICKUP_ONCE_TIMEOUT = 4,
PICKUP_COLLECTABLE1 = 5,
PICKUP_IN_SHOP_OUT_OF_STOCK = 6,
PICKUP_MONEY = 7,
PICKUP_MINE_INACTIVE = 8,
PICKUP_MINE_ARMED = 9,
PICKUP_NAUTICAL_MINE_INACTIVE = 10,
PICKUP_NAUTICAL_MINE_ARMED = 11,
PICKUP_FLOATINGPACKAGE = 12,
PICKUP_FLOATINGPACKAGE_FLOATING = 13,
PICKUP_ON_STREET_SLOW = 14,
};
class CEntity;
class CObject;
class CPickup
{
2019-10-01 16:53:25 +00:00
ePickupType m_eType;
bool m_bRemoved;
2019-06-30 19:06:55 +00:00
uint16 m_wQuantity;
CObject *m_pObject;
uint32 m_nTimer;
int16 m_eModelIndex;
int16 m_wIndex;
CVector m_vecPos;
};
2019-06-24 22:42:23 +00:00
2019-10-01 16:53:25 +00:00
static_assert(sizeof(CPickup) == 0x1C, "CPickup: error");
class CPickups
{
public:
static void RenderPickUpText(void);
2019-06-30 19:06:55 +00:00
static void DoCollectableEffects(CEntity *ent);
static void DoMoneyEffects(CEntity *ent);
static void DoMineEffects(CEntity *ent);
static void DoPickUpEffects(CEntity *ent);
2019-07-25 20:34:29 +00:00
static void RemoveAllFloatingPickups();
2019-08-01 22:04:30 +00:00
static int32 GenerateNewOne(CVector, uint32, uint8, uint32);
static int32 GenerateNewOne_WeaponType(CVector, eWeaponType, uint8, uint32);
2019-06-24 22:42:23 +00:00
2019-06-30 19:06:55 +00:00
static CPickup (&aPickUps)[NUMPICKUPS];
};
2019-08-03 13:01:13 +00:00
extern uint16 AmmoForWeapon[20];
extern uint16 AmmoForWeapon_OnStreet[20];
class CPacManPickups
{
public:
static void Render(void);
};