metaforce/Runtime/World/CFluidPlaneManager.hpp

58 lines
1.5 KiB
C++
Raw Normal View History

2016-04-17 02:50:45 +00:00
#ifndef __URDE_CFLUIDPLANEMANAGER_HPP__
#define __URDE_CFLUIDPLANEMANAGER_HPP__
#include "RetroTypes.hpp"
#include "CRippleManager.hpp"
2016-04-17 02:50:45 +00:00
namespace urde
{
class CStateManager;
class CScriptWater;
2016-04-17 02:50:45 +00:00
class CFluidPlaneManager
{
2017-08-08 06:03:57 +00:00
class CSplashRecord
{
public:
CSplashRecord(TUniqueId id);
void SetTime(float t);
float GetTime() const;
TUniqueId GetUniqueId() const;
};
CRippleManager x0_rippleManager;
2017-08-08 06:03:57 +00:00
rstl::reserved_vector<CSplashRecord, 32> x18_splashes;
float x11c_uvT = 0.f;
bool x120_ = false;
bool x121_ = false;
class CFluidProfile
{
public:
void Clear();
};
static CFluidProfile sProfile;
2017-08-08 06:03:57 +00:00
static void SetupRippleMap();
public:
2017-08-08 06:03:57 +00:00
static u8 RippleValues[64][64];
static u8 RippleMins[64];
static u8 RippleMaxs[64];
CFluidPlaneManager();
void StartFrame(bool);
2017-03-06 06:33:51 +00:00
void EndFrame() { x121_ = false; }
2017-03-24 05:30:16 +00:00
void Update(float dt);
2017-08-08 06:03:57 +00:00
float GetUVT() const { return x11c_uvT; }
float GetLastRippleDeltaTime(TUniqueId rippler) const;
float GetLastSplashDeltaTime(TUniqueId splasher) const;
void CreateSplash(TUniqueId splasher, CStateManager& mgr, const CScriptWater& water,
const zeus::CVector3f& pos, float factor, bool);
2017-08-08 06:03:57 +00:00
rstl::reserved_vector<CSplashRecord, 32>& SplashRecords() { return x18_splashes; }
2017-08-13 07:56:35 +00:00
const CRippleManager& GetRippleManager() const { return x0_rippleManager; }
CRippleManager& RippleManager() { return x0_rippleManager; }
2016-04-17 02:50:45 +00:00
};
}
#endif // __URDE_CFLUIDPLANEMANAGER_HPP__