5 typedef struct pskchunk_s
7 // id is one of the following:
9 // ACTRHEAD (recordsize = 0, numrecords = 0)
10 // PNTS0000 (recordsize = 12, pskpnts_t)
11 // VTXW0000 (recordsize = 16, pskvtxw_t)
12 // FACE0000 (recordsize = 12, pskface_t)
13 // MATT0000 (recordsize = 88, pskmatt_t)
14 // REFSKELT (recordsize = 120, pskboneinfo_t)
15 // RAWWEIGHTS (recordsize = 12, pskrawweights_t)
17 // ANIMHEAD (recordsize = 0, numrecords = 0)
18 // BONENAMES (recordsize = 120, pskboneinfo_t)
19 // ANIMINFO (recordsize = 168, pskaniminfo_t)
20 // ANIMKEYS (recordsize = 32, pskanimkeys_t)
22 // in .psk always 0x1e83b9
23 // in .psa always 0x2e
30 typedef struct pskpnts_s
36 typedef struct pskvtxw_s
38 unsigned short pntsindex; // index into PNTS0000 chunk
39 unsigned char unknown1[2]; // seems to be garbage
41 unsigned char mattindex; // index into MATT0000 chunk
42 unsigned char unknown2; // always 0?
43 unsigned char unknown3[2]; // seems to be garbage
47 typedef struct pskface_s
49 unsigned short vtxwindex[3]; // triangle
50 unsigned char mattindex; // index into MATT0000 chunk
51 unsigned char unknown; // seems to be garbage
52 unsigned int group; // faces seem to be grouped, possibly for smoothing?
56 typedef struct pskmatt_s
59 int unknown[6]; // observed 0 0 0 0 5 0
63 typedef struct pskpose_s
67 float unknown; // probably a float, always seems to be 0
72 typedef struct pskboneinfo_s
77 int parent; // root bones have 0 here
82 typedef struct pskrawweights_s
90 typedef struct pskaniminfo_s
99 float playtime; // not really needed
100 float fps; // frames per second
104 // firstanimkeys = (firstframe + frameindex) * numbones
108 typedef struct pskanimkeys_s