+++ /dev/null
-/*
- Copyright (C) 1999-2007 id Software, Inc. and contributors.
- For a list of contributors, see the accompanying CONTRIBUTORS file.
-
- This file is part of GtkRadiant.
-
- GtkRadiant is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- GtkRadiant is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GtkRadiant; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-/*
- ========================================================================
-
- .FM triangle flexible model file format
-
- ========================================================================
- */
-
-#ifndef __FMODEL_HEADER
-#define __FMODEL_HEADER
-
-#include "bspfile.h"
-
-//typedef unsigned char byte;
-//typedef int qboolean;
-//typedef float vec3_t[3];
-
-#define MAX_FM_TRIANGLES 2048
-#define MAX_FM_VERTS 2048
-#define MAX_FM_FRAMES 2048
-#define MAX_FM_SKINS 64
-#define MAX_FM_SKINNAME 64
-#define MAX_FM_MESH_NODES 16 // also defined in game/qshared.h
-
-
-#define DTRIVERTX_V0 0
-#define DTRIVERTX_V1 1
-#define DTRIVERTX_V2 2
-#define DTRIVERTX_LNI 3
-#define DTRIVERTX_SIZE 4
-
-#define SKINPAGE_WIDTH 640
-#define SKINPAGE_HEIGHT 480
-
-#define ENCODED_WIDTH_X 92
-#define ENCODED_WIDTH_Y 475
-#define ENCODED_HEIGHT_X 128
-#define ENCODED_HEIGHT_Y 475
-
-#define SCALE_ADJUST_FACTOR 0.96
-
-#define INFO_HEIGHT 5
-#define INFO_Y ( SKINPAGE_HEIGHT - INFO_HEIGHT )
-
-extern byte *BasePalette;
-extern byte *BasePixels,*TransPixels;
-extern int BaseWidth, BaseHeight, TransWidth, TransHeight;
-extern int ScaleWidth, ScaleHeight;
-
-int ExtractNumber( byte *pic, int x, int y );
-void DrawTextChar( int x, int y, char *text );
-void DrawLine( int x1, int y1, int x2, int y2 );
-
-// the glcmd format:
-// a positive integer starts a tristrip command, followed by that many
-// vertex structures.
-// a negative integer starts a trifan command, followed by -x vertexes
-// a zero indicates the end of the command list.
-// a vertex consists of a floating point s, a floating point t,
-// and an integer vertex index.
-
-
-// Initial Header
-#define FM_HEADER_NAME "header"
-#define FM_HEADER_VER 2
-
-typedef struct
-{
- int skinwidth;
- int skinheight;
- int framesize; // byte size of each frame
-
- int num_skins;
- int num_xyz;
- int num_st; // greater than num_xyz for seams
- int num_tris;
- int num_glcmds; // dwords in strip/fan command list
- int num_frames;
- int num_mesh_nodes;
-} fmheader_t;
-
-
-// Skin Header
-#define FM_SKIN_NAME "skin"
-#define FM_SKIN_VER 1
-
-
-// ST Coord Header
-#define FM_ST_NAME "st coord"
-#define FM_ST_VER 1
-
-typedef struct
-{
- short s;
- short t;
-} fmstvert_t;
-
-
-// Tri Header
-#define FM_TRI_NAME "tris"
-#define FM_TRI_VER 1
-
-typedef struct
-{
- short index_xyz[3];
- short index_st[3];
-} fmtriangle_t;
-
-
-// Frame Header
-#define FM_FRAME_NAME "frames"
-#define FM_FRAME_VER 1
-
-// Frame for compression, just the names
-#define FM_SHORT_FRAME_NAME "short frames"
-#define FM_SHORT_FRAME_VER 1
-
-// Normals for compressed frames
-#define FM_NORMAL_NAME "normals"
-#define FM_NORMAL_VER 1
-
-// Compressed Frame Data
-#define FM_COMP_NAME "comp data"
-#define FM_COMP_VER 1
-
-// GL Cmds Header
-#define FM_GLCMDS_NAME "glcmds"
-#define FM_GLCMDS_VER 1
-
-
-// Mesh Nodes Header
-#define FM_MESH_NAME "mesh nodes"
-#define FM_MESH_VER 3
-
-// Skeleton Header
-#define FM_SKELETON_NAME "skeleton"
-#define FM_SKELETON_VER 1
-
-// References Header
-#define FM_REFERENCES_NAME "references"
-#define FM_REFERENCES_VER 1
-
-typedef struct
-{
-
- union
- {
-
- byte tris[MAX_FM_TRIANGLES >> 3];
-
- struct {
- short *triIndicies;
- int num_tris;
- };
-
- };
-
- byte verts[MAX_FM_VERTS >> 3];
- short start_glcmds, num_glcmds;
-} fmmeshnode_t;
-
-//=================================================================
-
-// Frame info
-typedef struct
-{
- byte v[3]; // scaled byte to fit in frame mins/maxs
- byte lightnormalindex;
-} fmtrivertx_t;
-
-typedef struct
-{
- float scale[3]; // multiply byte verts by this
- float translate[3]; // then add this
- char name[16]; // frame name from grabbing
- fmtrivertx_t verts[1]; // variable sized
-} fmaliasframe_t;
-
-
-#endif // #define __FMODEL_HEADER