mirror of https://github.com/AxioDL/metaforce.git
Cooking bug fixes
This commit is contained in:
parent
8bae2325d6
commit
72f9e77f56
|
@ -8,6 +8,7 @@ logvisor::Module Log("AROTBuilder");
|
|||
|
||||
#define AROT_MAX_LEVEL 6
|
||||
#define COLLISION_MIN_NODE_TRIANGLES 16
|
||||
#define PATH_MIN_NODE_REGIONS 16
|
||||
|
||||
static zeus::CAABox SplitAABB(const zeus::CAABox& aabb, int i)
|
||||
{
|
||||
|
@ -460,7 +461,7 @@ void AROTBuilder::buildPath(DNAMP1::PATH& path)
|
|||
|
||||
/* Recursively split */
|
||||
BspNodeType dontCare;
|
||||
rootNode.addChild(0, 4, regionBoxes, fullAABB, dontCare);
|
||||
rootNode.addChild(0, PATH_MIN_NODE_REGIONS, regionBoxes, fullAABB, dontCare);
|
||||
|
||||
/* Write out */
|
||||
size_t nodeCount = 0;
|
||||
|
|
|
@ -106,9 +106,7 @@ bool DCLN::Extract(const SpecBase& dataSpec,
|
|||
}
|
||||
|
||||
bool DCLN::Cook(const hecl::ProjectPath& outPath,
|
||||
const hecl::ProjectPath& inPath,
|
||||
const std::vector<Mesh>& meshes,
|
||||
hecl::blender::Connection* conn)
|
||||
const std::vector<Mesh>& meshes)
|
||||
{
|
||||
DCLN dcln;
|
||||
dcln.colCount = atUint32(meshes.size());
|
||||
|
|
|
@ -106,9 +106,7 @@ struct DCLN : BigDNA
|
|||
std::function<void(const hecl::SystemChar*)> fileChanged);
|
||||
|
||||
static bool Cook(const hecl::ProjectPath& outPath,
|
||||
const hecl::ProjectPath& inPath,
|
||||
const std::vector<Mesh>& meshes,
|
||||
hecl::blender::Connection* conn = nullptr);
|
||||
const std::vector<Mesh>& meshes);
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ void EVNT::Enumerate(typename Op::StreamT& s)
|
|||
if (version == 2)
|
||||
{
|
||||
DoSize<Op>({"soundPOICount"}, soundPOICount, s);
|
||||
Do<Op>({"particlePOINodes"}, soundPOINodes, soundPOICount, s);
|
||||
Do<Op>({"soundPOINodes"}, soundPOINodes, soundPOICount, s);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -165,15 +165,27 @@ bool PATH::Extract(const SpecBase& dataSpec,
|
|||
}
|
||||
|
||||
bool PATH::Cook(const hecl::ProjectPath& outPath,
|
||||
const hecl::ProjectPath& inPath,
|
||||
const PathMesh& mesh,
|
||||
hecl::blender::Connection* conn)
|
||||
const PathMesh& mesh)
|
||||
{
|
||||
athena::io::MemoryReader r(mesh.data.data(), mesh.data.size());
|
||||
PATH path;
|
||||
path.read(r);
|
||||
if (!path.regions.empty())
|
||||
{
|
||||
AROTBuilder octreeBuilder;
|
||||
octreeBuilder.buildPath(path);
|
||||
}
|
||||
else
|
||||
{
|
||||
path.octreeNodeCount = 1;
|
||||
path.octree.emplace_back();
|
||||
OctreeNode& n = path.octree.back();
|
||||
n.isLeaf = 1;
|
||||
n.aabb[0] = zeus::CVector3f{FLT_MAX, FLT_MAX, FLT_MAX};
|
||||
n.aabb[1] = zeus::CVector3f{-FLT_MAX, -FLT_MAX, -FLT_MAX};
|
||||
for (int i=0 ; i<8 ; ++i)
|
||||
n.children[i] = 0xffffffff;
|
||||
}
|
||||
|
||||
athena::io::FileWriter w(outPath.getAbsolutePath());
|
||||
path.write(w);
|
||||
|
|
|
@ -86,9 +86,7 @@ struct PATH : BigDNA
|
|||
std::function<void(const hecl::SystemChar*)> fileChanged);
|
||||
|
||||
static bool Cook(const hecl::ProjectPath& outPath,
|
||||
const hecl::ProjectPath& inPath,
|
||||
const PathMesh& mesh,
|
||||
hecl::blender::Connection* conn = nullptr);
|
||||
const PathMesh& mesh);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -760,7 +760,7 @@ struct SpecMP1 : SpecBase
|
|||
{
|
||||
std::vector<ColMesh> mesh = ds.compileColMeshes();
|
||||
ds.close();
|
||||
DNAMP1::DCLN::Cook(out, in, mesh);
|
||||
DNAMP1::DCLN::Cook(out, mesh);
|
||||
}
|
||||
|
||||
void cookPathMesh(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
|
@ -768,7 +768,7 @@ struct SpecMP1 : SpecBase
|
|||
{
|
||||
PathMesh mesh = ds.compilePathMesh();
|
||||
ds.close();
|
||||
DNAMP1::PATH::Cook(out, in, mesh);
|
||||
DNAMP1::PATH::Cook(out, mesh);
|
||||
}
|
||||
|
||||
void cookActor(const hecl::ProjectPath& out, const hecl::ProjectPath& in, BlendStream& ds, bool fast,
|
||||
|
|
2
hecl
2
hecl
|
@ -1 +1 @@
|
|||
Subproject commit b014d6114bcd34d473bcf2573654c43fee6347c0
|
||||
Subproject commit 24522449fa4232dd88781542052b6033d6dc9bef
|
Loading…
Reference in New Issue