Annotation of quakeworld/client/modelgen.h, revision 1.1.1.1

1.1       root        1: /*
                      2: Copyright (C) 1996-1997 Id Software, Inc.
                      3: 
                      4: This program is free software; you can redistribute it and/or
                      5: modify it under the terms of the GNU General Public License
                      6: as published by the Free Software Foundation; either version 2
                      7: of the License, or (at your option) any later version.
                      8: 
                      9: This program is distributed in the hope that it will be useful,
                     10: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
                     12: 
                     13: See the GNU General Public License for more details.
                     14: 
                     15: You should have received a copy of the GNU General Public License
                     16: along with this program; if not, write to the Free Software
                     17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
                     18: 
                     19: */
                     20: //
                     21: // modelgen.h: header file for model generation program
                     22: //
                     23: 
                     24: // *********************************************************
                     25: // * This file must be identical in the modelgen directory *
                     26: // * and in the Quake directory, because it's used to      *
                     27: // * pass data from one to the other via model files.      *
                     28: // *********************************************************
                     29: 
                     30: #ifdef INCLUDELIBS
                     31: 
                     32: #include <stdlib.h>
                     33: #include <stdio.h>
                     34: #include <math.h>
                     35: #include <string.h>
                     36: 
                     37: #include "cmdlib.h"
                     38: #include "scriplib.h"
                     39: #include "trilib.h"
                     40: #include "lbmlib.h"
                     41: #include "mathlib.h"
                     42: 
                     43: #endif
                     44: 
                     45: #define ALIAS_VERSION  6
                     46: 
                     47: #define ALIAS_ONSEAM                           0x0020
                     48: 
                     49: // must match definition in spritegn.h
                     50: #ifndef SYNCTYPE_T
                     51: #define SYNCTYPE_T
                     52: typedef enum {ST_SYNC=0, ST_RAND } synctype_t;
                     53: #endif
                     54: 
                     55: typedef enum { ALIAS_SINGLE=0, ALIAS_GROUP } aliasframetype_t;
                     56: 
                     57: typedef enum { ALIAS_SKIN_SINGLE=0, ALIAS_SKIN_GROUP } aliasskintype_t;
                     58: 
                     59: typedef struct {
                     60:        int                     ident;
                     61:        int                     version;
                     62:        vec3_t          scale;
                     63:        vec3_t          scale_origin;
                     64:        float           boundingradius;
                     65:        vec3_t          eyeposition;
                     66:        int                     numskins;
                     67:        int                     skinwidth;
                     68:        int                     skinheight;
                     69:        int                     numverts;
                     70:        int                     numtris;
                     71:        int                     numframes;
                     72:        synctype_t      synctype;
                     73:        int                     flags;
                     74:        float           size;
                     75: } mdl_t;
                     76: 
                     77: // TODO: could be shorts
                     78: 
                     79: typedef struct {
                     80:        int             onseam;
                     81:        int             s;
                     82:        int             t;
                     83: } stvert_t;
                     84: 
                     85: typedef struct dtriangle_s {
                     86:        int                                     facesfront;
                     87:        int                                     vertindex[3];
                     88: } dtriangle_t;
                     89: 
                     90: #define DT_FACES_FRONT                         0x0010
                     91: 
                     92: // This mirrors trivert_t in trilib.h, is present so Quake knows how to
                     93: // load this data
                     94: 
                     95: typedef struct {
                     96:        byte    v[3];
                     97:        byte    lightnormalindex;
                     98: } trivertx_t;
                     99: 
                    100: typedef struct {
                    101:        trivertx_t      bboxmin;        // lightnormal isn't used
                    102:        trivertx_t      bboxmax;        // lightnormal isn't used
                    103:        char            name[16];       // frame name from grabbing
                    104: } daliasframe_t;
                    105: 
                    106: typedef struct {
                    107:        int                     numframes;
                    108:        trivertx_t      bboxmin;        // lightnormal isn't used
                    109:        trivertx_t      bboxmax;        // lightnormal isn't used
                    110: } daliasgroup_t;
                    111: 
                    112: typedef struct {
                    113:        int                     numskins;
                    114: } daliasskingroup_t;
                    115: 
                    116: typedef struct {
                    117:        float   interval;
                    118: } daliasinterval_t;
                    119: 
                    120: typedef struct {
                    121:        float   interval;
                    122: } daliasskininterval_t;
                    123: 
                    124: typedef struct {
                    125:        aliasframetype_t        type;
                    126: } daliasframetype_t;
                    127: 
                    128: typedef struct {
                    129:        aliasskintype_t type;
                    130: } daliasskintype_t;
                    131: 
                    132: #define IDPOLYHEADER   (('O'<<24)+('P'<<16)+('D'<<8)+'I')
                    133:                                                                                                                // little-endian "IDPO"
                    134: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.