mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-06-17 00:33:30 +00:00
Retro seemingly avoided using the Dolphin typedefs in most places, opting to use int/uint instead. This likely means they didn't use u8/s8/u16/s16/etc either. Former-commit-id: 133326ae406a0ebc76f56f8bcb489fda280be2be
40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
#ifndef _CWEAPON
|
|
#define _CWEAPON
|
|
|
|
#include "types.h"
|
|
|
|
#include "MetroidPrime/CActor.hpp"
|
|
#include "MetroidPrime/CDamageInfo.hpp"
|
|
#include "MetroidPrime/Weapons/WeaponTypes.hpp"
|
|
|
|
class CWeapon : public CActor {
|
|
public:
|
|
// TODO
|
|
|
|
// CEntity
|
|
~CWeapon() override;
|
|
void Think(float dt, CStateManager& mgr) override;
|
|
|
|
// CActor
|
|
void Render(const CStateManager&) const override;
|
|
EWeaponCollisionResponseTypes GetCollisionResponseType(const CVector3f&, const CVector3f&,
|
|
const CWeaponMode&,
|
|
int /*EProjectileAttrib?*/) const override;
|
|
void FluidFXThink(EFluidState, CScriptWater&, CStateManager&) override;
|
|
|
|
private:
|
|
EProjectileAttrib xe8_projectileAttribs;
|
|
TUniqueId xec_ownerId;
|
|
EWeaponType xf0_weaponType;
|
|
CMaterialFilter xf8_filter;
|
|
CDamageInfo x110_origDamageInfo;
|
|
CDamageInfo x12c_curDamageInfo;
|
|
float x148_curTime;
|
|
float x14c_damageFalloffSpeed;
|
|
float x150_damageDuration;
|
|
float x154_interferenceDuration;
|
|
};
|
|
CHECK_SIZEOF(CWeapon, 0x158)
|
|
|
|
#endif // _CWEAPON
|