Annotation of quakeworld/client/spritegn.h, revision 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: // spritegn.h: header file for sprite generation program
        !            22: //
        !            23: 
        !            24: // **********************************************************
        !            25: // * This file must be identical in the spritegen directory *
        !            26: // * and in the Quake directory, because it's used to       *
        !            27: // * pass data from one to the other via .spr files.        *
        !            28: // **********************************************************
        !            29: 
        !            30: //-------------------------------------------------------
        !            31: // This program generates .spr sprite package files.
        !            32: // The format of the files is as follows:
        !            33: //
        !            34: // dsprite_t file header structure
        !            35: // <repeat dsprite_t.numframes times>
        !            36: //   <if spritegroup, repeat dspritegroup_t.numframes times>
        !            37: //     dspriteframe_t frame header structure
        !            38: //     sprite bitmap
        !            39: //   <else (single sprite frame)>
        !            40: //     dspriteframe_t frame header structure
        !            41: //     sprite bitmap
        !            42: // <endrepeat>
        !            43: //-------------------------------------------------------
        !            44: 
        !            45: #ifdef INCLUDELIBS
        !            46: 
        !            47: #include <stdlib.h>
        !            48: #include <stdio.h>
        !            49: #include <math.h>
        !            50: #include <string.h>
        !            51: 
        !            52: #include "cmdlib.h"
        !            53: #include "scriplib.h"
        !            54: #include "dictlib.h"
        !            55: #include "trilib.h"
        !            56: #include "lbmlib.h"
        !            57: #include "mathlib.h"
        !            58: 
        !            59: #endif
        !            60: 
        !            61: #define SPRITE_VERSION 1
        !            62: 
        !            63: // must match definition in modelgen.h
        !            64: #ifndef SYNCTYPE_T
        !            65: #define SYNCTYPE_T
        !            66: typedef enum {ST_SYNC=0, ST_RAND } synctype_t;
        !            67: #endif
        !            68: 
        !            69: // TODO: shorten these?
        !            70: typedef struct {
        !            71:        int                     ident;
        !            72:        int                     version;
        !            73:        int                     type;
        !            74:        float           boundingradius;
        !            75:        int                     width;
        !            76:        int                     height;
        !            77:        int                     numframes;
        !            78:        float           beamlength;
        !            79:        synctype_t      synctype;
        !            80: } dsprite_t;
        !            81: 
        !            82: #define SPR_VP_PARALLEL_UPRIGHT                0
        !            83: #define SPR_FACING_UPRIGHT                     1
        !            84: #define SPR_VP_PARALLEL                                2
        !            85: #define SPR_ORIENTED                           3
        !            86: #define SPR_VP_PARALLEL_ORIENTED       4
        !            87: 
        !            88: typedef struct {
        !            89:        int                     origin[2];
        !            90:        int                     width;
        !            91:        int                     height;
        !            92: } dspriteframe_t;
        !            93: 
        !            94: typedef struct {
        !            95:        int                     numframes;
        !            96: } dspritegroup_t;
        !            97: 
        !            98: typedef struct {
        !            99:        float   interval;
        !           100: } dspriteinterval_t;
        !           101: 
        !           102: typedef enum { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t;
        !           103: 
        !           104: typedef struct {
        !           105:        spriteframetype_t       type;
        !           106: } dspriteframetype_t;
        !           107: 
        !           108: #define IDSPRITEHEADER (('P'<<24)+('S'<<16)+('D'<<8)+'I')
        !           109:                                                                                                                // little-endian "IDSP"
        !           110: 

unix.superglobalmegacorp.com

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