mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 17:04:55 +00:00
Huge compile performance refactor
This commit is contained in:
@@ -3,11 +3,8 @@
|
||||
|
||||
#include "../DNAMP1/AFSM.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
using AFSM = DNAMP1::AFSM;
|
||||
}
|
||||
}
|
||||
#endif // _RETRO_AFSM_HPP_
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#include "AGSC.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
bool AGSC::Extract(PAKEntryReadStream& rs, const hecl::ProjectPath& outPath)
|
||||
@@ -94,4 +92,3 @@ bool AGSC::Cook(const hecl::ProjectPath& inPath, const hecl::ProjectPath& outPat
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
#include "../DNACommon/DNACommon.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
class AGSC
|
||||
@@ -27,7 +25,6 @@ public:
|
||||
static bool Cook(const hecl::ProjectPath& inPath, const hecl::ProjectPath& outPath);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_AGSC_HPP_
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
#include "ANCS.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
void ANCS::CharacterSet::CharacterInfo::read(athena::io::IStreamReader& reader)
|
||||
@@ -661,4 +659,3 @@ const char* ANCS::AnimationSet::EVNT::DNAType()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,15 +5,12 @@
|
||||
#include "../DNACommon/DNACommon.hpp"
|
||||
#include "../DNACommon/ANCS.hpp"
|
||||
#include "CMDLMaterials.hpp"
|
||||
#include "hecl/Blender/BlenderConnection.hpp"
|
||||
#include "CINF.hpp"
|
||||
#include "CSKR.hpp"
|
||||
#include "ANIM.hpp"
|
||||
#include "../DNAMP1/ANCS.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct ANCS : BigYAML
|
||||
@@ -223,7 +220,7 @@ struct ANCS : BigYAML
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool force,
|
||||
hecl::BlenderToken& btok,
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)> fileChanged)
|
||||
{
|
||||
hecl::ProjectPath yamlPath = outPath.getWithExtension(_S(".yaml"), true);
|
||||
@@ -246,7 +243,7 @@ struct ANCS : BigYAML
|
||||
|
||||
if (force || blendType == hecl::ProjectPath::Type::None)
|
||||
{
|
||||
hecl::BlenderConnection& conn = btok.getBlenderConnection();
|
||||
hecl::blender::Connection& conn = btok.getBlenderConnection();
|
||||
DNAANCS::ReadANCSToBlender<PAKRouter<PAKBridge>, ANCS, MaterialSet, DNACMDL::SurfaceHeader_2, 4>
|
||||
(conn, ancs, blendPath, pakRouter, entry, dataSpec, fileChanged, force);
|
||||
}
|
||||
@@ -256,7 +253,6 @@ struct ANCS : BigYAML
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_ANCS_HPP_
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
#include "ANIM.hpp"
|
||||
#include "hecl/Blender/Connection.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
using ANIMOutStream = hecl::BlenderConnection::PyOutStream::ANIMOutStream;
|
||||
using ANIMOutStream = hecl::blender::ANIMOutStream;
|
||||
|
||||
void ANIM::IANIM::sendANIMToBlender(hecl::BlenderConnection::PyOutStream& os, const DNAANIM::RigInverter<CINF>& rig) const
|
||||
void ANIM::IANIM::sendANIMToBlender(hecl::blender::PyOutStream& os, const DNAANIM::RigInverter<CINF>& rig) const
|
||||
{
|
||||
os.format("act.hecl_fps = round(%f)\n"
|
||||
"act.hecl_looping = %s\n",
|
||||
@@ -583,4 +582,3 @@ size_t ANIM::ANIM2::binarySize(size_t __isz) const
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
#ifndef _DNAMP2_ANIM_HPP_
|
||||
#define _DNAMP2_ANIM_HPP_
|
||||
|
||||
#include "hecl/Blender/BlenderConnection.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
#include "../DNACommon/ANIM.hpp"
|
||||
#include "../DNACommon/RigInverter.hpp"
|
||||
#include "CINF.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct ANIM : BigDNA
|
||||
@@ -29,7 +26,7 @@ struct ANIM : BigDNA
|
||||
float mainInterval = 0.0;
|
||||
bool looping = false;
|
||||
|
||||
void sendANIMToBlender(hecl::BlenderConnection::PyOutStream&, const DNAANIM::RigInverter<CINF>& rig) const;
|
||||
void sendANIMToBlender(hecl::blender::PyOutStream&, const DNAANIM::RigInverter<CINF>& rig) const;
|
||||
};
|
||||
|
||||
struct ANIM0 : IANIM
|
||||
@@ -211,14 +208,13 @@ struct ANIM : BigDNA
|
||||
return m_anim->binarySize(__isz + 4);
|
||||
}
|
||||
|
||||
void sendANIMToBlender(hecl::BlenderConnection::PyOutStream& os, const DNAANIM::RigInverter<CINF>& rig, bool) const
|
||||
void sendANIMToBlender(hecl::blender::PyOutStream& os, const DNAANIM::RigInverter<CINF>& rig, bool) const
|
||||
{
|
||||
m_anim->sendANIMToBlender(os, rig);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_ANIM_HPP_
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
#include "CINF.hpp"
|
||||
#include "hecl/Blender/Connection.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
atUint32 CINF::getInternalBoneIdxFromId(atUint32 id) const
|
||||
@@ -37,7 +36,7 @@ const std::string* CINF::getBoneNameFromId(atUint32 id) const
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void CINF::sendVertexGroupsToBlender(hecl::BlenderConnection::PyOutStream& os) const
|
||||
void CINF::sendVertexGroupsToBlender(hecl::blender::PyOutStream& os) const
|
||||
{
|
||||
for (atUint32 bid : boneIds)
|
||||
{
|
||||
@@ -52,7 +51,7 @@ void CINF::sendVertexGroupsToBlender(hecl::BlenderConnection::PyOutStream& os) c
|
||||
}
|
||||
}
|
||||
|
||||
void CINF::sendCINFToBlender(hecl::BlenderConnection::PyOutStream& os, const UniqueID32& cinfId) const
|
||||
void CINF::sendCINFToBlender(hecl::blender::PyOutStream& os, const UniqueID32& cinfId) const
|
||||
{
|
||||
DNAANIM::RigInverter<CINF> inverter(*this);
|
||||
|
||||
@@ -93,4 +92,3 @@ std::string CINF::GetCINFArmatureName(const UniqueID32& cinfId)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
#ifndef _DNAMP2_CINF_HPP_
|
||||
#define _DNAMP2_CINF_HPP_
|
||||
|
||||
#include "hecl/Blender/BlenderConnection.hpp"
|
||||
#include "../DNACommon/DNACommon.hpp"
|
||||
#include "../DNACommon/RigInverter.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct CINF : BigDNA
|
||||
@@ -42,12 +39,11 @@ struct CINF : BigDNA
|
||||
atUint32 getInternalBoneIdxFromId(atUint32 id) const;
|
||||
atUint32 getBoneIdxFromId(atUint32 id) const;
|
||||
const std::string* getBoneNameFromId(atUint32 id) const;
|
||||
void sendVertexGroupsToBlender(hecl::BlenderConnection::PyOutStream& os) const;
|
||||
void sendCINFToBlender(hecl::BlenderConnection::PyOutStream& os, const UniqueID32& cinfId) const;
|
||||
void sendVertexGroupsToBlender(hecl::blender::PyOutStream& os) const;
|
||||
void sendCINFToBlender(hecl::blender::PyOutStream& os, const UniqueID32& cinfId) const;
|
||||
static std::string GetCINFArmatureName(const UniqueID32& cinfId);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_CINF_HPP_
|
||||
|
||||
38
DataSpec/DNAMP2/CMDL.cpp
Normal file
38
DataSpec/DNAMP2/CMDL.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include "CMDL.hpp"
|
||||
#include "hecl/Blender/Connection.hpp"
|
||||
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
bool CMDL::Extract(const SpecBase& dataSpec,
|
||||
PAKEntryReadStream& rs,
|
||||
const hecl::ProjectPath& outPath,
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool,
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)>)
|
||||
{
|
||||
/* Check for RigPair */
|
||||
const PAKRouter<PAKBridge>::RigPair* rp = pakRouter.lookupCMDLRigPair(entry.id);
|
||||
CINF cinf;
|
||||
CSKR cskr;
|
||||
std::pair<CSKR*,CINF*> loadRp(nullptr, nullptr);
|
||||
if (rp)
|
||||
{
|
||||
pakRouter.lookupAndReadDNA(rp->first, cskr);
|
||||
pakRouter.lookupAndReadDNA(rp->second, cinf);
|
||||
loadRp.first = &cskr;
|
||||
loadRp.second = &cinf;
|
||||
}
|
||||
|
||||
/* Do extract */
|
||||
hecl::blender::Connection& conn = btok.getBlenderConnection();
|
||||
if (!conn.createBlend(outPath, hecl::blender::BlendType::Mesh))
|
||||
return false;
|
||||
DNACMDL::ReadCMDLToBlender<PAKRouter<PAKBridge>, MaterialSet, std::pair<CSKR*,CINF*>, DNACMDL::SurfaceHeader_2, 4>
|
||||
(conn, rs, pakRouter, entry, dataSpec, loadRp);
|
||||
return conn.saveBlend();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,9 +8,7 @@
|
||||
#include "CINF.hpp"
|
||||
#include "CSKR.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct CMDL
|
||||
@@ -21,33 +19,10 @@ struct CMDL
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool,
|
||||
hecl::BlenderToken& btok,
|
||||
std::function<void(const hecl::SystemChar*)>)
|
||||
{
|
||||
/* Check for RigPair */
|
||||
const PAKRouter<PAKBridge>::RigPair* rp = pakRouter.lookupCMDLRigPair(entry.id);
|
||||
CINF cinf;
|
||||
CSKR cskr;
|
||||
std::pair<CSKR*,CINF*> loadRp(nullptr, nullptr);
|
||||
if (rp)
|
||||
{
|
||||
pakRouter.lookupAndReadDNA(rp->first, cskr);
|
||||
pakRouter.lookupAndReadDNA(rp->second, cinf);
|
||||
loadRp.first = &cskr;
|
||||
loadRp.second = &cinf;
|
||||
}
|
||||
|
||||
/* Do extract */
|
||||
hecl::BlenderConnection& conn = btok.getBlenderConnection();
|
||||
if (!conn.createBlend(outPath, hecl::BlenderConnection::BlendType::Mesh))
|
||||
return false;
|
||||
DNACMDL::ReadCMDLToBlender<PAKRouter<PAKBridge>, MaterialSet, std::pair<CSKR*,CINF*>, DNACMDL::SurfaceHeader_2, 4>
|
||||
(conn, rs, pakRouter, entry, dataSpec, loadRp);
|
||||
return conn.saveBlend();
|
||||
}
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)>);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_CMDL_HPP_
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
#include "../DNAMP1/CMDLMaterials.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
/* Structurally identical to DNAMP1::MaterialSet except unk0 and unk1 fields */
|
||||
@@ -59,15 +57,15 @@ struct MaterialSet : BigDNA
|
||||
};
|
||||
Vector<Material, DNA_COUNT(head.materialCount)> materials;
|
||||
|
||||
static void RegisterMaterialProps(hecl::BlenderConnection::PyOutStream& out)
|
||||
static void RegisterMaterialProps(hecl::blender::PyOutStream& out)
|
||||
{
|
||||
DNAMP1::MaterialSet::RegisterMaterialProps(out);
|
||||
}
|
||||
static void ConstructMaterial(hecl::BlenderConnection::PyOutStream& out,
|
||||
static void ConstructMaterial(hecl::blender::PyOutStream& out,
|
||||
const MaterialSet::Material& material,
|
||||
unsigned groupIdx, unsigned matIdx);
|
||||
|
||||
void readToBlender(hecl::BlenderConnection::PyOutStream& os,
|
||||
void readToBlender(hecl::blender::PyOutStream& os,
|
||||
const PAKRouter<PAKBridge>& pakRouter,
|
||||
const PAKRouter<PAKBridge>::EntryType& entry,
|
||||
unsigned setIdx)
|
||||
@@ -76,7 +74,6 @@ struct MaterialSet : BigDNA
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_CMDL_MATERIALS_HPP_
|
||||
|
||||
@@ -16,6 +16,8 @@ set(DNAMP2_SOURCES
|
||||
ANIM.cpp
|
||||
AGSC.cpp
|
||||
CINF.cpp
|
||||
CSKR.cpp
|
||||
CMDL.cpp
|
||||
ANCS.cpp
|
||||
CMDL.hpp
|
||||
MREA.cpp
|
||||
|
||||
21
DataSpec/DNAMP2/CSKR.cpp
Normal file
21
DataSpec/DNAMP2/CSKR.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#include "CSKR.hpp"
|
||||
#include "hecl/Blender/Connection.hpp"
|
||||
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
void CSKR::weightVertex(hecl::blender::PyOutStream& os, const CINF& cinf, atUint32 idx) const
|
||||
{
|
||||
atUint32 accum = 0;
|
||||
for (const SkinningRule& rule : skinningRules)
|
||||
{
|
||||
if (idx >= accum && idx < accum + rule.vertCount)
|
||||
for (const SkinningRule::Weight& weight : rule.weights)
|
||||
os.format("vert[dvert_lay][%u] = %f\n",
|
||||
cinf.getBoneIdxFromId(weight.boneId),
|
||||
weight.weight);
|
||||
accum += rule.vertCount;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,14 +1,11 @@
|
||||
#ifndef _DNAMP2_CSKR_HPP_
|
||||
#define _DNAMP2_CSKR_HPP_
|
||||
|
||||
#include "hecl/Blender/BlenderConnection.hpp"
|
||||
#include "../DNACommon/DNACommon.hpp"
|
||||
#include "CINF.hpp"
|
||||
#include "../DNAMP1/CSKR.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct CSKR : DNAMP1::CSKR
|
||||
@@ -20,22 +17,9 @@ struct CSKR : DNAMP1::CSKR
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void weightVertex(hecl::BlenderConnection::PyOutStream& os, const CINF& cinf, atUint32 idx) const
|
||||
{
|
||||
atUint32 accum = 0;
|
||||
for (const SkinningRule& rule : skinningRules)
|
||||
{
|
||||
if (idx >= accum && idx < accum + rule.vertCount)
|
||||
for (const SkinningRule::Weight& weight : rule.weights)
|
||||
os.format("vert[dvert_lay][%u] = %f\n",
|
||||
cinf.getBoneIdxFromId(weight.boneId),
|
||||
weight.weight);
|
||||
accum += rule.vertCount;
|
||||
}
|
||||
}
|
||||
void weightVertex(hecl::blender::PyOutStream& os, const CINF& cinf, atUint32 idx) const;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_CSKR_HPP_
|
||||
|
||||
@@ -19,9 +19,7 @@
|
||||
#include "../DNACommon/ATBL.hpp"
|
||||
#include "Runtime/GCNTypes.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
logvisor::Module Log("urde::DNAMP2");
|
||||
|
||||
@@ -298,4 +296,3 @@ ResExtractor<PAKBridge> PAKBridge::LookupExtractor(const DNAMP1::PAK& pak, const
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
#include "../DNACommon/DNACommon.hpp"
|
||||
#include "../DNAMP1/PAK.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
extern logvisor::Module Log;
|
||||
@@ -44,7 +42,6 @@ public:
|
||||
std::unordered_map<UniqueID32, hecl::ProjectPath>& pathOverrides) const;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // __DNAMP2_HPP__
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
#include "DeafBabe.hpp"
|
||||
#include "hecl/Blender/Connection.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
void DeafBabe::BlenderInit(hecl::BlenderConnection::PyOutStream& os)
|
||||
void DeafBabe::BlenderInit(hecl::blender::PyOutStream& os)
|
||||
{
|
||||
os << "TYPE_COLORS = {'NoSFX':(0.0, 0.0, 0.0),\n"
|
||||
" 'Stone':(1.0, 0.43, 0.15),\n"
|
||||
@@ -255,5 +254,18 @@ void DeafBabe::BlenderInit(hecl::BlenderConnection::PyOutStream& os)
|
||||
"\n";
|
||||
}
|
||||
|
||||
void DeafBabe::insertNoClimb(hecl::blender::PyOutStream& os) const
|
||||
{
|
||||
for (atInt16 edgeIdx : noClimbEdges)
|
||||
{
|
||||
if (edgeIdx == -1)
|
||||
continue;
|
||||
const Edge& edge = edgeVertConnections[edgeIdx];
|
||||
os.format("edge = col_bm.edges.get((col_bm.verts[%u], col_bm.verts[%u]))\n"
|
||||
"if edge:\n"
|
||||
" edge.seam = True\n",
|
||||
edge.verts[0], edge.verts[1]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
|
||||
#include "../DNAMP1/DeafBabe.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct DeafBabe : BigDNA
|
||||
@@ -135,27 +133,14 @@ struct DeafBabe : BigDNA
|
||||
Value<atUint32> vertCount;
|
||||
Vector<atVec3f, DNA_COUNT(vertCount)> verts;
|
||||
|
||||
static void BlenderInit(hecl::BlenderConnection::PyOutStream& os);
|
||||
void insertNoClimb(hecl::BlenderConnection::PyOutStream& os) const
|
||||
{
|
||||
for (atInt16 edgeIdx : noClimbEdges)
|
||||
{
|
||||
if (edgeIdx == -1)
|
||||
continue;
|
||||
const Edge& edge = edgeVertConnections[edgeIdx];
|
||||
os.format("edge = col_bm.edges.get((col_bm.verts[%u], col_bm.verts[%u]))\n"
|
||||
"if edge:\n"
|
||||
" edge.seam = True\n",
|
||||
edge.verts[0], edge.verts[1]);
|
||||
}
|
||||
}
|
||||
void sendToBlender(hecl::BlenderConnection::PyOutStream& os) const
|
||||
static void BlenderInit(hecl::blender::PyOutStream& os);
|
||||
void insertNoClimb(hecl::blender::PyOutStream& os) const;
|
||||
void sendToBlender(hecl::blender::PyOutStream& os) const
|
||||
{
|
||||
DeafBabeSendToBlender(os, *this);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // _DNAMP2_DEAFBABE_HPP_
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
#include "../DNACommon/MAPA.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
struct MAPA : DNAMAPA::MAPA
|
||||
{
|
||||
@@ -17,16 +15,16 @@ struct MAPA : DNAMAPA::MAPA
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool force,
|
||||
hecl::BlenderToken& btok,
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)> fileChanged)
|
||||
{
|
||||
MAPA mapa;
|
||||
mapa.read(rs);
|
||||
hecl::BlenderConnection& conn = btok.getBlenderConnection();
|
||||
hecl::blender::Connection& conn = btok.getBlenderConnection();
|
||||
return DNAMAPA::ReadMAPAToBlender(conn, mapa, outPath, pakRouter, entry, force);
|
||||
}
|
||||
|
||||
static bool Cook(const hecl::BlenderConnection::DataStream::MapArea& mapa, const hecl::ProjectPath& out)
|
||||
static bool Cook(const hecl::blender::MapArea& mapa, const hecl::ProjectPath& out)
|
||||
{
|
||||
return DNAMAPA::Cook<MAPA>(mapa, out);
|
||||
}
|
||||
@@ -36,7 +34,6 @@ struct MAPA : DNAMAPA::MAPA
|
||||
using MappableObject = DNAMAPA::MAPA::MappableObjectMP1_2;
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
#include "../DNACommon/MAPU.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct MAPU : DNAMAPU::MAPU
|
||||
@@ -20,16 +18,15 @@ struct MAPU : DNAMAPU::MAPU
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool force,
|
||||
hecl::BlenderToken& btok,
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)> fileChanged)
|
||||
{
|
||||
MAPU mapu;
|
||||
mapu.read(rs);
|
||||
hecl::BlenderConnection& conn = btok.getBlenderConnection();
|
||||
hecl::blender::Connection& conn = btok.getBlenderConnection();
|
||||
return DNAMAPU::ReadMAPUToBlender(conn, mapu, outPath, pakRouter, entry, force);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
#include "../DNACommon/MLVL.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct MLVL : BigYAML
|
||||
@@ -100,20 +98,19 @@ struct MLVL : BigYAML
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool force,
|
||||
hecl::BlenderToken& btok,
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)> fileChanged)
|
||||
{
|
||||
MLVL mlvl;
|
||||
mlvl.read(rs);
|
||||
athena::io::FileWriter writer(outPath.getWithExtension(_S(".yaml"), true).getAbsolutePath());
|
||||
mlvl.toYAMLStream(writer);
|
||||
hecl::BlenderConnection& conn = btok.getBlenderConnection();
|
||||
hecl::blender::Connection& conn = btok.getBlenderConnection();
|
||||
return DNAMLVL::ReadMLVLToBlender(conn, mlvl, outPath, pakRouter,
|
||||
entry, force, fileChanged);
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // __DNAMP2_MLVL_HPP__
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "../DNAMP1/MREA.hpp"
|
||||
#include "../DNACommon/EGMC.hpp"
|
||||
#include "DeafBabe.hpp"
|
||||
#include "hecl/Blender/Connection.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
@@ -165,7 +166,7 @@ bool MREA::Extract(const SpecBase& dataSpec,
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool force,
|
||||
hecl::BlenderToken& btok,
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)>)
|
||||
{
|
||||
using RigPair = std::pair<CSKR*, CINF*>;
|
||||
@@ -194,8 +195,8 @@ bool MREA::Extract(const SpecBase& dataSpec,
|
||||
drs.seek(0, athena::Begin);
|
||||
|
||||
/* Start up blender connection */
|
||||
hecl::BlenderConnection& conn = btok.getBlenderConnection();
|
||||
if (!conn.createBlend(outPath, hecl::BlenderConnection::BlendType::Area))
|
||||
hecl::blender::Connection& conn = btok.getBlenderConnection();
|
||||
if (!conn.createBlend(outPath, hecl::blender::BlendType::Area))
|
||||
return false;
|
||||
|
||||
/* Calculate offset to EGMC section */
|
||||
@@ -212,7 +213,7 @@ bool MREA::Extract(const SpecBase& dataSpec,
|
||||
drs.seek(0, athena::Begin);
|
||||
|
||||
/* Open Py Stream and read sections */
|
||||
hecl::BlenderConnection::PyOutStream os = conn.beginPythonOut(true);
|
||||
hecl::blender::PyOutStream os = conn.beginPythonOut(true);
|
||||
os.format("import bpy\n"
|
||||
"import bmesh\n"
|
||||
"from mathutils import Vector\n"
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
#include "CMDLMaterials.hpp"
|
||||
#include "CSKR.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct MREA
|
||||
@@ -123,11 +121,10 @@ struct MREA
|
||||
PAKRouter<PAKBridge>& pakRouter,
|
||||
const DNAMP1::PAK::Entry& entry,
|
||||
bool,
|
||||
hecl::BlenderToken& btok,
|
||||
hecl::blender::Token& btok,
|
||||
std::function<void(const hecl::SystemChar*)>);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -3,15 +3,12 @@
|
||||
|
||||
#include "../DNAMP1/PAK.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace urde::DNAMP2
|
||||
{
|
||||
|
||||
/* Same PAK format as MP1 */
|
||||
using PAK = DNAMP1::PAK;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // __DNAMP2_PAK_HPP__
|
||||
|
||||
@@ -3,9 +3,7 @@
|
||||
|
||||
#include "../DNACommon/DNACommon.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
struct PTLA : BigDNA
|
||||
{
|
||||
@@ -68,5 +66,4 @@ struct PTLA : BigDNA
|
||||
Vector<UnknownStruct3, DNA_COUNT(count3)> entries3;
|
||||
};
|
||||
}
|
||||
}
|
||||
#endif // __DNAMP2_PTLA_HPP__
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
#include "../DNAMP1/SAVW.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
struct SAVW : DNAMP1::SAVW
|
||||
{
|
||||
@@ -19,6 +17,5 @@ struct SAVW : DNAMP1::SAVW
|
||||
Vector<atUint32, DNA_COUNT(gameObjectCount)> gameObjects;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
#endif // __DNAMP2_SAVW_HPP__
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
#include "STRG.hpp"
|
||||
#include "DNAMP2.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
void STRG::_read(athena::io::IStreamReader& reader)
|
||||
@@ -248,4 +246,3 @@ const char* STRG::DNAType()
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,9 +5,7 @@
|
||||
#include "../DNACommon/PAK.hpp"
|
||||
#include "../DNACommon/STRG.hpp"
|
||||
|
||||
namespace DataSpec
|
||||
{
|
||||
namespace DNAMP2
|
||||
namespace DataSpec::DNAMP2
|
||||
{
|
||||
|
||||
struct STRG : ISTRG
|
||||
@@ -84,7 +82,6 @@ struct STRG : ISTRG
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif // __DNAMP2_STRG_HPP__
|
||||
|
||||
Reference in New Issue
Block a user