mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-07-05 19:55:51 +00:00
Initial ElitePirate imps
This commit is contained in:
parent
e5df609673
commit
566c356612
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include "Runtime/Collision/CCollisionActorManager.hpp"
|
#include "Runtime/Collision/CCollisionActorManager.hpp"
|
||||||
#include "Runtime/CSimplePool.hpp"
|
#include "Runtime/CSimplePool.hpp"
|
||||||
|
#include "Runtime/CStateManager.hpp"
|
||||||
#include "Runtime/GameGlobalObjects.hpp"
|
#include "Runtime/GameGlobalObjects.hpp"
|
||||||
#include "Runtime/World/CPatternedInfo.hpp"
|
#include "Runtime/World/CPatternedInfo.hpp"
|
||||||
#include "Runtime/World/ScriptLoader.hpp"
|
#include "Runtime/World/ScriptLoader.hpp"
|
||||||
@ -39,6 +40,7 @@ CElitePirateData::CElitePirateData(CInputStream& in, u32 propCount)
|
|||||||
, xec_(zeus::degToRad(in.readFloatBig()))
|
, xec_(zeus::degToRad(in.readFloatBig()))
|
||||||
, xf0_(in.readUint32Big())
|
, xf0_(in.readUint32Big())
|
||||||
, xf4_(CSfxManager::TranslateSFXID(in.readUint32Big()))
|
, xf4_(CSfxManager::TranslateSFXID(in.readUint32Big()))
|
||||||
|
, xf6_(CSfxManager::TranslateSFXID(in.readUint32Big()))
|
||||||
, xf8_(in)
|
, xf8_(in)
|
||||||
, xfc_(in)
|
, xfc_(in)
|
||||||
, x118_(in)
|
, x118_(in)
|
||||||
@ -71,6 +73,36 @@ CElitePirate::CElitePirate(TUniqueId uid, std::string_view name, const CEntityIn
|
|||||||
void CElitePirate::Accept(IVisitor& visitor) { visitor.Visit(this); }
|
void CElitePirate::Accept(IVisitor& visitor) { visitor.Visit(this); }
|
||||||
void CElitePirate::Think(float dt, CStateManager& mgr) { CPatterned::Think(dt, mgr); }
|
void CElitePirate::Think(float dt, CStateManager& mgr) { CPatterned::Think(dt, mgr); }
|
||||||
void CElitePirate::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) {
|
void CElitePirate::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) {
|
||||||
|
|
||||||
|
switch (msg) {
|
||||||
|
case EScriptObjectMessage::Activate: {
|
||||||
|
if (V179())
|
||||||
|
x730_->SetActive(mgr, true);
|
||||||
|
if (CEntity* ent = mgr.ObjectById(x772_))
|
||||||
|
ent->SetActive(true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EScriptObjectMessage::Deactivate: {
|
||||||
|
if (V179())
|
||||||
|
x730_->SetActive(mgr, false);
|
||||||
|
x5d4_->SetActive(mgr, false);
|
||||||
|
|
||||||
|
if (CEntity* ent = mgr.ObjectById(x772_))
|
||||||
|
ent->SetActive(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EScriptObjectMessage::Alert:
|
||||||
|
x988_28_ = true;
|
||||||
|
break;
|
||||||
|
case EScriptObjectMessage::Touched:
|
||||||
|
break;
|
||||||
|
case EScriptObjectMessage::Registered:
|
||||||
|
x450_bodyController->Activate(mgr);
|
||||||
|
SetupCollisionManager(mgr);
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
CPatterned::AcceptScriptMsg(msg, uid, mgr);
|
CPatterned::AcceptScriptMsg(msg, uid, mgr);
|
||||||
}
|
}
|
||||||
void CElitePirate::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) { CPatterned::PreRender(mgr, frustum); }
|
void CElitePirate::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) { CPatterned::PreRender(mgr, frustum); }
|
||||||
@ -91,16 +123,14 @@ void CElitePirate::DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node
|
|||||||
const CCollisionPrimitive* CElitePirate::GetCollisionPrimitive() const {
|
const CCollisionPrimitive* CElitePirate::GetCollisionPrimitive() const {
|
||||||
return CPhysicsActor::GetCollisionPrimitive();
|
return CPhysicsActor::GetCollisionPrimitive();
|
||||||
}
|
}
|
||||||
void CElitePirate::KnockBack(const zeus::CVector3f& pos, CStateManager& mgr, const CDamageInfo& info, EKnockBackType type,
|
void CElitePirate::KnockBack(const zeus::CVector3f& pos, CStateManager& mgr, const CDamageInfo& info,
|
||||||
bool inDeferred, float magnitude) {
|
EKnockBackType type, bool inDeferred, float magnitude) {
|
||||||
CPatterned::KnockBack(pos, mgr, info, type, inDeferred, magnitude);
|
CPatterned::KnockBack(pos, mgr, info, type, inDeferred, magnitude);
|
||||||
}
|
}
|
||||||
void CElitePirate::TakeDamage(const zeus::CVector3f& pos, float arg) { CPatterned::TakeDamage(pos, arg); }
|
void CElitePirate::TakeDamage(const zeus::CVector3f& pos, float arg) { CPatterned::TakeDamage(pos, arg); }
|
||||||
void CElitePirate::Patrol(CStateManager& mgr, EStateMsg msg, float dt) { CPatterned::Patrol(mgr, msg, dt); }
|
void CElitePirate::Patrol(CStateManager& mgr, EStateMsg msg, float dt) { CPatterned::Patrol(mgr, msg, dt); }
|
||||||
void CElitePirate::PathFind(CStateManager& mgr, EStateMsg msg, float dt) { CPatterned::PathFind(mgr, msg, dt); }
|
void CElitePirate::PathFind(CStateManager& mgr, EStateMsg msg, float dt) { CPatterned::PathFind(mgr, msg, dt); }
|
||||||
void CElitePirate::TargetPatrol(CStateManager& mgr, EStateMsg msg, float dt) {
|
void CElitePirate::TargetPatrol(CStateManager& mgr, EStateMsg msg, float dt) { CPatterned::TargetPatrol(mgr, msg, dt); }
|
||||||
CPatterned::TargetPatrol(mgr, msg, dt);
|
|
||||||
}
|
|
||||||
void CElitePirate::Halt(CStateManager& mgr, EStateMsg msg, float dt) { CAi::Halt(mgr, msg, dt); }
|
void CElitePirate::Halt(CStateManager& mgr, EStateMsg msg, float dt) { CAi::Halt(mgr, msg, dt); }
|
||||||
void CElitePirate::Run(CStateManager& mgr, EStateMsg msg, float dt) { CAi::Run(mgr, msg, dt); }
|
void CElitePirate::Run(CStateManager& mgr, EStateMsg msg, float dt) { CAi::Run(mgr, msg, dt); }
|
||||||
void CElitePirate::Generate(CStateManager& mgr, EStateMsg msg, float dt) { CAi::Generate(mgr, msg, dt); }
|
void CElitePirate::Generate(CStateManager& mgr, EStateMsg msg, float dt) { CAi::Generate(mgr, msg, dt); }
|
||||||
|
@ -40,7 +40,8 @@ class CElitePirateData {
|
|||||||
float xe8_;
|
float xe8_;
|
||||||
float xec_;
|
float xec_;
|
||||||
u32 xf0_;
|
u32 xf0_;
|
||||||
u32 xf4_;
|
u16 xf4_;
|
||||||
|
u16 xf6_;
|
||||||
CAssetId xf8_;
|
CAssetId xf8_;
|
||||||
CDamageInfo xfc_;
|
CDamageInfo xfc_;
|
||||||
CAssetId x118_;
|
CAssetId x118_;
|
||||||
@ -170,7 +171,7 @@ public:
|
|||||||
virtual bool V180() { return true; }
|
virtual bool V180() { return true; }
|
||||||
virtual void V181(CStateManager& mgr);
|
virtual void V181(CStateManager& mgr);
|
||||||
virtual void v182(CStateManager& mgr, bool b);
|
virtual void v182(CStateManager& mgr, bool b);
|
||||||
virtual SUnknownStruct2 V182() const {return {x5d8_.GetXF8(), x5d8_.GetXFC(), x5d8_.GetX118(), x5d8_.GetX11C()}; }
|
virtual SUnknownStruct2 V183() const {return {x5d8_.GetXF8(), x5d8_.GetXFC(), x5d8_.GetX118(), x5d8_.GetX11C()}; }
|
||||||
};
|
};
|
||||||
} // namespace MP1
|
} // namespace MP1
|
||||||
} // namespace urde
|
} // namespace urde
|
Loading…
x
Reference in New Issue
Block a user