This commit is contained in:
parent
9638e0c561
commit
abc8365365
7 changed files with 406 additions and 102 deletions
|
@ -8,23 +8,47 @@
|
|||
|
||||
#include "..\mapedit\ExportHdr.h"
|
||||
|
||||
//***************************************************************************
|
||||
struct sGinSkel
|
||||
{
|
||||
sBone Bone;
|
||||
CFaceStore FaceList;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
struct sBoneAnim
|
||||
{
|
||||
vector<int> Idx;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
struct sAnim
|
||||
{
|
||||
GString Name;
|
||||
int FrameCount;
|
||||
vector<sBoneAnim> BoneAnim;
|
||||
vector<s32> Move;
|
||||
int AnimOfs;
|
||||
int MoveOfs;
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
class CMkActor3d
|
||||
{
|
||||
public:
|
||||
CMkActor3d(GString const &In,GString const &Out,int TPBase,int TPW,int TPH);
|
||||
|
||||
void Load();
|
||||
void Process();
|
||||
void Write();
|
||||
|
||||
void SetInName(GString const &In);
|
||||
void SetTPData(int TPBase,int TPW,int TPH);
|
||||
|
||||
void AddAnim(const char *Name);
|
||||
void AddTex(const char *Name);
|
||||
|
||||
void ProcessActor();
|
||||
void ProcessAnim();
|
||||
private:
|
||||
void ActorLoad();
|
||||
void ActorProcess();
|
||||
void ActorWrite();
|
||||
|
||||
void ProcessSkel(int Idx,int Parent);
|
||||
void WriteSkel();
|
||||
|
||||
|
@ -32,20 +56,37 @@ private:
|
|||
void BuildBoneOut(sBone &OutBone,CNode const &InNode,int ParentBoneIdx);
|
||||
int WriteTexInfoList();
|
||||
|
||||
GString InFilename,InPath,Name,OutFile,OutDir;
|
||||
|
||||
GString InFilename,InPath,Name,OutFile,IncFile;
|
||||
CScene Scene;
|
||||
|
||||
vector<sGinSkel> Skel;
|
||||
|
||||
CFaceStore FaceList;
|
||||
|
||||
sActor3dHdr FileHdr;
|
||||
sActorHdr FileHdr;
|
||||
FILE *File;
|
||||
|
||||
std::vector<GString> InTexList;
|
||||
std::vector<GString> InAnimList;
|
||||
|
||||
int TPageBase;
|
||||
int TPageWidth,TPageHeight;
|
||||
|
||||
/*Anim*/
|
||||
void AnimLoad();
|
||||
void AnimWrite();
|
||||
void AnimWriteInclude();
|
||||
int AnimProcessSkelMove(CScene &Scene,sAnim &ThisAnim,int Idx);
|
||||
void AnimProcessSkelAnim(CScene &Scene,sAnim &ThisAnim,int Idx);
|
||||
int AnimWriteMove(sAnim const &ThisAnim);
|
||||
int AnimWriteAnim(sAnim const &ThisAnim);
|
||||
int AnimWriteQuatTable();
|
||||
|
||||
int BoneCount;
|
||||
vector<sAnim> AnimList;
|
||||
CList<sQuat> QuatList;
|
||||
|
||||
|
||||
};
|
||||
|
||||
//***************************************************************************
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue