diff options
Diffstat (limited to 'src/control/Pickups.h')
-rw-r--r-- | src/control/Pickups.h | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/control/Pickups.h b/src/control/Pickups.h index b05f5db7..d7d22174 100644 --- a/src/control/Pickups.h +++ b/src/control/Pickups.h @@ -8,6 +8,7 @@ enum ePickupType : uint8 PICKUP_ON_STREET, PICKUP_ONCE, PICKUP_ONCE_TIMEOUT, + PICKUP_ONCE_TIMEOUT_SLOW, PICKUP_COLLECTABLE1, PICKUP_IN_SHOP_OUT_OF_STOCK, PICKUP_MONEY, @@ -18,6 +19,9 @@ enum ePickupType : uint8 PICKUP_FLOATINGPACKAGE, PICKUP_FLOATINGPACKAGE_FLOATING, PICKUP_ON_STREET_SLOW, + PICKUP_ASSET_REVENUE, + PICKUP_PROPERTY_LOCKED, + PICKUP_PROPERTY_FORSALE, PICKUP_NUMOFTYPES }; @@ -29,20 +33,25 @@ class CPlayerPed; class CPickup { public: - ePickupType m_eType; - bool m_bRemoved; - uint16 m_nQuantity; + CVector m_vecPos; + uint32 m_nRevenue; CObject *m_pObject; + CObject *m_pExtraObject; + uint16 m_nQuantity; uint32 m_nTimer; + int16 m_nMoneySpeed; int16 m_eModelIndex; uint16 m_nIndex; - CVector m_vecPos; + char m_sTextKey[8]; + ePickupType m_eType; + bool m_bRemoved; + uint8 m_effects; CObject *GiveUsAPickUpObject(int32 handle); bool Update(CPlayerPed *player, CVehicle *vehicle, int playerId); private: bool IsMine() { return m_eType >= PICKUP_MINE_INACTIVE && m_eType <= PICKUP_FLOATINGPACKAGE_FLOATING; } - inline bool CanBePickedUp(CPlayerPed *player); + inline bool CanBePickedUp(CPlayerPed *player, int playerId); void RemoveKeepType(); void Remove(); }; @@ -66,6 +75,9 @@ class CPickups static int16 NumMessages; static tPickupMessage aMessages[NUMPICKUPMESSAGES]; public: + static int32 PlayerOnWeaponPickup; + static int32 CollectPickupBuffer; + static void Init(); static void Update(); static void RenderPickUpText(); @@ -73,7 +85,7 @@ public: static void DoMoneyEffects(CEntity *ent); static void DoMineEffects(CEntity *ent); static void DoPickUpEffects(CEntity *ent); - static int32 GenerateNewOne(CVector pos, uint32 modelIndex, uint8 type, uint32 quantity); + static int32 GenerateNewOne(CVector pos, uint32 modelIndex, uint8 type, uint32 quantity, uint32 rate = 0, bool highPriority = false, char* pText = nil); static int32 GenerateNewOne_WeaponType(CVector pos, eWeaponType weaponType, uint8 type, uint32 quantity); static void RemovePickUp(int32 pickupIndex); static void RemoveAllFloatingPickups(); @@ -81,11 +93,13 @@ public: static bool IsPickUpPickedUp(int32 pickupId); static int32 ModelForWeapon(eWeaponType weaponType); static enum eWeaponType WeaponForModel(int32 model); - static int32 FindColourIndexForWeaponMI(int32 model); static int32 GetActualPickupIndex(int32 index); static int32 GetNewUniquePickupIndex(int32 slot); static void PassTime(uint32 time); static bool GivePlayerGoodiesWithPickUpMI(int16 modelIndex, int playerIndex); + static bool TestForPickupsInBubble(CVector pos, float range); + static bool TryToMerge_WeaponType(CVector pos, eWeaponType weapon, uint8 type, uint32 quantity, bool unused); + static void CreateSomeMoney(CVector, int); static void Load(uint8 *buf, uint32 size); static void Save(uint8 *buf, uint32 *size); @@ -96,10 +110,13 @@ public: static CVehicle *pPlayerVehicle; static CVector StaticCamCoors; static uint32 StaticCamStartTime; + +//TODO(MIAMI) + static void RemoveAllPickupsOfACertainWeaponGroupWithNoAmmo(eWeaponType) {} }; extern uint16 AmmoForWeapon[20]; -extern uint16 AmmoForWeapon_OnStreet[20]; +extern uint16 AmmoForWeapon_OnStreet[WEAPONTYPE_TOTALWEAPONS]; extern uint16 CostOfWeapon[20]; enum ePacmanPickupType |