2016-07-27 23:06:57 +00:00
|
|
|
#ifndef __URDE_CPVSAREASET_HPP__
|
|
|
|
#define __URDE_CPVSAREASET_HPP__
|
|
|
|
|
|
|
|
#include "RetroTypes.hpp"
|
2017-02-19 09:27:01 +00:00
|
|
|
#include "CPVSVisOctree.hpp"
|
2016-07-27 23:06:57 +00:00
|
|
|
|
|
|
|
namespace urde
|
|
|
|
{
|
|
|
|
|
|
|
|
class CPVSAreaSet
|
|
|
|
{
|
2017-02-19 09:27:01 +00:00
|
|
|
u32 x0_numFeatures;
|
|
|
|
u32 x4_numLights;
|
2017-04-10 06:57:00 +00:00
|
|
|
u32 x8_num2ndLights;
|
2017-02-19 09:27:01 +00:00
|
|
|
u32 xc_numActors;
|
|
|
|
u32 x10_leafSize;
|
|
|
|
u32 x14_lightIndexCount;
|
|
|
|
const u8* x18_entityIndex;
|
|
|
|
const u8* x1c_lightLeaves;
|
|
|
|
CPVSVisOctree x20_octree;
|
|
|
|
|
2016-08-07 00:20:02 +00:00
|
|
|
public:
|
2017-02-19 09:27:01 +00:00
|
|
|
CPVSAreaSet(const u8* data, u32 len);
|
|
|
|
u32 GetNumFeatures() const { return x0_numFeatures; }
|
|
|
|
u32 GetNumActors() const { return xc_numActors; }
|
2017-04-10 06:57:00 +00:00
|
|
|
u32 Get1stLightIndex(u32 lightIdx) const { return x0_numFeatures + x8_num2ndLights + lightIdx; }
|
|
|
|
u32 Get2ndLightIndex(u32 lightIdx) const { return x0_numFeatures + lightIdx; }
|
|
|
|
bool Has2ndLayerLights() const { return x8_num2ndLights != 0; }
|
2017-02-19 09:27:01 +00:00
|
|
|
u32 GetEntityIdByIndex(int idx) const { return x18_entityIndex[idx]; }
|
2017-04-10 06:57:00 +00:00
|
|
|
const CPVSVisOctree& GetVisOctree() const { return x20_octree; }
|
2016-07-27 23:06:57 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // __URDE_CPVSAREASET_HPP__
|