metaforce/DataSpec/DNACommon/ANCS.hpp

48 lines
1.1 KiB
C++
Raw Normal View History

2018-10-06 20:42:33 -07:00
#pragma once
2015-08-11 16:32:02 -07:00
#include <functional>
#include <string>
#include <utility>
#include <vector>
2019-10-01 00:38:03 -07:00
#include "athena/Types.hpp"
#include "hecl/Blender/Connection.hpp"
namespace DataSpec {
struct SpecBase;
}
namespace hecl {
class ProjectPath;
}
2015-08-11 16:32:02 -07:00
2018-12-07 21:30:43 -08:00
namespace DataSpec::DNAANCS {
2015-08-11 16:32:02 -07:00
2017-12-29 00:08:12 -08:00
using Actor = hecl::blender::Actor;
2019-10-01 00:38:03 -07:00
using Armature = Actor::ActorArmature;
2017-12-29 00:08:12 -08:00
using Action = hecl::blender::Action;
2015-10-22 17:45:26 -07:00
2015-08-11 16:32:02 -07:00
template <typename IDTYPE>
2018-12-07 21:30:43 -08:00
struct CharacterResInfo {
std::string name;
IDTYPE cmdl;
IDTYPE cskr;
IDTYPE cinf;
std::vector<std::pair<std::string, std::pair<IDTYPE, IDTYPE>>> overlays;
2015-08-11 16:32:02 -07:00
};
template <typename IDTYPE>
2018-12-07 21:30:43 -08:00
struct AnimationResInfo {
std::string name;
IDTYPE animId;
IDTYPE evntId;
bool additive;
};
2015-09-25 20:12:08 -07:00
template <class PAKRouter, class ANCSDNA, class MaterialSet, class SurfaceHeader, atUint32 CMDLVersion>
2020-04-13 21:15:17 -07:00
bool ReadANCSToBlender(hecl::blender::Token& btok, const ANCSDNA& ancs, const hecl::ProjectPath& outPath,
2018-12-07 21:30:43 -08:00
PAKRouter& pakRouter, const typename PAKRouter::EntryType& entry, const SpecBase& dataspec,
std::function<void(const char*)> fileChanged, bool force = false);
2015-08-11 16:32:02 -07:00
2018-12-07 21:30:43 -08:00
} // namespace DataSpec::DNAANCS