2018-10-07 03:42:33 +00:00
|
|
|
#pragma once
|
2016-04-25 05:03:38 +00:00
|
|
|
|
|
|
|
#include "RetroTypes.hpp"
|
|
|
|
#include "CDamageInfo.hpp"
|
|
|
|
#include "CHealthInfo.hpp"
|
|
|
|
#include "CDamageVulnerability.hpp"
|
|
|
|
#include "CAnimationParameters.hpp"
|
|
|
|
#include "zeus/CVector3f.hpp"
|
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
namespace urde {
|
2016-04-25 05:03:38 +00:00
|
|
|
|
2018-12-08 05:30:43 +00: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_;
|
2016-04-25 05:03:38 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
u32 x10c_pathfindingIndex;
|
2019-01-16 04:22:44 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
zeus::CVector3f x110_particle1Scale;
|
|
|
|
CAssetId x11c_particle1;
|
|
|
|
CAssetId x120_electric;
|
|
|
|
zeus::CVector3f x124_particle2Scale;
|
|
|
|
CAssetId x130_particle2;
|
2016-04-25 05:03:38 +00:00
|
|
|
|
2018-12-08 05:30:43 +00:00
|
|
|
u16 x134_iceShatterSfx = 0xffff;
|
2016-04-25 05:03:38 +00:00
|
|
|
|
|
|
|
public:
|
2018-12-08 05:30:43 +00:00
|
|
|
CPatternedInfo(CInputStream& in, u32 pcount);
|
|
|
|
static std::pair<bool, u32> HasCorrectParameterCount(CInputStream& in);
|
2016-04-25 05:03:38 +00:00
|
|
|
|
2019-08-31 09:02:21 +00:00
|
|
|
float GetTurnSpeed() const { return x8_turnSpeed; }
|
2018-12-08 05:30:43 +00:00
|
|
|
float GetDetectionHeightRange() const { return x10_detectionHeightRange; }
|
2018-12-31 08:37:52 +00:00
|
|
|
const CHealthInfo& GetHealthInfo() const { return x54_healthInfo; }
|
|
|
|
const CDamageVulnerability& GetDamageVulnerability() const { return x5c_damageVulnerability; }
|
2018-12-08 05:30:43 +00:00
|
|
|
float GetHalfExtent() const { return xc4_halfExtent; }
|
|
|
|
float GetHeight() const { return xc8_height; }
|
2018-12-11 04:17:02 +00:00
|
|
|
zeus::CVector3f GetBodyOrigin() const { return xcc_bodyOrigin; }
|
2018-12-08 05:30:43 +00:00
|
|
|
CAnimationParameters& GetAnimationParameters() { return xec_animParams; }
|
|
|
|
const CAnimationParameters& GetAnimationParameters() const { return xec_animParams; }
|
|
|
|
u32 GetPathfindingIndex() const { return x10c_pathfindingIndex; }
|
2019-01-16 04:22:44 +00:00
|
|
|
bool GetActive() const { return xf8_active; }
|
2016-04-25 05:03:38 +00:00
|
|
|
};
|
2018-12-08 05:30:43 +00:00
|
|
|
} // namespace urde
|