dsqs area subset of dts data

ensure if an input file contains mesh data *and* an animation, thats a dts, if it's *just* an armature, that's dsq
also fix shapeanimation tooltip display
and for furutere utility,  TSShape::isShapeFileType(Torque::Path filePath); is now static since it only requires a path, not an object instance per-se
This commit is contained in:
AzaezelX 2025-09-14 15:18:03 -05:00
parent 50815c1a5a
commit cd5f897e55
4 changed files with 36 additions and 40 deletions

View file

@ -993,21 +993,24 @@ TSShape* assimpLoadShape(const Torque::Path &path)
tss->write(&dtsStream);
}
Torque::Path dsqPath(cachedPath);
dsqPath.setExtension("dsq");
FileStream animOutStream;
for (S32 i = 0; i < tss->sequences.size(); i++)
if (tss->meshes.empty())
{
const String& seqName = tss->getName(tss->sequences[i].nameIndex);
Con::printf("Writing DSQ Animation File for sequence '%s'", seqName.c_str());
dsqPath.setFileName(cachedPath.getFileName() + "_" + seqName);
if (animOutStream.open(dsqPath.getFullPath(), Torque::FS::File::Write))
Torque::Path dsqPath(cachedPath);
dsqPath.setExtension("dsq");
FileStream animOutStream;
for (S32 i = 0; i < tss->sequences.size(); i++)
{
tss->exportSequence(&animOutStream, tss->sequences[i], false);
animOutStream.close();
}
const String& seqName = tss->getName(tss->sequences[i].nameIndex);
Con::printf("Writing DSQ Animation File for sequence '%s'", seqName.c_str());
dsqPath.setFileName(cachedPath.getFileName() + "_" + seqName);
if (animOutStream.open(dsqPath.getFullPath(), Torque::FS::File::Write))
{
tss->exportSequence(&animOutStream, tss->sequences[i], false);
animOutStream.close();
}
}
}
loader.updateMaterialsScript(path);

View file

@ -737,23 +737,25 @@ TSShape* loadColladaShape(const Torque::Path &path)
tss->write(&dtsStream);
}
Torque::Path dsqPath(cachedPath);
dsqPath.setExtension("dsq");
FileStream animOutStream;
for (S32 i = 0; i < tss->sequences.size(); i++)
if (tss->meshes.empty())
{
const String& seqName = tss->getName(tss->sequences[i].nameIndex);
Con::printf("Writing DSQ Animation File for sequence '%s'", seqName.c_str());
dsqPath.setFileName(cachedPath.getFileName() + "_" + seqName);
if (animOutStream.open(dsqPath.getFullPath(), Torque::FS::File::Write))
Torque::Path dsqPath(cachedPath);
dsqPath.setExtension("dsq");
FileStream animOutStream;
for (S32 i = 0; i < tss->sequences.size(); i++)
{
tss->exportSequence(&animOutStream, tss->sequences[i], false);
animOutStream.close();
const String& seqName = tss->getName(tss->sequences[i].nameIndex);
Con::printf("Writing DSQ Animation File for sequence '%s'", seqName.c_str());
dsqPath.setFileName(cachedPath.getFileName() + "_" + seqName);
if (animOutStream.open(dsqPath.getFullPath(), Torque::FS::File::Write))
{
tss->exportSequence(&animOutStream, tss->sequences[i], false);
animOutStream.close();
}
}
}
#endif // DAE2DTS_TOOL
// Add collada materials to materials.tscript

View file

@ -681,7 +681,7 @@ class TSShape
S32 setDetailSize(S32 oldSize, S32 newSize);
bool removeDetail(S32 size);
bool isShapeFileType(Torque::Path filePath);
static bool isShapeFileType(Torque::Path filePath);
bool addSequence(const Torque::Path& path, const String& fromSeq, const String& name, S32 startFrame, S32 endFrame, bool padRotKeys, bool padTransKeys);
bool removeSequence(const String& name);