Files

70 lines
2.1 KiB
C++
Raw Permalink Normal View History

2023-08-09 02:53:18 +03:00
#ifndef _CSCRIPTPICKUP
#define _CSCRIPTPICKUP
#include "types.h"
#include "MetroidPrime/CActor.hpp"
#include "MetroidPrime/Player/CPlayerState.hpp"
class CGenDescription;
2023-08-10 15:25:59 +03:00
class CEchoParameters;
2023-08-09 02:53:18 +03:00
class CScriptPickup : public CActor {
2023-08-11 22:23:40 +03:00
CPlayerState::EItemType m_itemType; // x158
int m_amount;
int m_capacity;
int m_percentageIncrease;
float m_lifeTime;
float m_respawnTime;
2023-08-10 16:13:36 +03:00
float x170;
2023-08-11 22:23:40 +03:00
float m_fadeTime;
float m_curTime;
2023-08-10 16:13:36 +03:00
float x17c;
2023-08-11 22:23:40 +03:00
float m_pickupEffectLifetime;
float m_activateDelay;
float m_autoHomeRange;
float m_delayUntilHome;
float m_homingSpeed;
float m_transformZ;
rstl::optional_object< TCachedToken< CGenDescription > > m_pickupParticleDesc;
CAABox m_touchBounds;
2023-08-10 16:13:36 +03:00
int x1bc;
int x1c0;
2023-08-11 22:23:40 +03:00
CVector3f m_orbitOffset;
bool m_unknownProp : 1;
bool m_generated : 1; // unk
bool m_inTractor : 1; // unk
bool m_absoluteValue : 1;
bool m_enableTractorTest : 1; // unk
bool m_autoSpin : 1;
bool m_unk2 : 1;
bool m_unk3 : 1;
bool m_blinkOut : 1;
2023-08-09 02:53:18 +03:00
public:
CScriptPickup(TUniqueId uid, const rstl::string& name, const CEntityInfo& info,
const CTransform4f& xf, const CModelData& mData, const CActorParameters& aParams,
2023-08-10 15:25:59 +03:00
const CEchoParameters& echo, const CAABox& aabb, CPlayerState::EItemType itemType,
int amount, int capacityIncrease, int itemPercentageIncrease, CAssetId pickupEffect,
bool absoluteValue, bool unknown, bool autoSpin, bool blinkOut, float lifetime,
2023-08-10 16:13:36 +03:00
float respawnTime, float fadeTime, float activateDelay, float, float, float, float, const CVector3f& orbitOffset);
2023-08-10 15:25:59 +03:00
2023-08-09 02:53:18 +03:00
~CScriptPickup();
2024-01-22 11:55:44 +02:00
CEntity* TypesMatch(int typeId) const override;
2023-08-09 02:53:18 +03:00
void Think(float, CStateManager&) override;
void Touch(CActor&, CStateManager&) override;
rstl::optional_object< CAABox > GetTouchBounds() const override;
2024-01-22 11:55:44 +02:00
void AcceptScriptMsg(CStateManager& mgr, const CScriptMsg&) override;
2023-08-10 15:25:59 +03:00
2023-08-09 02:53:18 +03:00
void Render(const CStateManager&) const override;
void AddToRenderer(const CFrustumPlanes&, const CStateManager&) const override;
CPlayerState::EItemType GetItem() const;
void SetSpawned();
bool IsVisible() const;
};
#endif // _CSCRIPTPICKUP