mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 21:47:42 +00:00
New code style refactor
This commit is contained in:
@@ -3,77 +3,65 @@
|
||||
#include "CWorld.hpp"
|
||||
#include "TCastTo.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
CScriptDistanceFog::CScriptDistanceFog(TUniqueId uid, std::string_view name, const CEntityInfo& info,
|
||||
ERglFogMode mode, const zeus::CColor& color,
|
||||
const zeus::CVector2f& range, float colorDelta,
|
||||
const zeus::CVector2f& rangeDelta, bool expl, bool active,
|
||||
float thermalTarget, float thermalSpeed, float xrayTarget, float xraySpeed)
|
||||
: CEntity(uid, info, active, name),
|
||||
x34_mode(mode),
|
||||
x38_color(color),
|
||||
x3c_range(range),
|
||||
x44_colorDelta(colorDelta),
|
||||
x48_rangeDelta(rangeDelta),
|
||||
x50_thermalTarget(thermalTarget),
|
||||
x54_thermalSpeed(thermalSpeed),
|
||||
x58_xrayTarget(xrayTarget),
|
||||
x5c_xraySpeed(xraySpeed),
|
||||
x60_explicit(expl)
|
||||
namespace urde {
|
||||
CScriptDistanceFog::CScriptDistanceFog(TUniqueId uid, std::string_view name, const CEntityInfo& info, ERglFogMode mode,
|
||||
const zeus::CColor& color, const zeus::CVector2f& range, float colorDelta,
|
||||
const zeus::CVector2f& rangeDelta, bool expl, bool active, float thermalTarget,
|
||||
float thermalSpeed, float xrayTarget, float xraySpeed)
|
||||
: CEntity(uid, info, active, name)
|
||||
, x34_mode(mode)
|
||||
, x38_color(color)
|
||||
, x3c_range(range)
|
||||
, x44_colorDelta(colorDelta)
|
||||
, x48_rangeDelta(rangeDelta)
|
||||
, x50_thermalTarget(thermalTarget)
|
||||
, x54_thermalSpeed(thermalSpeed)
|
||||
, x58_xrayTarget(xrayTarget)
|
||||
, x5c_xraySpeed(xraySpeed)
|
||||
, x60_explicit(expl)
|
||||
|
||||
{
|
||||
if (zeus::close_enough(rangeDelta, zeus::CVector2f::skZero) && zeus::close_enough(colorDelta, 0.f))
|
||||
x61_nonZero = false;
|
||||
if (zeus::close_enough(rangeDelta, zeus::CVector2f::skZero) && zeus::close_enough(colorDelta, 0.f))
|
||||
x61_nonZero = false;
|
||||
else
|
||||
x61_nonZero = true;
|
||||
}
|
||||
|
||||
void CScriptDistanceFog::Accept(IVisitor& visitor) { visitor.Visit(this); }
|
||||
|
||||
void CScriptDistanceFog::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr) {
|
||||
CEntity::AcceptScriptMsg(msg, objId, stateMgr);
|
||||
|
||||
if (x4_areaId == kInvalidAreaId || !GetActive())
|
||||
return;
|
||||
|
||||
if (msg == EScriptObjectMessage::InitializedInArea) {
|
||||
if (!x60_explicit)
|
||||
return;
|
||||
CGameArea::CAreaFog* fog = stateMgr.WorldNC()->GetArea(x4_areaId)->AreaFog();
|
||||
if (x34_mode == ERglFogMode::None)
|
||||
fog->DisableFog();
|
||||
else
|
||||
x61_nonZero = true;
|
||||
}
|
||||
fog->SetFogExplicit(x34_mode, x38_color, x3c_range);
|
||||
} else if (msg == EScriptObjectMessage::Action) {
|
||||
if (!x61_nonZero)
|
||||
return;
|
||||
|
||||
void CScriptDistanceFog::Accept(IVisitor& visitor)
|
||||
{
|
||||
visitor.Visit(this);
|
||||
}
|
||||
CGameArea::CAreaFog* fog = stateMgr.WorldNC()->GetArea(x4_areaId)->AreaFog();
|
||||
if (x34_mode == ERglFogMode::None)
|
||||
fog->RollFogOut(x48_rangeDelta.x(), x44_colorDelta, x38_color);
|
||||
else
|
||||
fog->FadeFog(x34_mode, x38_color, x3c_range, x44_colorDelta, x48_rangeDelta);
|
||||
|
||||
void CScriptDistanceFog::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId objId, CStateManager& stateMgr)
|
||||
{
|
||||
CEntity::AcceptScriptMsg(msg, objId, stateMgr);
|
||||
|
||||
if (x4_areaId == kInvalidAreaId || !GetActive())
|
||||
return;
|
||||
|
||||
if (msg == EScriptObjectMessage::InitializedInArea)
|
||||
{
|
||||
if (!x60_explicit)
|
||||
return;
|
||||
CGameArea::CAreaFog* fog = stateMgr.WorldNC()->GetArea(x4_areaId)->AreaFog();
|
||||
if (x34_mode == ERglFogMode::None)
|
||||
fog->DisableFog();
|
||||
else
|
||||
fog->SetFogExplicit(x34_mode, x38_color, x3c_range);
|
||||
}
|
||||
else if (msg == EScriptObjectMessage::Action)
|
||||
{
|
||||
if (!x61_nonZero)
|
||||
return;
|
||||
|
||||
CGameArea::CAreaFog* fog = stateMgr.WorldNC()->GetArea(x4_areaId)->AreaFog();
|
||||
if (x34_mode == ERglFogMode::None)
|
||||
fog->RollFogOut(x48_rangeDelta.x(), x44_colorDelta, x38_color);
|
||||
else
|
||||
fog->FadeFog(x34_mode, x38_color, x3c_range, x44_colorDelta, x48_rangeDelta);
|
||||
|
||||
if (zeus::close_enough(x54_thermalSpeed, 0.f) && !zeus::close_enough(x5c_xraySpeed, 0.f))
|
||||
{
|
||||
CWorld* world = stateMgr.WorldNC();
|
||||
CGameArea* area = world->GetArea(x4_areaId);
|
||||
area->SetXRaySpeedAndTarget(x5c_xraySpeed, x58_xrayTarget);
|
||||
}
|
||||
else
|
||||
{
|
||||
CWorld* world = stateMgr.WorldNC();
|
||||
CGameArea* area = world->GetArea(x4_areaId);
|
||||
area->SetThermalSpeedAndTarget(x54_thermalSpeed, x50_thermalTarget);
|
||||
}
|
||||
if (zeus::close_enough(x54_thermalSpeed, 0.f) && !zeus::close_enough(x5c_xraySpeed, 0.f)) {
|
||||
CWorld* world = stateMgr.WorldNC();
|
||||
CGameArea* area = world->GetArea(x4_areaId);
|
||||
area->SetXRaySpeedAndTarget(x5c_xraySpeed, x58_xrayTarget);
|
||||
} else {
|
||||
CWorld* world = stateMgr.WorldNC();
|
||||
CGameArea* area = world->GetArea(x4_areaId);
|
||||
area->SetThermalSpeedAndTarget(x54_thermalSpeed, x50_thermalTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} // namespace urde
|
||||
|
||||
Reference in New Issue
Block a user