CActor: Make AddToRenderer() non-const

This member function alters instance state in a few implementations, so
it shouldn't be made const.

The state manager parameter also shouldn't be const. Retrieved data
from the post constructed instance is further modified in some
implementations. This removes the constness on this parameter in order
to fix more const_cast usages in a follow-up change.
This commit is contained in:
Lioncash 2020-04-05 07:54:02 -04:00
parent 19cfb92d5d
commit cabbfcc320
79 changed files with 168 additions and 131 deletions

View File

@ -66,9 +66,10 @@ void CAtomicAlpha::Render(const CStateManager& mgr) const {
x690_bombModel.Render(mgr, locatorXf, x90_actorLights.get(), flags); x690_bombModel.Render(mgr, locatorXf, x90_actorLights.get(), flags);
} }
} }
void CAtomicAlpha::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CAtomicAlpha::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (mgr.GetPlayerState()->GetActiveVisor(mgr) != CPlayerState::EPlayerVisor::XRay && x568_25_invisible) if (mgr.GetPlayerState()->GetActiveVisor(mgr) != CPlayerState::EPlayerVisor::XRay && x568_25_invisible) {
return; return;
}
CPatterned::AddToRenderer(frustum, mgr); CPatterned::AddToRenderer(frustum, mgr);
} }

View File

@ -40,7 +40,7 @@ public:
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) override; void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) override;

View File

@ -36,7 +36,7 @@ CBouncyGrenade::CBouncyGrenade(TUniqueId uid, std::string_view name, const CEnti
SetMaterialFilter(CMaterialFilter::MakeIncludeExclude(filter.IncludeList(), filter.ExcludeList())); SetMaterialFilter(CMaterialFilter::MakeIncludeExclude(filter.IncludeList(), filter.ExcludeList()));
} }
void CBouncyGrenade::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CBouncyGrenade::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
if (!x2b4_24_exploded) { if (!x2b4_24_exploded) {
g_Renderer->AddParticleGen(*x2ac_elementGen4); g_Renderer->AddParticleGen(*x2ac_elementGen4);

View File

@ -77,7 +77,7 @@ public:
const SBouncyGrenadeData& data, float velocity, float explodePlayerDistance); const SBouncyGrenadeData& data, float velocity, float explodePlayerDistance);
void Accept(IVisitor& visitor) override { visitor.Visit(this); } void Accept(IVisitor& visitor) override { visitor.Visit(this); }
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void CollidedWith(TUniqueId id, const CCollisionInfoList& list, CStateManager& mgr) override; void CollidedWith(TUniqueId id, const CCollisionInfoList& list, CStateManager& mgr) override;
[[nodiscard]] std::optional<zeus::CAABox> GetTouchBounds() const override; [[nodiscard]] std::optional<zeus::CAABox> GetTouchBounds() const override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;

View File

@ -56,11 +56,11 @@ CFlaahgraRenderer::CFlaahgraRenderer(TUniqueId uid, TUniqueId owner, std::string
CActorParameters::None(), kInvalidUniqueId) CActorParameters::None(), kInvalidUniqueId)
, xe8_owner(owner) {} , xe8_owner(owner) {}
void CFlaahgraRenderer::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CFlaahgraRenderer::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (const CActor* act = static_cast<const CActor*>(mgr.GetObjectById(xe8_owner))) { if (const CActor* act = static_cast<const CActor*>(mgr.GetObjectById(xe8_owner))) {
if (act->HasModelData() && (act->GetModelData()->HasAnimData() || act->GetModelData()->HasNormalModel())) if (act->HasModelData() && (act->GetModelData()->HasAnimData() || act->GetModelData()->HasNormalModel())) {
act->GetModelData()->RenderParticles(frustum); act->GetModelData()->RenderParticles(frustum);
}
} }
} }
void CFlaahgraRenderer::Accept(IVisitor& visitor) { visitor.Visit(this); } void CFlaahgraRenderer::Accept(IVisitor& visitor) { visitor.Visit(this); }
@ -254,14 +254,16 @@ void CFlaahgra::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateM
CPatterned::AcceptScriptMsg(msg, uid, mgr); CPatterned::AcceptScriptMsg(msg, uid, mgr);
} }
void CFlaahgra::AddToRenderer(const zeus::CFrustum& frustum, const urde::CStateManager& mgr) const { void CFlaahgra::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if ((!GetModelData()->HasAnimData() && !GetModelData()->HasNormalModel()) || xe4_30_outOfFrustum) if ((!GetModelData()->HasAnimData() && !GetModelData()->HasNormalModel()) || xe4_30_outOfFrustum) {
return; return;
}
if (CanRenderUnsorted(mgr)) if (CanRenderUnsorted(mgr)) {
Render(mgr); Render(mgr);
else } else {
EnsureRendered(mgr); EnsureRendered(mgr);
}
} }
void CFlaahgra::Death(CStateManager& mgr, const zeus::CVector3f& dir, EScriptObjectState state) { void CFlaahgra::Death(CStateManager& mgr, const zeus::CVector3f& dir, EScriptObjectState state) {
@ -1270,7 +1272,7 @@ void CFlaahgraPlants::Think(float dt, CStateManager& mgr) {
mgr.FreeScriptObject(GetUniqueId()); mgr.FreeScriptObject(GetUniqueId());
} }
void CFlaahgraPlants::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CFlaahgraPlants::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
g_Renderer->AddParticleGen(*xe8_elementGen.get()); g_Renderer->AddParticleGen(*xe8_elementGen.get());
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
} }

View File

@ -59,7 +59,7 @@ class CFlaahgraRenderer : public CActor {
public: public:
CFlaahgraRenderer(TUniqueId, TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&); CFlaahgraRenderer(TUniqueId, TUniqueId, std::string_view, const CEntityInfo&, const zeus::CTransform&);
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Accept(IVisitor&) override; void Accept(IVisitor&) override;
std::optional<zeus::CAABox> GetTouchBounds() const override { return {}; } std::optional<zeus::CAABox> GetTouchBounds() const override { return {}; }
}; };
@ -80,7 +80,7 @@ public:
void Accept(IVisitor&) override; void Accept(IVisitor&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
std::optional<zeus::CAABox> GetTouchBounds() const override { return x110_aabox; } std::optional<zeus::CAABox> GetTouchBounds() const override { return x110_aabox; }
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;
}; };
@ -200,7 +200,7 @@ public:
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void PreThink(float, CStateManager&) override; void PreThink(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
bool CanRenderUnsorted(const CStateManager&) const override { return true; } bool CanRenderUnsorted(const CStateManager&) const override { return true; }
zeus::CVector3f GetAimPosition(const CStateManager&, float) const override { return x820_; } zeus::CVector3f GetAimPosition(const CStateManager&, float) const override { return x820_; }
void Death(CStateManager&, const zeus::CVector3f&, EScriptObjectState) override; void Death(CStateManager&, const zeus::CVector3f&, EScriptObjectState) override;

View File

@ -463,7 +463,7 @@ void CFlyingPirate::RemoveFromTeam(CStateManager& mgr) {
} }
} }
void CFlyingPirate::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CFlyingPirate::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
for (const auto& gen : x684_particleGens) { for (const auto& gen : x684_particleGens) {
if (frustum.aabbFrustumTest(GetBoundingBox())) { if (frustum.aabbFrustumTest(GetBoundingBox())) {
g_Renderer->AddParticleGen(*gen); g_Renderer->AddParticleGen(*gen);

View File

@ -84,7 +84,7 @@ public:
void Accept(IVisitor& visitor) override { visitor.Visit(this); } void Accept(IVisitor& visitor) override { visitor.Visit(this); }
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
bool AnimOver(CStateManager& mgr, float arg) override; bool AnimOver(CStateManager& mgr, float arg) override;
void CalculateRenderBounds() override; void CalculateRenderBounds() override;
void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) override; void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) override;

View File

@ -117,7 +117,7 @@ void CGrenadeLauncher::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid,
} }
} }
void CGrenadeLauncher::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CGrenadeLauncher::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
} }

View File

@ -98,7 +98,7 @@ public:
void Accept(IVisitor& visitor) override { visitor.Visit(this); } void Accept(IVisitor& visitor) override { visitor.Visit(this); }
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
[[nodiscard]] const CCollisionPrimitive* GetCollisionPrimitive() const override { return &x328_cSphere; } [[nodiscard]] const CCollisionPrimitive* GetCollisionPrimitive() const override { return &x328_cSphere; }
[[nodiscard]] const CDamageVulnerability* GetDamageVulnerability() const override { return &x264_vulnerability; } [[nodiscard]] const CDamageVulnerability* GetDamageVulnerability() const override { return &x264_vulnerability; }
[[nodiscard]] std::optional<zeus::CAABox> GetTouchBounds() const override; [[nodiscard]] std::optional<zeus::CAABox> GetTouchBounds() const override;

View File

@ -170,7 +170,7 @@ void CMetroidBeta::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CSta
break; break;
} }
} }
void CMetroidBeta::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CMetroidBeta::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
CPatterned::AddToRenderer(frustum, mgr); CPatterned::AddToRenderer(frustum, mgr);
} }
void CMetroidBeta::Render(const CStateManager& mgr) const { CPatterned::Render(mgr); } void CMetroidBeta::Render(const CStateManager& mgr) const { CPatterned::Render(mgr); }

View File

@ -102,7 +102,7 @@ public:
void Think(float dt, CStateManager& mgr) override; void Think(float dt, CStateManager& mgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
const CDamageVulnerability* GetDamageVulnerability() const override; const CDamageVulnerability* GetDamageVulnerability() const override;
const CDamageVulnerability* GetDamageVulnerability(const zeus::CVector3f& vec1, const zeus::CVector3f& vec2, const CDamageVulnerability* GetDamageVulnerability(const zeus::CVector3f& vec1, const zeus::CVector3f& vec2,

View File

@ -303,7 +303,7 @@ void CNewIntroBoss::DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& nod
} }
} }
void CNewIntroBoss::AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const { EnsureRendered(mgr); } void CNewIntroBoss::AddToRenderer(const zeus::CFrustum&, CStateManager& mgr) { EnsureRendered(mgr); }
float CNewIntroBoss::GetNextAttackTime(CStateManager& mgr) const { float CNewIntroBoss::GetNextAttackTime(CStateManager& mgr) const {
float attackTime = 2.f * mgr.GetActiveRandom()->Float() + 6.f; float attackTime = 2.f * mgr.GetActiveRandom()->Float() + 6.f;

View File

@ -61,7 +61,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager&) override;
void Think(float dt, CStateManager& mgr) override; void Think(float dt, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void OnScanStateChanged(EScanState, CStateManager&) override; void OnScanStateChanged(EScanState, CStateManager&) override;
CProjectileInfo* GetProjectileInfo() override { return &x5ac_projectileInfo; } CProjectileInfo* GetProjectileInfo() override { return &x5ac_projectileInfo; }
zeus::CAABox GetSortingBounds(const CStateManager&) const override { zeus::CAABox GetSortingBounds(const CStateManager&) const override {

View File

@ -697,7 +697,7 @@ void CRidley::Render(const CStateManager& mgr) const {
CPatterned::Render(mgr); CPatterned::Render(mgr);
} }
void CRidley::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CRidley::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
CPatterned::AddToRenderer(frustum, mgr); CPatterned::AddToRenderer(frustum, mgr);
if (xce0_ && frustum.aabbFrustumTest(*xce0_->GetBounds())) { if (xce0_ && frustum.aabbFrustumTest(*xce0_->GetBounds())) {
g_Renderer->AddParticleGen(*xce0_); g_Renderer->AddParticleGen(*xce0_);

View File

@ -207,7 +207,7 @@ public:
void Think(float dt, CStateManager& mgr) override; void Think(float dt, CStateManager& mgr) override;
void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override; void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
zeus::CAABox GetSortingBounds(const CStateManager&) const override { return GetBoundingBox(); } zeus::CAABox GetSortingBounds(const CStateManager&) const override { return GetBoundingBox(); }
const CDamageVulnerability* GetDamageVulnerability() const override { const CDamageVulnerability* GetDamageVulnerability() const override {
return &CDamageVulnerability::ImmuneVulnerabilty(); return &CDamageVulnerability::ImmuneVulnerabilty();

View File

@ -53,7 +53,7 @@ void CShockWave::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CState
mgr.SendScriptMsgAlways(x980_id2, uid, msg); mgr.SendScriptMsgAlways(x980_id2, uid, msg);
} }
void CShockWave::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CShockWave::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
g_Renderer->AddParticleGen(*x110_elementGen); g_Renderer->AddParticleGen(*x110_elementGen);
} }

View File

@ -57,7 +57,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
[[nodiscard]] std::optional<zeus::CAABox> GetTouchBounds() const override; [[nodiscard]] std::optional<zeus::CAABox> GetTouchBounds() const override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
void Think(float dt, CStateManager& mgr) override; void Think(float dt, CStateManager& mgr) override;

View File

@ -114,7 +114,7 @@ void CBomb::Think(float dt, urde::CStateManager& mgr) {
x184_particle2->SetGlobalTranslation(GetTranslation()); x184_particle2->SetGlobalTranslation(GetTranslation());
} }
void CBomb::AddToRenderer(const zeus::CFrustum& frustum, const urde::CStateManager& mgr) const { void CBomb::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
zeus::CVector3f origin = GetTranslation(); zeus::CVector3f origin = GetTranslation();
float ballRadius = mgr.GetPlayer().GetMorphBall()->GetBallRadius(); float ballRadius = mgr.GetPlayer().GetMorphBall()->GetBallRadius();

View File

@ -33,7 +33,7 @@ public:
void Accept(IVisitor&) override; void Accept(IVisitor&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override {} void Render(const CStateManager&) const override {}
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;
void Explode(const zeus::CVector3f&, CStateManager&); void Explode(const zeus::CVector3f&, CStateManager&);

View File

@ -217,7 +217,7 @@ void CEnergyProjectile::Render(const CStateManager& mgr) const {
} }
} }
void CEnergyProjectile::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CEnergyProjectile::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
auto bounds = x170_projectile.GetBounds(); auto bounds = x170_projectile.GetBounds();
if (bounds && !frustum.aabbFrustumTest(*bounds)) if (bounds && !frustum.aabbFrustumTest(*bounds))
return; return;
@ -225,8 +225,9 @@ void CEnergyProjectile::AddToRenderer(const zeus::CFrustum& frustum, const CStat
CPlayerState::EPlayerVisor visor = mgr.GetPlayerState()->GetActiveVisor(mgr); CPlayerState::EPlayerVisor visor = mgr.GetPlayerState()->GetActiveVisor(mgr);
if (visor != CPlayerState::EPlayerVisor::XRay && if (visor != CPlayerState::EPlayerVisor::XRay &&
((xe8_projectileAttribs & EProjectileAttrib::Ice) != EProjectileAttrib::Ice || ((xe8_projectileAttribs & EProjectileAttrib::Ice) != EProjectileAttrib::Ice ||
mgr.GetThermalDrawFlag() != EThermalDrawFlag::Hot)) mgr.GetThermalDrawFlag() != EThermalDrawFlag::Hot)) {
x170_projectile.AddToRenderer(); x170_projectile.AddToRenderer();
}
EnsureRendered(mgr); EnsureRendered(mgr);
} }

View File

@ -40,7 +40,7 @@ public:
void ResolveCollisionWithActor(const CRayCastResult& res, CActor& act, CStateManager& mgr); void ResolveCollisionWithActor(const CRayCastResult& res, CActor& act, CStateManager& mgr);
void Think(float dt, CStateManager& mgr); void Think(float dt, CStateManager& mgr);
void Render(const CStateManager& mgr) const; void Render(const CStateManager& mgr) const;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr);
void Touch(CActor& act, CStateManager& mgr); void Touch(CActor& act, CStateManager& mgr);
virtual bool Explode(const zeus::CVector3f& pos, const zeus::CVector3f& normal, EWeaponCollisionResponseTypes type, virtual bool Explode(const zeus::CVector3f& pos, const zeus::CVector3f& normal, EWeaponCollisionResponseTypes type,
CStateManager& mgr, const CDamageVulnerability& dVuln, TUniqueId hitActor); CStateManager& mgr, const CDamageVulnerability& dVuln, TUniqueId hitActor);

View File

@ -90,7 +90,7 @@ void CFlameThrower::CreateFlameParticles(CStateManager& mgr) {
CreateProjectileLight("FlameThrower_Light"sv, x348_flameGen->GetLight(), mgr); CreateProjectileLight("FlameThrower_Light"sv, x348_flameGen->GetLight(), mgr);
} }
void CFlameThrower::AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const { void CFlameThrower::AddToRenderer(const zeus::CFrustum&, CStateManager& mgr) {
g_Renderer->AddParticleGen(*x348_flameGen); g_Renderer->AddParticleGen(*x348_flameGen);
EnsureRendered(mgr, x2e8_flameXf.origin, GetRenderBounds()); EnsureRendered(mgr, x2e8_flameXf.origin, GetRenderBounds());
} }

View File

@ -56,7 +56,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;
void Touch(CActor& actor, CStateManager& mgr) override; void Touch(CActor& actor, CStateManager& mgr) override;

View File

@ -394,7 +394,7 @@ bool CPlasmaProjectile::CanRenderUnsorted(const CStateManager& mgr) const {
return false; return false;
} }
void CPlasmaProjectile::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CPlasmaProjectile::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (GetActive()) { if (GetActive()) {
g_Renderer->AddParticleGen(*x518_contactGen); g_Renderer->AddParticleGen(*x518_contactGen);
if (x478_beamAttributes & 0x2) { if (x478_beamAttributes & 0x2) {

View File

@ -121,7 +121,7 @@ public:
void Fire(const zeus::CTransform& xf, CStateManager& mgr, bool b) override; void Fire(const zeus::CTransform& xf, CStateManager& mgr, bool b) override;
void Touch(CActor& other, CStateManager& mgr) override; void Touch(CActor& other, CStateManager& mgr) override;
bool CanRenderUnsorted(const CStateManager& mgr) const override; bool CanRenderUnsorted(const CStateManager& mgr) const override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
}; };
} // namespace urde } // namespace urde

View File

@ -89,7 +89,7 @@ void CPowerBomb::Think(float dt, CStateManager& mgr) {
x15c_curTime += dt; x15c_curTime += dt;
} }
void CPowerBomb::AddToRenderer(const zeus::CFrustum&, const CStateManager&) const { void CPowerBomb::AddToRenderer(const zeus::CFrustum&, CStateManager&) {
g_Renderer->AddParticleGen(*x168_particle); g_Renderer->AddParticleGen(*x168_particle);
} }

View File

@ -27,7 +27,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override {} void Render(const CStateManager&) const override {}
std::optional<zeus::CAABox> GetTouchBounds() const override { return std::nullopt; } std::optional<zeus::CAABox> GetTouchBounds() const override { return std::nullopt; }
void Touch(CActor&, CStateManager&) override { /*x158_24_canStartFilter; */ void Touch(CActor&, CStateManager&) override { /*x158_24_canStartFilter; */

View File

@ -181,25 +181,29 @@ void CActor::PreRender(CStateManager& mgr, const zeus::CFrustum& planes) {
} }
} }
void CActor::AddToRenderer(const zeus::CFrustum& planes, const CStateManager& mgr) const { void CActor::AddToRenderer(const zeus::CFrustum& planes, CStateManager& mgr) {
if (!x64_modelData || x64_modelData->IsNull()) if (!x64_modelData || x64_modelData->IsNull()) {
return; return;
}
if (xe6_29_renderParticleDBInside) if (xe6_29_renderParticleDBInside) {
x64_modelData->RenderParticles(planes); x64_modelData->RenderParticles(planes);
}
if (!xe4_30_outOfFrustum) { if (!xe4_30_outOfFrustum) {
if (CanRenderUnsorted(mgr)) if (CanRenderUnsorted(mgr)) {
Render(mgr); Render(mgr);
else } else {
EnsureRendered(mgr); EnsureRendered(mgr);
}
} }
if (mgr.GetPlayerState()->GetActiveVisor(mgr) != CPlayerState::EPlayerVisor::XRay && if (mgr.GetPlayerState()->GetActiveVisor(mgr) != CPlayerState::EPlayerVisor::XRay &&
mgr.GetPlayerState()->GetActiveVisor(mgr) != CPlayerState::EPlayerVisor::Thermal && xe5_24_shadowEnabled && mgr.GetPlayerState()->GetActiveVisor(mgr) != CPlayerState::EPlayerVisor::Thermal && xe5_24_shadowEnabled &&
x94_simpleShadow->Valid() && planes.aabbFrustumTest(x94_simpleShadow->GetBounds())) x94_simpleShadow->Valid() && planes.aabbFrustumTest(x94_simpleShadow->GetBounds())) {
g_Renderer->AddDrawable(x94_simpleShadow.get(), x94_simpleShadow->GetTransform().origin, g_Renderer->AddDrawable(x94_simpleShadow.get(), x94_simpleShadow->GetTransform().origin,
x94_simpleShadow->GetBounds(), 1, CBooRenderer::EDrawableSorting::SortedCallback); x94_simpleShadow->GetBounds(), 1, CBooRenderer::EDrawableSorting::SortedCallback);
}
} }
void CActor::DrawTouchBounds() const { void CActor::DrawTouchBounds() const {

View File

@ -108,7 +108,7 @@ public:
CEntity::SetActive(active); CEntity::SetActive(active);
} }
virtual void PreRender(CStateManager&, const zeus::CFrustum&); virtual void PreRender(CStateManager&, const zeus::CFrustum&);
virtual void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const; virtual void AddToRenderer(const zeus::CFrustum&, CStateManager&);
virtual void Render(const CStateManager&) const; virtual void Render(const CStateManager&) const;
virtual bool CanRenderUnsorted(const CStateManager&) const; virtual bool CanRenderUnsorted(const CStateManager&) const;
virtual void CalculateRenderBounds(); virtual void CalculateRenderBounds();

View File

@ -8,7 +8,7 @@ class CEffect : public CActor {
public: public:
CEffect(TUniqueId uid, const CEntityInfo& info, bool active, std::string_view name, const zeus::CTransform& xf); CEffect(TUniqueId uid, const CEntityInfo& info, bool active, std::string_view name, const zeus::CTransform& xf);
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override {} void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {}
void Render(const CStateManager&) const override {} void Render(const CStateManager&) const override {}
}; };

View File

@ -89,9 +89,10 @@ void CExplosion::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) {
xe4_30_outOfFrustum = !xf4_25_ || !frustum.aabbFrustumTest(x9c_renderBounds); xe4_30_outOfFrustum = !xf4_25_ || !frustum.aabbFrustumTest(x9c_renderBounds);
} }
void CExplosion::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CExplosion::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (xe4_30_outOfFrustum) if (xe4_30_outOfFrustum) {
return; return;
}
if (!(xf4_24_renderThermalHot && mgr.GetThermalDrawFlag() == EThermalDrawFlag::Hot) && if (!(xf4_24_renderThermalHot && mgr.GetThermalDrawFlag() == EThermalDrawFlag::Hot) &&
!(xf4_26_renderXray && mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::XRay)) { !(xf4_26_renderXray && mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::XRay)) {

View File

@ -33,7 +33,7 @@ public:
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
bool CanRenderUnsorted(const CStateManager&) const override; bool CanRenderUnsorted(const CStateManager&) const override;
}; };

View File

@ -84,7 +84,7 @@ void CFire::Touch(CActor& act, CStateManager& mgr) {
CMaterialFilter::MakeIncludeExclude({EMaterialTypes::Solid}, {}), {}); CMaterialFilter::MakeIncludeExclude({EMaterialTypes::Solid}, {}), {});
} }
void CFire::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CFire::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
bool drawParticles = true; bool drawParticles = true;
if (!x148_27_) { if (!x148_27_) {
using EPlayerVisor = CPlayerState::EPlayerVisor; using EPlayerVisor = CPlayerState::EPlayerVisor;

View File

@ -42,6 +42,6 @@ public:
} }
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
}; };
} // namespace urde } // namespace urde

View File

@ -78,7 +78,7 @@ void CHUDBillboardEffect::Think(float dt, CStateManager& mgr) {
} }
} }
void CHUDBillboardEffect::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CHUDBillboardEffect::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (x104_25_enableRender && x104_24_renderAsParticleGen) { if (x104_25_enableRender && x104_24_renderAsParticleGen) {
g_Renderer->AddParticleGen(*xe8_generator); g_Renderer->AddParticleGen(*xe8_generator);
} }

View File

@ -37,7 +37,7 @@ public:
~CHUDBillboardEffect() override; ~CHUDBillboardEffect() override;
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void Think(float dt, CStateManager& mgr) override; void Think(float dt, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override; void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
bool IsElementGen() const { return x104_26_isElementGen; } bool IsElementGen() const { return x104_26_isElementGen; }

View File

@ -1570,13 +1570,14 @@ void CPatterned::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) {
CActor::PreRender(mgr, frustum); CActor::PreRender(mgr, frustum);
} }
void CPatterned::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CPatterned::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (x402_29_drawParticles) { if (x402_29_drawParticles) {
if (x64_modelData && !x64_modelData->IsNull()) { if (x64_modelData && !x64_modelData->IsNull()) {
int mask, target; int mask, target;
mgr.GetCharacterRenderMaskAndTarget(x402_31_thawed, mask, target); mgr.GetCharacterRenderMaskAndTarget(x402_31_thawed, mask, target);
if (CAnimData* aData = x64_modelData->GetAnimationData()) if (CAnimData* aData = x64_modelData->GetAnimationData()) {
aData->GetParticleDB().AddToRendererClippedMasked(frustum, mask, target); aData->GetParticleDB().AddToRendererClippedMasked(frustum, mask, target);
}
} }
} }
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);

View File

@ -273,7 +273,7 @@ public:
} }
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
void CollidedWith(TUniqueId, const CCollisionInfoList&, CStateManager& mgr) override; void CollidedWith(TUniqueId, const CCollisionInfoList&, CStateManager& mgr) override;

View File

@ -1597,7 +1597,7 @@ void CPlayer::CalculateRenderBounds() {
} }
} }
void CPlayer::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CPlayer::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (x2f4_cameraState != EPlayerCameraState::FirstPerson && x2f8_morphBallState == EPlayerMorphBallState::Morphed) { if (x2f4_cameraState != EPlayerCameraState::FirstPerson && x2f8_morphBallState == EPlayerMorphBallState::Morphed) {
if (x768_morphball->IsInFrustum(frustum)) { if (x768_morphball->IsInFrustum(frustum)) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);

View File

@ -405,7 +405,7 @@ public:
void RenderReflectedPlayer(CStateManager& mgr); void RenderReflectedPlayer(CStateManager& mgr);
void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override; void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override;
void CalculateRenderBounds() override; void CalculateRenderBounds() override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void ComputeFreeLook(const CFinalInput& input); void ComputeFreeLook(const CFinalInput& input);
void UpdateFreeLookState(const CFinalInput& input, float dt, CStateManager& mgr); void UpdateFreeLookState(const CFinalInput& input, float dt, CStateManager& mgr);
void UpdateFreeLook(float dt); void UpdateFreeLook(float dt);

View File

@ -29,7 +29,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override {} void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {}
void Render(const CStateManager&) const override {} void Render(const CStateManager&) const override {}
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;
bool GetInUse(TUniqueId uid) const; bool GetInUse(TUniqueId uid) const;

View File

@ -17,7 +17,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override {} void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {}
void Render(const CStateManager&) const override {} void Render(const CStateManager&) const override {}
TUniqueId GetRandomNextWaypointId(CStateManager& mgr) const; TUniqueId GetRandomNextWaypointId(CStateManager& mgr) const;
float GetHFov() const { return xe8_hfov; } float GetHFov() const { return xe8_hfov; }

View File

@ -40,7 +40,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override {} void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {}
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Render(const CStateManager&) const override {} void Render(const CStateManager&) const override {}
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;

View File

@ -116,9 +116,11 @@ void CScriptDamageableTrigger::Render(const CStateManager& mgr) const {
CActor::Render(mgr); CActor::Render(mgr);
} }
void CScriptDamageableTrigger::AddToRenderer(const zeus::CFrustum& /*frustum*/, const CStateManager& mgr) const { void CScriptDamageableTrigger::AddToRenderer(const zeus::CFrustum& /*frustum*/, CStateManager& mgr) {
if (x300_26_outOfFrustum) if (x300_26_outOfFrustum) {
return; return;
}
EnsureRendered(mgr, GetTranslation() - x244_faceTranslate, GetSortingBounds(mgr)); EnsureRendered(mgr, GetTranslation() - x244_faceTranslate, GetSortingBounds(mgr));
} }

View File

@ -59,7 +59,7 @@ public:
EWeaponCollisionResponseTypes GetCollisionResponseType(const zeus::CVector3f&, const zeus::CVector3f&, EWeaponCollisionResponseTypes GetCollisionResponseType(const zeus::CVector3f&, const zeus::CVector3f&,
const CWeaponMode&, EProjectileAttrib) const override; const CWeaponMode&, EProjectileAttrib) const override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override; void PreRender(CStateManager& mgr, const zeus::CFrustum& frustum) override;
const CDamageVulnerability* GetDamageVulnerability() const override { return &x174_dVuln; } const CDamageVulnerability* GetDamageVulnerability() const override { return &x174_dVuln; }
CHealthInfo* HealthInfo(CStateManager&) override { return &x16c_hInfo; } CHealthInfo* HealthInfo(CStateManager&) override { return &x16c_hInfo; }

View File

@ -143,21 +143,28 @@ CScriptDebris::CScriptDebris(TUniqueId uid, std::string_view name, const CEntity
void CScriptDebris::Accept(IVisitor& visitor) { visitor.Visit(this); } void CScriptDebris::Accept(IVisitor& visitor) { visitor.Visit(this); }
void CScriptDebris::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CScriptDebris::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (x2d4_particleGens[0]) if (x2d4_particleGens[0]) {
if (x270_curTime < x274_duration || x281_26_deferDeleteTillParticle1Done) if (x270_curTime < x274_duration || x281_26_deferDeleteTillParticle1Done) {
g_Renderer->AddParticleGen(*x2d4_particleGens[0]); g_Renderer->AddParticleGen(*x2d4_particleGens[0]);
}
}
if (x2d4_particleGens[1]) if (x2d4_particleGens[1]) {
if (x270_curTime < x274_duration || x281_28_deferDeleteTillParticle2Done) if (x270_curTime < x274_duration || x281_28_deferDeleteTillParticle2Done) {
g_Renderer->AddParticleGen(*x2d4_particleGens[1]); g_Renderer->AddParticleGen(*x2d4_particleGens[1]);
}
}
if (x281_29_particle3Active) if (x281_29_particle3Active) {
g_Renderer->AddParticleGen(*x2d4_particleGens[2]); g_Renderer->AddParticleGen(*x2d4_particleGens[2]);
}
if (x64_modelData && !x64_modelData->IsNull()) if (x64_modelData && !x64_modelData->IsNull()) {
if (x270_curTime < x274_duration) if (x270_curTime < x274_duration) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
}
}
} }
static zeus::CVector3f debris_cone(CStateManager& mgr, float coneAng, float minMag, float maxMag) { static zeus::CVector3f debris_cone(CStateManager& mgr, float coneAng, float minMag, float maxMag) {

View File

@ -78,7 +78,7 @@ public:
bool noBounce, bool active); bool noBounce, bool active);
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override;
void Think(float dt, CStateManager& mgr) override; void Think(float dt, CStateManager& mgr) override;
void Touch(CActor& other, CStateManager& mgr) override; void Touch(CActor& other, CStateManager& mgr) override;

View File

@ -197,9 +197,12 @@ void CScriptDoor::Think(float dt, CStateManager& mgr) {
xe7_31_targetable = mgr.GetPlayerState()->GetCurrentVisor() == CPlayerState::EPlayerVisor::Scan; xe7_31_targetable = mgr.GetPlayerState()->GetCurrentVisor() == CPlayerState::EPlayerVisor::Scan;
} }
void CScriptDoor::AddToRenderer(const zeus::CFrustum& /*frustum*/, const CStateManager& mgr) const { void CScriptDoor::AddToRenderer(const zeus::CFrustum& /*frustum*/, CStateManager& mgr) {
if (!xe4_30_outOfFrustum) if (xe4_30_outOfFrustum) {
CPhysicsActor::Render(mgr); return;
}
CPhysicsActor::Render(mgr);
} }
/* ORIGINAL 0-00 OFFSET: 8007E0BC */ /* ORIGINAL 0-00 OFFSET: 8007E0BC */

View File

@ -51,7 +51,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CStateManager& mgr) override;
void Think(float, CStateManager& mgr) override; void Think(float, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager& mgr) override;
void Render(const CStateManager&) const override {} void Render(const CStateManager&) const override {}
void ForceClosed(CStateManager&); void ForceClosed(CStateManager&);
bool IsConnectedToArea(const CStateManager& mgr, TAreaId area) const; bool IsConnectedToArea(const CStateManager& mgr, TAreaId area) const;

View File

@ -55,10 +55,11 @@ void CScriptEMPulse::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CS
} }
} }
void CScriptEMPulse::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CScriptEMPulse::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
if (GetActive()) if (GetActive()) {
g_Renderer->AddParticleGen(*x114_particleGen); g_Renderer->AddParticleGen(*x114_particleGen);
}
} }
void CScriptEMPulse::CalculateRenderBounds() { x9c_renderBounds = CalculateBoundingBox(); } void CScriptEMPulse::CalculateRenderBounds() { x9c_renderBounds = CalculateBoundingBox(); }

View File

@ -27,7 +27,7 @@ public:
void Accept(IVisitor&) override; void Accept(IVisitor&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void CalculateRenderBounds() override; void CalculateRenderBounds() override;
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;

View File

@ -207,31 +207,33 @@ void CScriptEffect::PreRender(CStateManager& mgr, const zeus::CFrustum&) {
x13c_triggerId = kInvalidUniqueId; x13c_triggerId = kInvalidUniqueId;
} }
void CScriptEffect::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CScriptEffect::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (!x111_26_canRender) { if (!x111_26_canRender) {
const_cast<CScriptEffect&>(*this).x12c_remTime = zeus::max(x12c_remTime, x134_durationResetWhileVisible); x12c_remTime = zeus::max(x12c_remTime, x134_durationResetWhileVisible);
return; return;
} }
if (!frustum.aabbFrustumTest(x9c_renderBounds)) if (!frustum.aabbFrustumTest(x9c_renderBounds)) {
return; return;
const_cast<CScriptEffect&>(*this).x12c_remTime = zeus::max(x12c_remTime, x134_durationResetWhileVisible); }
x12c_remTime = zeus::max(x12c_remTime, x134_durationResetWhileVisible);
if (x110_31_anyVisorVisible) { if (x110_31_anyVisorVisible) {
bool visible = false; bool visible = false;
const CPlayerState::EPlayerVisor visor = mgr.GetPlayerState()->GetActiveVisor(mgr); const CPlayerState::EPlayerVisor visor = mgr.GetPlayerState()->GetActiveVisor(mgr);
if (visor == CPlayerState::EPlayerVisor::Combat || visor == CPlayerState::EPlayerVisor::Scan) if (visor == CPlayerState::EPlayerVisor::Combat || visor == CPlayerState::EPlayerVisor::Scan) {
visible = x110_28_combatVisorVisible; visible = x110_28_combatVisorVisible;
else if (visor == CPlayerState::EPlayerVisor::XRay) } else if (visor == CPlayerState::EPlayerVisor::XRay) {
visible = x110_30_xrayVisorVisible; visible = x110_30_xrayVisorVisible;
else if (visor == CPlayerState::EPlayerVisor::Thermal) } else if (visor == CPlayerState::EPlayerVisor::Thermal) {
visible = x110_29_thermalVisorVisible; visible = x110_29_thermalVisorVisible;
}
if (visible && x138_actorLights) { if (visible && x138_actorLights) {
const CGameArea* area = mgr.GetWorld()->GetAreaAlways(GetAreaIdAlways()); const CGameArea* area = mgr.GetWorld()->GetAreaAlways(GetAreaIdAlways());
const_cast<CScriptEffect&>(*this).x138_actorLights->BuildAreaLightList( x138_actorLights->BuildAreaLightList(
mgr, *area, zeus::CAABox{x9c_renderBounds.center(), x9c_renderBounds.center()}); mgr, *area, zeus::CAABox{x9c_renderBounds.center(), x9c_renderBounds.center()});
const_cast<CScriptEffect&>(*this).x138_actorLights->BuildDynamicLightList(mgr, x9c_renderBounds); x138_actorLights->BuildDynamicLightList(mgr, x9c_renderBounds);
} }
EnsureRendered(mgr); EnsureRendered(mgr);
} }

View File

@ -60,7 +60,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
bool CanRenderUnsorted(const CStateManager&) const override { return false; } bool CanRenderUnsorted(const CStateManager&) const override { return false; }

View File

@ -46,7 +46,7 @@ void CScriptGrapplePoint::Render(const CStateManager&) const {
std::optional<zeus::CAABox> CScriptGrapplePoint::GetTouchBounds() const { return {xe8_touchBounds}; } std::optional<zeus::CAABox> CScriptGrapplePoint::GetTouchBounds() const { return {xe8_touchBounds}; }
void CScriptGrapplePoint::AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const { void CScriptGrapplePoint::AddToRenderer(const zeus::CFrustum&, CStateManager& mgr) {
CActor::EnsureRendered(mgr); CActor::EnsureRendered(mgr);
} }

View File

@ -21,7 +21,7 @@ public:
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
const CGrappleParameters& GetGrappleParameters() const { return x100_parameters; } const CGrappleParameters& GetGrappleParameters() const { return x100_parameters; }
}; };
} // namespace urde } // namespace urde

View File

@ -444,11 +444,12 @@ void CScriptGunTurret::PlayAdditiveFlinchAnimation(CStateManager& mgr) {
GetModelData()->GetAnimationData()->AddAdditiveAnimation(pair.second, 1.f, false, true); GetModelData()->GetAnimationData()->AddAdditiveAnimation(pair.second, 1.f, false, true);
} }
void CScriptGunTurret::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CScriptGunTurret::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
if (x258_type != ETurretComponent::Gun) if (x258_type != ETurretComponent::Gun) {
return; return;
}
if (!x560_25_frozen) { if (!x560_25_frozen) {
switch (x520_state) { switch (x520_state) {
@ -471,8 +472,9 @@ void CScriptGunTurret::AddToRenderer(const zeus::CFrustum& frustum, const CState
case ETurretState::ExitTargeting: case ETurretState::ExitTargeting:
case ETurretState::Frenzy: case ETurretState::Frenzy:
g_Renderer->AddParticleGen(*x478_targettingLight); g_Renderer->AddParticleGen(*x478_targettingLight);
if (x520_state == ETurretState::Firing || x520_state == ETurretState::Frenzy) if (x520_state == ETurretState::Firing || x520_state == ETurretState::Frenzy) {
g_Renderer->AddParticleGen(*x488_chargingEffect); g_Renderer->AddParticleGen(*x488_chargingEffect);
}
break; break;
default: default:
break; break;

View File

@ -227,7 +227,7 @@ public:
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;
zeus::CVector3f GetOrbitPosition(const CStateManager&) const override; zeus::CVector3f GetOrbitPosition(const CStateManager&) const override;

View File

@ -368,10 +368,11 @@ void CScriptPlayerActor::PreRender(CStateManager& mgr, const zeus::CFrustum& fru
CScriptActor::PreRender(mgr, frustum); CScriptActor::PreRender(mgr, frustum);
} }
void CScriptPlayerActor::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CScriptPlayerActor::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
const_cast<CScriptPlayerActor*>(this)->TouchModels_Internal(mgr); TouchModels_Internal(mgr);
if (GetActive()) if (GetActive()) {
CActor::AddToRenderer(frustum, mgr); CActor::AddToRenderer(frustum, mgr);
}
} }
void CScriptPlayerActor::Render(const CStateManager& mgr) const { void CScriptPlayerActor::Render(const CStateManager& mgr) const {

View File

@ -67,7 +67,7 @@ public:
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void SetActive(bool active) override; void SetActive(bool active) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
void TouchModels(const CStateManager& mgr) const; void TouchModels(const CStateManager& mgr) const;
}; };

View File

@ -26,7 +26,7 @@ void CScriptPointOfInterest::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId
CActor::AcceptScriptMsg(msg, uid, mgr); CActor::AcceptScriptMsg(msg, uid, mgr);
} }
void CScriptPointOfInterest::AddToRenderer(const zeus::CFrustum&, const CStateManager&) const {} void CScriptPointOfInterest::AddToRenderer(const zeus::CFrustum&, CStateManager&) {}
void CScriptPointOfInterest::Render(const CStateManager&) const {} void CScriptPointOfInterest::Render(const CStateManager&) const {}

View File

@ -17,7 +17,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
void CalculateRenderBounds() override; void CalculateRenderBounds() override;
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;

View File

@ -37,7 +37,7 @@ public:
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override {} void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {}
void CreateProjectedShadow(); void CreateProjectedShadow();
}; };
} // namespace urde } // namespace urde

View File

@ -53,7 +53,7 @@ public:
bool worldSfx, bool allowDuplicates, s32 pitch); bool worldSfx, bool allowDuplicates, s32 pitch);
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override {} void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {}
void PreThink(float, CStateManager&) override; void PreThink(float, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;

View File

@ -481,12 +481,14 @@ void CScriptSpecialFunction::PreRender(CStateManager&, const zeus::CFrustum& fru
x1e4_28_frustumEntered = true; x1e4_28_frustumEntered = true;
} }
void CScriptSpecialFunction::AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const { void CScriptSpecialFunction::AddToRenderer(const zeus::CFrustum&, CStateManager& mgr) {
if (!GetActive()) if (!GetActive()) {
return; return;
}
if (xe8_function == ESpecialFunction::FogVolume && x1e4_30_) if (xe8_function == ESpecialFunction::FogVolume && x1e4_30_) {
EnsureRendered(mgr); EnsureRendered(mgr);
}
} }
void CScriptSpecialFunction::Render(const CStateManager& mgr) const { void CScriptSpecialFunction::Render(const CStateManager& mgr) const {

View File

@ -125,7 +125,7 @@ public:
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
std::optional<zeus::CAABox> GetTouchBounds() const override { return x1c8_touchBounds; } std::optional<zeus::CAABox> GetTouchBounds() const override { return x1c8_touchBounds; }

View File

@ -20,7 +20,7 @@ public:
void Accept(IVisitor&) override; void Accept(IVisitor&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Render(const CStateManager& mgr) const override { CActor::Render(mgr); } void Render(const CStateManager& mgr) const override { CActor::Render(mgr); }
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override {} void AddToRenderer(const zeus::CFrustum&, CStateManager&) override {}
std::optional<zeus::CAABox> GetTouchBounds() const override { return xfc_aabox; } std::optional<zeus::CAABox> GetTouchBounds() const override { return xfc_aabox; }
void AccumulateBounds(const zeus::CVector3f& v); void AccumulateBounds(const zeus::CVector3f& v);
void BuildWaypointListAndBounds(CStateManager& mgr); void BuildWaypointListAndBounds(CStateManager& mgr);

View File

@ -33,9 +33,10 @@ void CScriptVisorFlare::PreRender(CStateManager& stateMgr, const zeus::CFrustum&
x11c_notInRenderLast = !stateMgr.RenderLast(x8_uid); x11c_notInRenderLast = !stateMgr.RenderLast(x8_uid);
} }
void CScriptVisorFlare::AddToRenderer(const zeus::CFrustum&, const CStateManager& stateMgr) const { void CScriptVisorFlare::AddToRenderer(const zeus::CFrustum&, CStateManager& stateMgr) {
if (x11c_notInRenderLast) if (x11c_notInRenderLast) {
EnsureRendered(stateMgr, stateMgr.GetPlayer().GetTranslation(), GetSortingBounds(stateMgr)); EnsureRendered(stateMgr, stateMgr.GetPlayer().GetTranslation(), GetSortingBounds(stateMgr));
}
} }
void CScriptVisorFlare::Render(const CStateManager& stateMgr) const { xe8_flare.Render(GetTranslation(), stateMgr); } void CScriptVisorFlare::Render(const CStateManager& stateMgr) const { xe8_flare.Render(GetTranslation(), stateMgr); }

View File

@ -20,7 +20,7 @@ public:
void Think(float, CStateManager& stateMgr) override; void Think(float, CStateManager& stateMgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
}; };

View File

@ -101,7 +101,7 @@ void CScriptVisorGoo::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId,
CActor::AcceptScriptMsg(msg, objId, mgr); CActor::AcceptScriptMsg(msg, objId, mgr);
} }
void CScriptVisorGoo::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CScriptVisorGoo::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
// Empty // Empty
} }

View File

@ -30,7 +30,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void Think(float, CStateManager& stateMgr) override; void Think(float, CStateManager& stateMgr) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;

View File

@ -410,12 +410,14 @@ void CScriptWater::PreRender(CStateManager& mgr, const zeus::CFrustum& frustum)
} }
} }
void CScriptWater::AddToRenderer(const zeus::CFrustum& /*frustum*/, const CStateManager& mgr) const { void CScriptWater::AddToRenderer(const zeus::CFrustum& /*frustum*/, CStateManager& mgr) {
if (!xe4_30_outOfFrustum) { if (xe4_30_outOfFrustum) {
zeus::CPlane plane(zeus::skUp, x34_transform.origin.z() + x130_bounds.max.z()); return;
zeus::CAABox renderBounds = GetSortingBounds(mgr);
mgr.AddDrawableActorPlane(*this, plane, renderBounds);
} }
const zeus::CPlane plane(zeus::skUp, x34_transform.origin.z() + x130_bounds.max.z());
const zeus::CAABox renderBounds = GetSortingBounds(mgr);
mgr.AddDrawableActorPlane(*this, plane, renderBounds);
} }
void CScriptWater::Render(const CStateManager& mgr) const { void CScriptWater::Render(const CStateManager& mgr) const {

View File

@ -105,7 +105,7 @@ public:
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;
void CalculateRenderBounds() override; void CalculateRenderBounds() override;

View File

@ -33,7 +33,7 @@ void CScriptWaypoint::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender
SendScriptMsgs(EScriptObjectState::Arrived, mgr, EScriptObjectMessage::None); SendScriptMsgs(EScriptObjectState::Arrived, mgr, EScriptObjectMessage::None);
} }
void CScriptWaypoint::AddToRenderer(const zeus::CFrustum&, const CStateManager&) const { void CScriptWaypoint::AddToRenderer(const zeus::CFrustum&, CStateManager&) {
// Empty // Empty
} }

View File

@ -25,7 +25,7 @@ public:
void Accept(IVisitor& visitor) override; void Accept(IVisitor& visitor) override;
void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override; void AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId sender, CStateManager& mgr) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
TUniqueId FollowWaypoint(CStateManager& mgr) const; TUniqueId FollowWaypoint(CStateManager& mgr) const;
TUniqueId NextWaypoint(CStateManager& mgr) const; TUniqueId NextWaypoint(CStateManager& mgr) const;
float GetSpeed() const { return xe8_speed; } float GetSpeed() const { return xe8_speed; }

View File

@ -139,14 +139,17 @@ void CSnakeWeedSwarm::PreRender(CStateManager& mgr, const zeus::CFrustum& frustu
} }
} }
void CSnakeWeedSwarm::AddToRenderer(const zeus::CFrustum& frustum, const CStateManager& mgr) const { void CSnakeWeedSwarm::AddToRenderer(const zeus::CFrustum& frustum, CStateManager& mgr) {
if (xe4_30_outOfFrustum) if (xe4_30_outOfFrustum) {
return; return;
}
if (x1ec_particleGen1) if (x1ec_particleGen1) {
g_Renderer->AddParticleGen(*x1ec_particleGen1); g_Renderer->AddParticleGen(*x1ec_particleGen1);
if (x1f4_particleGen2) }
if (x1f4_particleGen2) {
g_Renderer->AddParticleGen(*x1f4_particleGen2); g_Renderer->AddParticleGen(*x1f4_particleGen2);
}
if (x90_actorLights) { if (x90_actorLights) {
for (const auto& modelData : x1b0_modelData) { for (const auto& modelData : x1b0_modelData) {
@ -158,8 +161,9 @@ void CSnakeWeedSwarm::AddToRenderer(const zeus::CFrustum& frustum, const CStateM
} }
u32 posesToBuild = -1; u32 posesToBuild = -1;
for (u32 i = 0; i < x134_boids.size(); ++i) for (u32 i = 0; i < x134_boids.size(); ++i) {
RenderBoid(i, x134_boids[i], posesToBuild); RenderBoid(i, x134_boids[i], posesToBuild);
}
CGraphics::DisableAllLights(); CGraphics::DisableAllLights();
} }

View File

@ -103,7 +103,7 @@ public:
std::optional<zeus::CAABox> GetTouchBounds() const override; std::optional<zeus::CAABox> GetTouchBounds() const override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Touch(CActor&, CStateManager&) override; void Touch(CActor&, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;

View File

@ -983,7 +983,7 @@ void CWallCrawlerSwarm::RenderParticles() const {
} }
} }
void CWallCrawlerSwarm::AddToRenderer(const zeus::CFrustum&, const CStateManager& mgr) const { void CWallCrawlerSwarm::AddToRenderer(const zeus::CFrustum&, CStateManager& mgr) {
if (!GetActive()) { if (!GetActive()) {
return; return;
} }

View File

@ -195,7 +195,7 @@ public:
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override; void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void Think(float, CStateManager&) override; void Think(float, CStateManager&) override;
void PreRender(CStateManager&, const zeus::CFrustum&) override; void PreRender(CStateManager&, const zeus::CFrustum&) override;
void AddToRenderer(const zeus::CFrustum&, const CStateManager&) const override; void AddToRenderer(const zeus::CFrustum&, CStateManager&) override;
void Render(const CStateManager&) const override; void Render(const CStateManager&) const override;
bool CanRenderUnsorted(const CStateManager&) const override; bool CanRenderUnsorted(const CStateManager&) const override;
void CalculateRenderBounds() override; void CalculateRenderBounds() override;