Port some of hsfload.c
This commit is contained in:
parent
909c743527
commit
f31f250258
6 changed files with 1118 additions and 228 deletions
|
|
@ -227,9 +227,8 @@ typedef struct hsf_cluster {
|
|||
s32 target;
|
||||
};
|
||||
HsfPart *part;
|
||||
float unk10;
|
||||
float unk14[1]; // unknown array size
|
||||
u8 unk18[124];
|
||||
float index;
|
||||
float weight[32]; // unknown array size
|
||||
u8 adjusted;
|
||||
u8 unk95;
|
||||
u16 type;
|
||||
|
|
@ -261,7 +260,7 @@ typedef struct hsf_object_data {
|
|||
} mesh;
|
||||
struct hsf_object *replica;
|
||||
};
|
||||
|
||||
|
||||
HsfBuffer *face;
|
||||
HsfBuffer *vertex;
|
||||
HsfBuffer *normal;
|
||||
|
|
@ -397,6 +396,9 @@ typedef struct hsf_data {
|
|||
HsfObject *object;
|
||||
HsfMapAttr *mapAttr;
|
||||
HsfMatrix *matrix;
|
||||
#ifdef TARGET_PC
|
||||
void **symbol;
|
||||
#endif
|
||||
s16 sceneCnt;
|
||||
s16 attributeCnt;
|
||||
s16 materialCnt;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,149 @@ extern "C"
|
|||
#include "game/animdata.h"
|
||||
#include "game/hsfformat.h"
|
||||
|
||||
typedef struct HsfCluster32b {
|
||||
u32 name[2];
|
||||
u32 targetName;
|
||||
u32 part;
|
||||
float index;
|
||||
float weight[32];
|
||||
u8 adjusted;
|
||||
u8 unk95;
|
||||
u16 type;
|
||||
u32 vertexCnt;
|
||||
u32 vertex;
|
||||
} HsfCluster32b;
|
||||
|
||||
typedef struct HsfAttribute32b {
|
||||
u32 name;
|
||||
u32 unk04;
|
||||
u8 unk8[4];
|
||||
float unk0C;
|
||||
u8 unk10[4];
|
||||
float unk14;
|
||||
u8 unk18[8];
|
||||
float unk20;
|
||||
u8 unk24[4];
|
||||
float unk28;
|
||||
float unk2C;
|
||||
float unk30;
|
||||
float unk34;
|
||||
u8 unk38[44];
|
||||
u32 wrap_s;
|
||||
u32 wrap_t;
|
||||
u8 unk6C[12];
|
||||
u32 unk78;
|
||||
u32 flag;
|
||||
u32 bitmap;
|
||||
} HsfAttribute32b;
|
||||
|
||||
typedef struct HsfMaterial32b {
|
||||
u32 name;
|
||||
u8 unk4[4];
|
||||
u16 pass;
|
||||
u8 vtxMode;
|
||||
u8 litColor[3];
|
||||
u8 color[3];
|
||||
u8 shadowColor[3];
|
||||
float hilite_scale;
|
||||
float unk18;
|
||||
float invAlpha;
|
||||
float unk20[2];
|
||||
float refAlpha;
|
||||
float unk2C;
|
||||
u32 flags;
|
||||
u32 numAttrs;
|
||||
u32 attrs;
|
||||
} HsfMaterial32b;
|
||||
|
||||
typedef struct HsfMapAttr32b {
|
||||
float minX;
|
||||
float minZ;
|
||||
float maxX;
|
||||
float maxZ;
|
||||
u32 data;
|
||||
u32 dataLen;
|
||||
} HsfMapAttr32b;
|
||||
|
||||
typedef struct HsfBuffer32b {
|
||||
u32 name;
|
||||
s32 count;
|
||||
u32 data;
|
||||
} HsfBuffer32b;
|
||||
|
||||
typedef struct HsfPalette32b {
|
||||
u32 name;
|
||||
s32 unk;
|
||||
u32 palSize;
|
||||
u32 data;
|
||||
} HsfPalette32b;
|
||||
|
||||
typedef struct HsfBitmap32b {
|
||||
u32 name;
|
||||
u32 maxLod;
|
||||
u8 dataFmt;
|
||||
u8 pixSize;
|
||||
s16 sizeX;
|
||||
s16 sizeY;
|
||||
s16 palSize;
|
||||
GXColor tint;
|
||||
u32 palData;
|
||||
u32 unk;
|
||||
u32 data;
|
||||
} HsfBitmap32b;
|
||||
|
||||
typedef struct HsfPart32b {
|
||||
u32 name;
|
||||
u32 count;
|
||||
u32 vertex;
|
||||
} HsfPart32b;
|
||||
|
||||
typedef struct HsfSkeleton32b {
|
||||
u32 name;
|
||||
HsfTransform transform;
|
||||
} HsfSkeleton32b;
|
||||
|
||||
typedef struct HsfShape32b {
|
||||
u32 name;
|
||||
union {
|
||||
u16 count16[2];
|
||||
u32 vertexCnt;
|
||||
};
|
||||
u32 vertex;
|
||||
} HsfShape32b;
|
||||
|
||||
typedef struct HsfCenv32b {
|
||||
u32 name;
|
||||
u32 singleData;
|
||||
u32 dualData;
|
||||
u32 multiData;
|
||||
u32 singleCount;
|
||||
u32 dualCount;
|
||||
u32 multiCount;
|
||||
u32 vtxCount;
|
||||
u32 copyCount;
|
||||
} HsfCenv32b;
|
||||
|
||||
typedef struct HsfObject32b {
|
||||
u32 name;
|
||||
u32 type;
|
||||
u32 constData;
|
||||
u32 flags;
|
||||
// TODO PC
|
||||
union {
|
||||
HsfObjectData data;
|
||||
HsfCamera camera;
|
||||
HsfLight light;
|
||||
};
|
||||
} HsfObject32b;
|
||||
|
||||
void byteswap_u16(u16 *src);
|
||||
void byteswap_s16(s16 *src);
|
||||
void byteswap_u32(u32 *src);
|
||||
void byteswap_s32(s32 *src);
|
||||
void byteswap_hsfvec3f(HsfVector3f *src);
|
||||
void byteswap_hsfvec2f(HsfVector2f *src);
|
||||
|
||||
void byteswap_animdata(void *src, AnimData* dest);
|
||||
void byteswap_animbankdata(void *src, AnimBankData *dest);
|
||||
void byteswap_animpatdata(void *src, AnimPatData *dest);
|
||||
|
|
@ -18,8 +159,22 @@ void byteswap_animbmpdata(void *src, AnimBmpData *dest);
|
|||
void byteswap_animframedata(AnimFrameData *src);
|
||||
void byteswap_animlayerdata(AnimLayerData *src);
|
||||
|
||||
|
||||
void byteswap_hsfheader(HsfHeader *src);
|
||||
void byteswap_hsfcluster(HsfCluster32b *src, HsfCluster *dest);
|
||||
void byteswap_hsfattribute(HsfAttribute32b *src, HsfAttribute *dest);
|
||||
void byteswap_hsfmaterial(HsfMaterial32b *src, HsfMaterial *dest);
|
||||
void byteswap_hsfscene(HsfScene *src);
|
||||
void byteswap_hsfbuffer(HsfBuffer32b *src, HsfBuffer *dest);
|
||||
void byteswap_hsfmatrix(HsfMatrix *src);
|
||||
void byteswap_hsfpalette(HsfPalette32b *src, HsfPalette *dest);
|
||||
void byteswap_hsfpart(HsfPart32b *src, HsfPart *dest);
|
||||
void byteswap_hsfbitmap(HsfBitmap32b *src, HsfBitmap *dest);
|
||||
void byteswap_hsfmapattr(HsfMapAttr32b *src, HsfMapAttr *dest);
|
||||
void byteswap_hsfskeleton(HsfSkeleton32b *src, HsfSkeleton *dest);
|
||||
void byteswap_hsfshape(HsfShape32b *src, HsfShape *dest);
|
||||
void byteswap_hsfcenvsingle(HsfCenvSingle *src);
|
||||
void byteswap_hsfcenv(HsfCenv32b *src, HsfCenv *dest);
|
||||
void byteswap_hsfobject(HsfObject32b *src, HsfObject *dest);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue