metaforce/Runtime/World/CPatternedInfo.hpp

75 lines
2.3 KiB
C++
Raw Normal View History

2018-10-06 20:42:33 -07:00
#pragma once
2016-04-24 22:03:38 -07:00
#include "Runtime/RetroTypes.hpp"
#include "Runtime/World/CAnimationParameters.hpp"
#include "Runtime/World/CDamageInfo.hpp"
#include "Runtime/World/CDamageVulnerability.hpp"
#include "Runtime/World/CHealthInfo.hpp"
#include <zeus/CVector3f.hpp>
2016-04-24 22:03:38 -07:00
2021-04-10 01:42:06 -07:00
namespace metaforce {
2016-04-24 22:03:38 -07:00
2018-12-07 21:30:43 -08:00
class CPatternedInfo {
friend class CPatterned;
float x0_mass;
float x4_speed;
float x8_turnSpeed;
float xc_detectionRange;
float x10_detectionHeightRange;
float x14_dectectionAngle;
float x18_minAttackRange;
float x1c_maxAttackRange;
float x20_averageAttackTime;
float x24_attackTimeVariation;
float x28_leashRadius;
float x2c_playerLeashRadius;
float x30_playerLeashTime;
CDamageInfo x34_contactDamageInfo;
float x50_damageWaitTime;
CHealthInfo x54_healthInfo;
CDamageVulnerability x5c_damageVulnerability;
float xc4_halfExtent;
float xc8_height;
zeus::CVector3f xcc_bodyOrigin;
float xd8_stepUpHeight;
float xdc_xDamage;
float xe0_frozenXDamage;
float xe4_xDamageDelay;
u16 xe8_deathSfx;
CAnimationParameters xec_animParams;
bool xf8_active;
CAssetId xfc_stateMachineId;
float x100_intoFreezeDur;
float x104_outofFreezeDur;
float x108_freezeDur;
2016-04-24 22:03:38 -07:00
2018-12-07 21:30:43 -08:00
u32 x10c_pathfindingIndex;
2019-01-15 20:22:44 -08:00
2018-12-07 21:30:43 -08:00
zeus::CVector3f x110_particle1Scale;
CAssetId x11c_particle1;
CAssetId x120_electric;
zeus::CVector3f x124_particle2Scale;
CAssetId x130_particle2;
2016-04-24 22:03:38 -07:00
2018-12-07 21:30:43 -08:00
u16 x134_iceShatterSfx = 0xffff;
2016-04-24 22:03:38 -07:00
public:
2018-12-07 21:30:43 -08:00
CPatternedInfo(CInputStream& in, u32 pcount);
static std::pair<bool, u32> HasCorrectParameterCount(CInputStream& in);
2016-04-24 22:03:38 -07:00
float GetTurnSpeed() const { return x8_turnSpeed; }
2018-12-07 21:30:43 -08:00
float GetDetectionHeightRange() const { return x10_detectionHeightRange; }
2018-12-31 00:37:52 -08:00
const CHealthInfo& GetHealthInfo() const { return x54_healthInfo; }
const CDamageVulnerability& GetDamageVulnerability() const { return x5c_damageVulnerability; }
2018-12-07 21:30:43 -08:00
float GetHalfExtent() const { return xc4_halfExtent; }
float GetHeight() const { return xc8_height; }
2018-12-10 20:17:02 -08:00
zeus::CVector3f GetBodyOrigin() const { return xcc_bodyOrigin; }
2018-12-07 21:30:43 -08:00
CAnimationParameters& GetAnimationParameters() { return xec_animParams; }
const CAnimationParameters& GetAnimationParameters() const { return xec_animParams; }
u32 GetPathfindingIndex() const { return x10c_pathfindingIndex; }
2019-01-15 20:22:44 -08:00
bool GetActive() const { return xf8_active; }
void SetActive(bool active) { xf8_active = active; }
2016-04-24 22:03:38 -07:00
};
2021-04-10 01:42:06 -07:00
} // namespace metaforce