2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 22:27:43 +00:00

Initial CFluidPlane implementation

This commit is contained in:
Jack Andersen
2017-08-07 20:03:57 -10:00
parent 5590e2f27a
commit 3650a58a1e
27 changed files with 1801 additions and 99 deletions

View File

@@ -1,5 +1,6 @@
#include "CScriptWater.hpp"
#include "CStateManager.hpp"
#include "TCastTo.hpp"
namespace urde
{
@@ -87,4 +88,18 @@ u32 CScriptWater::GetSplashIndex(float dt) const
u32 idx = dt * 3.f;
return (idx < 3 ? idx : idx - 1);
}
const CScriptWater* CScriptWater::GetNextConnectedWater(const CStateManager& mgr) const
{
for (const SConnection& conn : x20_conns)
{
if (conn.x0_state != EScriptObjectState::Play || conn.x4_msg != EScriptObjectMessage::Activate)
continue;
auto its = mgr.GetIdListForScript(conn.x8_objId);
if (its.first != mgr.GetIdListEnd())
if (TCastToConstPtr<CScriptWater> water = mgr.GetObjectById(its.first->second))
return water.GetPtr();
}
return nullptr;
}
}