DarkPlaces
Game engine based on the Quake 1 engine by id Software, developed by LadyHavoc
 
model_psk.h
Go to the documentation of this file.
1
2#ifndef MODEL_PSK_H
3#define MODEL_PSK_H
4
5typedef struct pskchunk_s
6{
7 // id is one of the following:
8 // .psk:
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)
16 // .psa:
17 // ANIMHEAD (recordsize = 0, numrecords = 0)
18 // BONENAMES (recordsize = 120, pskboneinfo_t)
19 // ANIMINFO (recordsize = 168, pskaniminfo_t)
20 // ANIMKEYS (recordsize = 32, pskanimkeys_t)
21 char id[20];
22 // in .psk always 0x1e83b9
23 // in .psa always 0x2e
27}
29
30typedef struct pskpnts_s
31{
32 float origin[3];
33}
35
36typedef struct pskvtxw_s
37{
38 unsigned short pntsindex; // index into PNTS0000 chunk
39 unsigned char unknown1[2]; // seems to be garbage
40 float texcoord[2];
41 unsigned char mattindex; // index into MATT0000 chunk
42 unsigned char unknown2; // always 0?
43 unsigned char unknown3[2]; // seems to be garbage
44}
46
47typedef struct pskface_s
48{
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?
53}
55
56typedef struct pskmatt_s
57{
58 char name[64];
59 int unknown[6]; // observed 0 0 0 0 5 0
60}
62
63typedef struct pskpose_s
64{
65 float quat[4];
66 float origin[3];
67 float unknown; // probably a float, always seems to be 0
68 float size[3];
69}
71
72typedef struct pskboneinfo_s
73{
74 char name[64];
77 int parent; // root bones have 0 here
79}
81
82typedef struct pskrawweights_s
83{
84 float weight;
87}
89
90typedef struct pskaniminfo_s
91{
92 char name[64];
93 char group[64];
98 float unknown4;
99 float playtime; // not really needed
100 float fps; // frames per second
104 // firstanimkeys = (firstframe + frameindex) * numbones
105}
107
108typedef struct pskanimkeys_s
109{
110 float origin[3];
111 float quat[4];
113}
115
116#endif
117
vector size
vector origin
const GLchar * name
Definition glquake.h:601
float playtime
Definition model_psk.h:99
float unknown4
Definition model_psk.h:98
float frametime
Definition model_psk.h:112
pskpose_t basepose
Definition model_psk.h:78
int version
Definition model_psk.h:24
int numrecords
Definition model_psk.h:26
int recordsize
Definition model_psk.h:25
unsigned char unknown
Definition model_psk.h:51
unsigned char mattindex
Definition model_psk.h:50
unsigned int group
Definition model_psk.h:52
float unknown
Definition model_psk.h:67
unsigned short pntsindex
Definition model_psk.h:38
unsigned char unknown2
Definition model_psk.h:42
unsigned char mattindex
Definition model_psk.h:41