1 typedef struct zymlump_s
7 typedef struct zymtype1header_s
9 char id[12]; // "ZYMOTICMODEL", length 12, no termination
10 int type; // 0 (vertex morph) 1 (skeletal pose) or 2 (skeletal scripted)
11 int filesize; // size of entire model file
12 float mins[3], maxs[3], radius; // for clipping uses
16 int numbones; // this may be zero in the vertex morph format (undecided)
17 int numscenes; // 0 in skeletal scripted models
19 // skeletal pose header
20 // lump offsets are relative to the file
21 zymlump_t lump_scenes; // zymscene_t scene[numscenes]; // name and other information for each scene (see zymscene struct)
22 zymlump_t lump_poses; // float pose[numposes][numbones][6]; // animation data
23 zymlump_t lump_bones; // zymbone_t bone[numbones];
24 zymlump_t lump_vertbonecounts; // int vertbonecounts[numvertices]; // how many bones influence each vertex (separate mainly to make this compress better)
25 zymlump_t lump_verts; // zymvertex_t vert[numvertices]; // see vertex struct
26 zymlump_t lump_texcoords; // float texcoords[numvertices][2];
27 zymlump_t lump_render; // int renderlist[rendersize]; // sorted by shader with run lengths (int shader, count), each run can be used with glDrawElements (each triangle is 3 int indices)
28 zymlump_t lump_shaders; // char shadername[numshaders][32]; // shaders used on this model
29 zymlump_t lump_trizone; // byte trizone[numtris]; // see trizone explanation
33 #define ZYMBONEFLAG_SHARED 1
35 typedef struct zymbone_s
39 int parent; // parent bone number
43 // normally the scene will loop, if this is set it will stay on the final frame
44 #define ZYMSCENEFLAG_NOLOOP 1
46 typedef struct zymscene_s
49 float mins[3], maxs[3], radius; // for clipping
50 float framerate; // the scene will animate at this framerate (in frames per second)
52 int start, length; // range of poses
56 typedef struct zymvertex_s