2019-05-30 21:24:47 +02:00
|
|
|
#pragma once
|
2019-08-02 00:04:30 +02:00
|
|
|
#include "Weapon.h"
|
2019-05-30 21:24:47 +02:00
|
|
|
|
2019-10-01 18:53:25 +02:00
|
|
|
enum ePickupType : uint8
|
2019-06-30 21:06:55 +02: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 18:53:25 +02:00
|
|
|
ePickupType m_eType;
|
|
|
|
bool m_bRemoved;
|
2019-06-30 21:06:55 +02:00
|
|
|
uint16 m_wQuantity;
|
|
|
|
CObject *m_pObject;
|
|
|
|
uint32 m_nTimer;
|
|
|
|
int16 m_eModelIndex;
|
|
|
|
int16 m_wIndex;
|
|
|
|
CVector m_vecPos;
|
|
|
|
};
|
2019-06-25 00:42:23 +02:00
|
|
|
|
2019-10-01 18:53:25 +02:00
|
|
|
static_assert(sizeof(CPickup) == 0x1C, "CPickup: error");
|
|
|
|
|
2019-05-30 21:24:47 +02:00
|
|
|
class CPickups
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static void RenderPickUpText(void);
|
2019-06-30 21:06:55 +02:00
|
|
|
static void DoCollectableEffects(CEntity *ent);
|
|
|
|
static void DoMoneyEffects(CEntity *ent);
|
|
|
|
static void DoMineEffects(CEntity *ent);
|
|
|
|
static void DoPickUpEffects(CEntity *ent);
|
2019-07-25 22:34:29 +02:00
|
|
|
static void RemoveAllFloatingPickups();
|
2019-08-02 00:04:30 +02:00
|
|
|
static int32 GenerateNewOne(CVector, uint32, uint8, uint32);
|
|
|
|
static int32 GenerateNewOne_WeaponType(CVector, eWeaponType, uint8, uint32);
|
2019-06-25 00:42:23 +02:00
|
|
|
|
2019-06-30 21:06:55 +02:00
|
|
|
static CPickup (&aPickUps)[NUMPICKUPS];
|
2019-05-30 21:24:47 +02:00
|
|
|
};
|
|
|
|
|
2019-08-03 15:01:13 +02:00
|
|
|
extern uint16 AmmoForWeapon[20];
|
|
|
|
extern uint16 AmmoForWeapon_OnStreet[20];
|
|
|
|
|
2019-05-30 21:24:47 +02:00
|
|
|
class CPacManPickups
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static void Render(void);
|
|
|
|
};
|