diff --git a/.gitignore b/.gitignore
index 81709a670..2510aed51 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,5 @@ version.h
.DS_Store
*.autosave
docs/*
-.idea/dictionaries
-.idea/workspace.xml
-.idea/misc.xml
+.idea/
Editor/platforms/win/urde.rc
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index f0175108e..000000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 79ee123c2..000000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 922e1c890..000000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/urde.iml b/.idea/urde.iml
deleted file mode 100644
index f08604bb6..000000000
--- a/.idea/urde.iml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/Runtime/MP1/World/CDrone.cpp b/Runtime/MP1/World/CDrone.cpp
index 5d79dea7a..f0d1e52db 100644
--- a/Runtime/MP1/World/CDrone.cpp
+++ b/Runtime/MP1/World/CDrone.cpp
@@ -301,7 +301,7 @@ void CDrone::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) {
}
}
-void CDrone::Render(const CStateManager& mgr) const {
+void CDrone::Render(CStateManager& mgr) {
bool isOne = x3fc_flavor == EFlavorType::One;
if (!isOne || GetModelAlphau8(mgr) != 0) {
if (isOne && mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::XRay) {
@@ -811,10 +811,13 @@ bool CDrone::LineOfSight(CStateManager& mgr, float arg) {
{EMaterialTypes::Player, EMaterialTypes::ProjectilePassthrough}),
this);
}
+
bool CDrone::ShouldMove(CStateManager& mgr, float arg) { return x644_ <= 0.f; }
+
bool CDrone::CodeTrigger(CStateManager& mgr, float arg) { return x834_29_codeTrigger; }
-void CDrone::Burn(float duration, float damage) { /* Intentionally empty */
-}
+
+void CDrone::Burn(float duration, float damage) { /* Intentionally empty */ }
+
CPathFindSearch* CDrone::GetSearchPath() { return &x6b0_pathFind; }
void CDrone::BuildNearList(EMaterialTypes includeMat, EMaterialTypes excludeMat,
@@ -823,6 +826,7 @@ void CDrone::BuildNearList(EMaterialTypes includeMat, EMaterialTypes excludeMat,
mgr.BuildNearList(listOut, zeus::CAABox(pos - radius, pos + radius),
CMaterialFilter::MakeIncludeExclude({includeMat}, {excludeMat}), nullptr);
}
+
void CDrone::SetLightEnabled(CStateManager& mgr, bool activate) {
mgr.SendScriptMsgAlways(x578_lightId, GetUniqueId(),
activate ? EScriptObjectMessage::Activate : EScriptObjectMessage::Deactivate);
@@ -848,6 +852,7 @@ bool CDrone::HitShield(const zeus::CVector3f& dir) const {
return false;
}
+
void CDrone::AddToTeam(CStateManager& mgr) const {
if (x688_teamMgr == kInvalidUniqueId) {
return;
@@ -858,6 +863,7 @@ void CDrone::AddToTeam(CStateManager& mgr) const {
CTeamAiRole::ETeamAiRole::Invalid);
}
}
+
void CDrone::RemoveFromTeam(CStateManager& mgr) const {
if (TCastToPtr teamMgr = mgr.ObjectById(x688_teamMgr)) {
if (teamMgr->IsPartOfTeam(GetUniqueId())) {
@@ -865,6 +871,7 @@ void CDrone::RemoveFromTeam(CStateManager& mgr) const {
}
}
}
+
void CDrone::UpdateLaser(CStateManager& mgr, u32 laserIdx, bool b1) {
// TODO: Finish
}
@@ -902,6 +909,7 @@ void CDrone::StrafeFromCompanions(CStateManager& mgr) {
x450_bodyController->GetCommandMgr().DeliverCmd(CBCStepCmd(pas::EStepDirection::Right, pas::EStepType::Normal));
}
}
+
void CDrone::UpdateScanner(CStateManager& mgr, float dt) {
x5d4_ = zeus::CRelAngle::MakeRelativeAngle(1.2f * dt + x5d4_);
x5d8_ = zeus::CRelAngle::MakeRelativeAngle(x5d8_);
@@ -923,8 +931,13 @@ void CDrone::UpdateScanner(CStateManager& mgr, float dt) {
}
}
}
+
void CDrone::sub_80163c40(float, CStateManager& mgr) {}
+
void CDrone::sub_801633a8(CStateManager& mgr) {}
+
void CDrone::sub_8015f25c(float dt, CStateManager& mgr) {}
+
void CDrone::sub_8015f158(float dt) {}
+
} // namespace urde::MP1
diff --git a/Runtime/MP1/World/CDrone.hpp b/Runtime/MP1/World/CDrone.hpp
index 2939884c3..b6ce4d6d6 100644
--- a/Runtime/MP1/World/CDrone.hpp
+++ b/Runtime/MP1/World/CDrone.hpp
@@ -76,7 +76,7 @@ class CDrone : public CPatterned {
CSfxHandle x7d0_;
rstl::reserved_vector x7d4_ = {{kInvalidUniqueId, kInvalidUniqueId}};
rstl::reserved_vector x7e0_ = {{zeus::skZero3f, zeus::skZero3f}};
- rstl::reserved_vector x7fc_ = {{zeus::skZero3f, zeus::skZero3f}};;
+ rstl::reserved_vector x7fc_ = {{zeus::skZero3f, zeus::skZero3f}};
rstl::reserved_vector x818_ = {{0.f, 0.f}};
rstl::reserved_vector x824_ = {{false, false}};
std::unique_ptr x82c_shieldModel;
@@ -93,6 +93,7 @@ class CDrone : public CPatterned {
bool x835_24_ : 1;
bool x835_25_ : 1;
bool x835_26_ : 1;
+
void UpdateTouchBounds(float radius);
bool HitShield(const zeus::CVector3f& dir) const;
void AddToTeam(CStateManager& mgr) const;
@@ -106,6 +107,7 @@ class CDrone : public CPatterned {
void sub_801633a8(CStateManager& mgr);
void sub_8015f25c(float dt, CStateManager& mgr);
void sub_8015f158(float dt);
+
public:
DEFINE_PATTERNED(Drone);
CDrone(TUniqueId uid, std::string_view name, EFlavorType flavor, const CEntityInfo& info, const zeus::CTransform& xf,
@@ -120,7 +122,7 @@ public:
void Think(float dt, CStateManager& mgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override;
void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override;
- void Render(const CStateManager& mgr) const override;
+ void Render(CStateManager& mgr) override;
bool CanRenderUnsorted(const CStateManager& mgr) const override;
const CDamageVulnerability* GetDamageVulnerability() const override { return CAi::GetDamageVulnerability(); }
const CDamageVulnerability* GetDamageVulnerability(const zeus::CVector3f&, const zeus::CVector3f&,
diff --git a/Runtime/MP1/World/CDroneLaser.cpp b/Runtime/MP1/World/CDroneLaser.cpp
index 2d12a9352..da4ee05e3 100644
--- a/Runtime/MP1/World/CDroneLaser.cpp
+++ b/Runtime/MP1/World/CDroneLaser.cpp
@@ -42,12 +42,12 @@ void CDroneLaser::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CS
}
}
-void CDroneLaser::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const {
+void CDroneLaser::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
g_Renderer->AddParticleGen(*x104_beamParticle);
EnsureRendered(mgr);
}
-void CDroneLaser::Render(const CStateManager& mgr) const {
+void CDroneLaser::Render(CStateManager& mgr) {
// g_Renderer->SetDepthReadWrite(true, true);
RenderBeam(4, 0.01f, zeus::CColor(1.f, .9f, .9f, 1.f), true);
// g_Renderer->SetDepthReadWrite(true, false);
@@ -64,9 +64,12 @@ void CDroneLaser::CalculateRenderBounds() {
box.accumulateBounds(xe8_ - (mag1 * GetTransform().basis[2]));
x9c_renderBounds = box;
}
+
void CDroneLaser::SetScannerLightActive(CStateManager& mgr, bool activate) {
mgr.SendScriptMsgAlways(xf4_scannerLight, GetUniqueId(),
activate ? EScriptObjectMessage::Activate : EScriptObjectMessage::Deactivate);
}
+
void CDroneLaser::RenderBeam(u32 w, float f, const zeus::CColor& col, bool) const {}
+
} // namespace urde::MP1
diff --git a/Runtime/MP1/World/CDroneLaser.hpp b/Runtime/MP1/World/CDroneLaser.hpp
index 783873353..cb83b5da1 100644
--- a/Runtime/MP1/World/CDroneLaser.hpp
+++ b/Runtime/MP1/World/CDroneLaser.hpp
@@ -12,14 +12,15 @@ class CDroneLaser : public CActor {
void SetScannerLightActive(CStateManager& mgr, bool activate);
void RenderBeam(u32 w, float f, const zeus::CColor& col, bool) const;
+
public:
CDroneLaser(TUniqueId uid, TAreaId aId, const zeus::CTransform& xf, CAssetId particle);
void Accept(IVisitor& visitor) override;
void Think(float dt, CStateManager& mgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override;
- void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override;
- void Render(const CStateManager& mgr) const override;
+ void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
+ void Render(CStateManager& mgr) override;
void CalculateRenderBounds() override;
};
} // namespace MP1
-} // namespace urde
\ No newline at end of file
+} // namespace urde
diff --git a/Runtime/MP1/World/CIceSheegoth.cpp b/Runtime/MP1/World/CIceSheegoth.cpp
index 19f79c7ac..160230341 100644
--- a/Runtime/MP1/World/CIceSheegoth.cpp
+++ b/Runtime/MP1/World/CIceSheegoth.cpp
@@ -762,6 +762,7 @@ void CIceSheegoth::ProjectileAttack(CStateManager& mgr, EStateMsg msg, float dt)
xb28_26_ = false;
}
}
+
void CIceSheegoth::Flinch(CStateManager& mgr, EStateMsg msg, float dt) {
if (msg == EStateMsg::Activate) {
x568_ = 0;
@@ -1104,6 +1105,7 @@ void CIceSheegoth::SetupCollisionActorManager(CStateManager& mgr) {
AddMaterial(EMaterialTypes::ProjectilePassthrough, mgr);
xa2c_collisionManager->AddMaterial(mgr, {EMaterialTypes::AIJoint, EMaterialTypes::CameraPassthrough});
}
+
void CIceSheegoth::SetupHealthInfo(CStateManager& mgr) {
CHealthInfo* thisHealth = HealthInfo(mgr);
x970_maxHp = thisHealth->GetHP();
@@ -1223,6 +1225,7 @@ void CIceSheegoth::UpdateTimers(float dt) {
x968_interestTimer += dt;
}
}
+
void CIceSheegoth::UpdateScanState(CStateManager& mgr) {
if (!xb29_29_scanned && GetScannableObjectInfo() != nullptr &&
zeus::close_enough(1.f, mgr.GetPlayerState()->GetScanTime(GetScannableObjectInfo()->GetScannableObjectId()))) {
@@ -1412,11 +1415,13 @@ bool CIceSheegoth::sub_8019ecdc(CStateManager& mgr, float minAngle) {
return zeus::CVector2f::getAngleDiff(GetTransform().basis[1].toVec2f(),
plAimPos.toVec2f() - GetTranslation().toVec2f()) > minAngle;
}
+
void CIceSheegoth::SetMouthVulnerability(CStateManager& mgr, bool isVulnerable) {
if (TCastToPtr colAct = mgr.ObjectById(xaf8_mouthCollider)) {
colAct->SetDamageVulnerability(isVulnerable ? x56c_sheegothData.Get_xe8() : x98c_mouthVulnerability);
}
}
+
void CIceSheegoth::SetGillVulnerability(CStateManager& mgr, bool isVulnerable) {
for (TUniqueId uid : xafc_gillColliders) {
if (TCastToPtr colAct = mgr.ObjectById(uid)) {
@@ -1467,6 +1472,7 @@ void CIceSheegoth::ShakePlayer(CStateManager& mgr) {
sub_8019ebf0(mgr, 0.25f * x56c_sheegothData.Get_x170());
}
}
+
zeus::CVector3f CIceSheegoth::GetEnergyAttractionPos(CStateManager& mgr) const {
if (const TCastToConstPtr colAct = mgr.GetObjectById(xaf6_iceShardsCollider)) {
return colAct->GetTranslation();
@@ -1474,6 +1480,7 @@ zeus::CVector3f CIceSheegoth::GetEnergyAttractionPos(CStateManager& mgr) const {
return GetTranslation();
}
+
bool CIceSheegoth::ShouldAttractProjectile(const CGameProjectile& proj, CStateManager& mgr) const {
if (proj.GetType() != EWeaponType::Missile && proj.GetType() != EWeaponType::Plasma &&
(!proj.GetDamageInfo().GetWeaponMode().IsComboed() || proj.GetType() != EWeaponType::Power)) {
@@ -1500,6 +1507,7 @@ bool CIceSheegoth::ShouldAttractProjectile(const CGameProjectile& proj, CStateMa
return false;
}
+
bool CIceSheegoth::IsClosestSheegoth(CStateManager& mgr, rstl::reserved_vector nearList,
zeus::CVector3f projectileOffset) const {
@@ -1517,4 +1525,4 @@ bool CIceSheegoth::IsClosestSheegoth(CStateManager& mgr, rstl::reserved_vector nearList, const zeus::CVector3f projectileOffset) const;
+ bool IsClosestSheegoth(CStateManager& mgr, const rstl::reserved_vector nearList,
+ const zeus::CVector3f projectileOffset) const;
public:
DEFINE_PATTERNED(IceSheeegoth);
diff --git a/Runtime/MP1/World/CPuddleSpore.cpp b/Runtime/MP1/World/CPuddleSpore.cpp
index a0744347f..5716c7c26 100644
--- a/Runtime/MP1/World/CPuddleSpore.cpp
+++ b/Runtime/MP1/World/CPuddleSpore.cpp
@@ -69,7 +69,9 @@ bool CPuddleSpore::HitShell(const zeus::CVector3f& point) const {
return (distance <= -0.5f || distance >= 0.5f);
}
-void CPuddleSpore::KnockPlayer(CStateManager&, float) {}
+void CPuddleSpore::KnockPlayer(CStateManager& mgr, float arg) {
+ // TODO implement
+}
void CPuddleSpore::UpdateBoundingState(const zeus::CAABox& box, CStateManager& mgr, float dt) {
SetBoundingBox(box);
@@ -296,4 +298,4 @@ void CPuddleSpore::Attack(CStateManager& mgr, EStateMsg msg, float) {
x32c_animState = EAnimState::NotReady;
}
}
-} // namespace urde::MP1
\ No newline at end of file
+} // namespace urde::MP1
diff --git a/Runtime/MP1/World/CPuddleSpore.hpp b/Runtime/MP1/World/CPuddleSpore.hpp
index b5b76e485..40e16263b 100644
--- a/Runtime/MP1/World/CPuddleSpore.hpp
+++ b/Runtime/MP1/World/CPuddleSpore.hpp
@@ -26,7 +26,7 @@ class CPuddleSpore : public CPatterned {
CCollidableAABox x5a0_;
u32 x5c8_ = 0;
u32 x5cc_ = 0;
- TToken x5d0_;
+ TCachedToken x5d0_;
std::vector> x5dc_elemGens; // originally a vector of CElementGen
CProjectileInfo x5ec_projectileInfo;
bool x614_24 : 1 = false;
@@ -81,4 +81,4 @@ public:
void GetUp(CStateManager&, EStateMsg, float) override;
void Attack(CStateManager&, EStateMsg, float) override;
};
-} // namespace urde::MP1
\ No newline at end of file
+} // namespace urde::MP1