Removed q3asm tool.
This commit is contained in:
parent
43ec842d70
commit
fa99bbfa46
|
|
@ -1,13 +0,0 @@
|
||||||
# yeah, couldn't do more simple really
|
|
||||||
|
|
||||||
CC=gcc
|
|
||||||
CFLAGS=-g -Wall
|
|
||||||
|
|
||||||
default: q3asm
|
|
||||||
|
|
||||||
q3asm: q3asm.c cmdlib.c
|
|
||||||
$(CC) $(CFLAGS) -o $@ $^
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f q3asm *~ *.o
|
|
||||||
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
2002-10-25 Timothee Besset <ttimo@idsoftware.com>
|
|
||||||
If you are looking for a faster version of the q3asm tool, try:
|
|
||||||
http://www.icculus.org/~phaethon/q3/q3asm-turbo/q3asm-turbo.html
|
|
||||||
|
|
||||||
2001-10-31 Timothee Besset <ttimo@idsoftware.com>
|
|
||||||
updated from the $/source/q3asm code
|
|
||||||
modified for portability and use with >= 1.31 mod source release
|
|
||||||
|
|
||||||
the cmdlib.c cmdlib.h mathlib.h qfiles.h have been copied from
|
|
||||||
$/source/common
|
|
||||||
1206
q3asm/cmdlib.c
1206
q3asm/cmdlib.c
File diff suppressed because it is too large
Load Diff
160
q3asm/cmdlib.h
160
q3asm/cmdlib.h
|
|
@ -1,160 +0,0 @@
|
||||||
/*
|
|
||||||
===========================================================================
|
|
||||||
Copyright (C) 1999-2005 Id Software, Inc.
|
|
||||||
|
|
||||||
This file is part of Quake III Arena source code.
|
|
||||||
|
|
||||||
Quake III Arena source code 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.
|
|
||||||
|
|
||||||
Quake III Arena source code 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 Foobar; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
===========================================================================
|
|
||||||
*/
|
|
||||||
// cmdlib.h
|
|
||||||
|
|
||||||
#ifndef __CMDLIB__
|
|
||||||
#define __CMDLIB__
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
#pragma warning(disable : 4244) // MIPS
|
|
||||||
#pragma warning(disable : 4136) // X86
|
|
||||||
#pragma warning(disable : 4051) // ALPHA
|
|
||||||
|
|
||||||
#pragma warning(disable : 4018) // signed/unsigned mismatch
|
|
||||||
#pragma warning(disable : 4305) // truncate from double to float
|
|
||||||
|
|
||||||
#pragma check_stack(off)
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <ctype.h>
|
|
||||||
#include <time.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
|
|
||||||
#pragma intrinsic( memset, memcpy )
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __BYTEBOOL__
|
|
||||||
#define __BYTEBOOL__
|
|
||||||
typedef enum { qfalse, qtrue } qboolean;
|
|
||||||
typedef unsigned char byte;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define MAX_OS_PATH 1024
|
|
||||||
#define MEM_BLOCKSIZE 4096
|
|
||||||
|
|
||||||
// the dec offsetof macro doesnt work very well...
|
|
||||||
#define myoffsetof(type,identifier) ((size_t)&((type *)0)->identifier)
|
|
||||||
|
|
||||||
|
|
||||||
// set these before calling CheckParm
|
|
||||||
extern int myargc;
|
|
||||||
extern char **myargv;
|
|
||||||
|
|
||||||
char *strupr (char *in);
|
|
||||||
char *strlower (char *in);
|
|
||||||
int Q_strncasecmp( const char *s1, const char *s2, int n );
|
|
||||||
int Q_stricmp( const char *s1, const char *s2 );
|
|
||||||
void Q_getwd( char *out );
|
|
||||||
|
|
||||||
int Q_filelength (FILE *f);
|
|
||||||
int FileTime( const char *path );
|
|
||||||
|
|
||||||
void Q_mkdir( const char *path );
|
|
||||||
|
|
||||||
extern char qdir[1024];
|
|
||||||
extern char gamedir[1024];
|
|
||||||
extern char writedir[1024];
|
|
||||||
void SetQdirFromPath( const char *path );
|
|
||||||
char *ExpandArg( const char *path ); // from cmd line
|
|
||||||
char *ExpandPath( const char *path ); // from scripts
|
|
||||||
char *ExpandGamePath (const char *path);
|
|
||||||
char *ExpandPathAndArchive( const char *path );
|
|
||||||
|
|
||||||
|
|
||||||
double I_FloatTime( void );
|
|
||||||
|
|
||||||
void Error( const char *error, ... );
|
|
||||||
int CheckParm( const char *check );
|
|
||||||
|
|
||||||
FILE *SafeOpenWrite( const char *filename );
|
|
||||||
FILE *SafeOpenRead( const char *filename );
|
|
||||||
void SafeRead (FILE *f, void *buffer, int count);
|
|
||||||
void SafeWrite (FILE *f, const void *buffer, int count);
|
|
||||||
|
|
||||||
int LoadFile( const char *filename, void **bufferptr );
|
|
||||||
int LoadFileBlock( const char *filename, void **bufferptr );
|
|
||||||
int TryLoadFile( const char *filename, void **bufferptr );
|
|
||||||
void SaveFile( const char *filename, const void *buffer, int count );
|
|
||||||
qboolean FileExists( const char *filename );
|
|
||||||
|
|
||||||
void DefaultExtension( char *path, const char *extension );
|
|
||||||
void DefaultPath( char *path, const char *basepath );
|
|
||||||
void StripFilename( char *path );
|
|
||||||
void StripExtension( char *path );
|
|
||||||
|
|
||||||
void ExtractFilePath( const char *path, char *dest );
|
|
||||||
void ExtractFileBase( const char *path, char *dest );
|
|
||||||
void ExtractFileExtension( const char *path, char *dest );
|
|
||||||
|
|
||||||
int ParseNum (const char *str);
|
|
||||||
|
|
||||||
short BigShort (short l);
|
|
||||||
short LittleShort (short l);
|
|
||||||
int BigLong (int l);
|
|
||||||
int LittleLong (int l);
|
|
||||||
float BigFloat (float l);
|
|
||||||
float LittleFloat (float l);
|
|
||||||
|
|
||||||
|
|
||||||
char *COM_Parse (char *data);
|
|
||||||
|
|
||||||
extern char com_token[1024];
|
|
||||||
extern qboolean com_eof;
|
|
||||||
|
|
||||||
char *copystring(const char *s);
|
|
||||||
|
|
||||||
|
|
||||||
void CRC_Init(unsigned short *crcvalue);
|
|
||||||
void CRC_ProcessByte(unsigned short *crcvalue, byte data);
|
|
||||||
unsigned short CRC_Value(unsigned short crcvalue);
|
|
||||||
|
|
||||||
void CreatePath( const char *path );
|
|
||||||
void QCopyFile( const char *from, const char *to );
|
|
||||||
|
|
||||||
extern qboolean archive;
|
|
||||||
extern char archivedir[1024];
|
|
||||||
|
|
||||||
|
|
||||||
extern qboolean verbose;
|
|
||||||
void qprintf( const char *format, ... );
|
|
||||||
void _printf( const char *format, ... );
|
|
||||||
|
|
||||||
void ExpandWildcards( int *argc, char ***argv );
|
|
||||||
|
|
||||||
|
|
||||||
// for compression routines
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
void *data;
|
|
||||||
int count, width, height;
|
|
||||||
} cblock_t;
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
||||||
|
|
||||||
strlen
|
|
||||||
strcasecmp
|
|
||||||
tolower
|
|
||||||
strcat
|
|
||||||
strncpy
|
|
||||||
strcmp
|
|
||||||
strcpy
|
|
||||||
strchr
|
|
||||||
|
|
||||||
vsprintf
|
|
||||||
|
|
||||||
memcpy
|
|
||||||
memset
|
|
||||||
rand
|
|
||||||
|
|
||||||
atoi
|
|
||||||
atof
|
|
||||||
|
|
||||||
abs
|
|
||||||
|
|
||||||
floor
|
|
||||||
fabs
|
|
||||||
tan
|
|
||||||
atan
|
|
||||||
sqrt
|
|
||||||
log
|
|
||||||
cos
|
|
||||||
sin
|
|
||||||
atan2
|
|
||||||
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
/*
|
|
||||||
===========================================================================
|
|
||||||
Copyright (C) 1999-2005 Id Software, Inc.
|
|
||||||
|
|
||||||
This file is part of Quake III Arena source code.
|
|
||||||
|
|
||||||
Quake III Arena source code 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.
|
|
||||||
|
|
||||||
Quake III Arena source code 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 Foobar; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
===========================================================================
|
|
||||||
*/
|
|
||||||
#ifndef __MATHLIB__
|
|
||||||
#define __MATHLIB__
|
|
||||||
|
|
||||||
// mathlib.h
|
|
||||||
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
#ifdef DOUBLEVEC_T
|
|
||||||
typedef double vec_t;
|
|
||||||
#else
|
|
||||||
typedef float vec_t;
|
|
||||||
#endif
|
|
||||||
typedef vec_t vec2_t[3];
|
|
||||||
typedef vec_t vec3_t[3];
|
|
||||||
typedef vec_t vec4_t[4];
|
|
||||||
|
|
||||||
#define SIDE_FRONT 0
|
|
||||||
#define SIDE_ON 2
|
|
||||||
#define SIDE_BACK 1
|
|
||||||
#define SIDE_CROSS -2
|
|
||||||
|
|
||||||
#define Q_PI 3.14159265358979323846
|
|
||||||
#define DEG2RAD( a ) ( ( (a) * Q_PI ) / 180.0F )
|
|
||||||
#define RAD2DEG( a ) ( ( (a) * 180.0f ) / Q_PI )
|
|
||||||
|
|
||||||
extern vec3_t vec3_origin;
|
|
||||||
|
|
||||||
#define EQUAL_EPSILON 0.001
|
|
||||||
|
|
||||||
// plane types are used to speed some tests
|
|
||||||
// 0-2 are axial planes
|
|
||||||
#define PLANE_X 0
|
|
||||||
#define PLANE_Y 1
|
|
||||||
#define PLANE_Z 2
|
|
||||||
#define PLANE_NON_AXIAL 3
|
|
||||||
|
|
||||||
qboolean VectorCompare( const vec3_t v1, const vec3_t v2 );
|
|
||||||
|
|
||||||
#define DotProduct(x,y) (x[0]*y[0]+x[1]*y[1]+x[2]*y[2])
|
|
||||||
#define VectorSubtract(a,b,c) {c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];}
|
|
||||||
#define VectorAdd(a,b,c) {c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];}
|
|
||||||
#define VectorCopy(a,b) {b[0]=a[0];b[1]=a[1];b[2]=a[2];}
|
|
||||||
#define VectorScale(a,b,c) {c[0]=b*a[0];c[1]=b*a[1];c[2]=b*a[2];}
|
|
||||||
#define VectorClear(x) {x[0] = x[1] = x[2] = 0;}
|
|
||||||
#define VectorNegate(x) {x[0]=-x[0];x[1]=-x[1];x[2]=-x[2];}
|
|
||||||
void Vec10Copy( vec_t *in, vec_t *out );
|
|
||||||
|
|
||||||
vec_t Q_rint (vec_t in);
|
|
||||||
vec_t _DotProduct (vec3_t v1, vec3_t v2);
|
|
||||||
void _VectorSubtract (vec3_t va, vec3_t vb, vec3_t out);
|
|
||||||
void _VectorAdd (vec3_t va, vec3_t vb, vec3_t out);
|
|
||||||
void _VectorCopy (vec3_t in, vec3_t out);
|
|
||||||
void _VectorScale (vec3_t v, vec_t scale, vec3_t out);
|
|
||||||
|
|
||||||
double VectorLength( const vec3_t v );
|
|
||||||
|
|
||||||
void VectorMA( const vec3_t va, double scale, const vec3_t vb, vec3_t vc );
|
|
||||||
|
|
||||||
void CrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross );
|
|
||||||
vec_t VectorNormalize( const vec3_t in, vec3_t out );
|
|
||||||
vec_t ColorNormalize( const vec3_t in, vec3_t out );
|
|
||||||
void VectorInverse (vec3_t v);
|
|
||||||
|
|
||||||
void ClearBounds (vec3_t mins, vec3_t maxs);
|
|
||||||
void AddPointToBounds( const vec3_t v, vec3_t mins, vec3_t maxs );
|
|
||||||
|
|
||||||
qboolean PlaneFromPoints( vec4_t plane, const vec3_t a, const vec3_t b, const vec3_t c );
|
|
||||||
|
|
||||||
void NormalToLatLong( const vec3_t normal, byte bytes[2] );
|
|
||||||
|
|
||||||
int PlaneTypeForNormal (vec3_t normal);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
|
|
||||||
don't do any paramter conversion (double to float, etc)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Why?
|
|
||||||
|
|
||||||
Security.
|
|
||||||
Portability.
|
|
||||||
|
|
||||||
It may be more aproachable.
|
|
||||||
|
|
||||||
can still use regular dlls for development purposes
|
|
||||||
|
|
||||||
lcc
|
|
||||||
q3asm
|
|
||||||
132
q3asm/ops.txt
132
q3asm/ops.txt
|
|
@ -1,132 +0,0 @@
|
||||||
CNSTF,
|
|
||||||
CNSTI,
|
|
||||||
CNSTP,
|
|
||||||
CNSTU,
|
|
||||||
|
|
||||||
ARGB,
|
|
||||||
ARGF,
|
|
||||||
ARGI,
|
|
||||||
ARGP,
|
|
||||||
ARGU,
|
|
||||||
|
|
||||||
ASGNB,
|
|
||||||
ASGNF,
|
|
||||||
ASGNI,
|
|
||||||
ASGNP,
|
|
||||||
ASGNU,
|
|
||||||
|
|
||||||
INDIRB,
|
|
||||||
INDIRF,
|
|
||||||
INDIRI,
|
|
||||||
INDIRP,
|
|
||||||
INDIRU,
|
|
||||||
|
|
||||||
CVFF,
|
|
||||||
CVFI,
|
|
||||||
|
|
||||||
CVIF,
|
|
||||||
CVII,
|
|
||||||
CVIU,
|
|
||||||
|
|
||||||
CVPU,
|
|
||||||
|
|
||||||
CVUI,
|
|
||||||
CVUP,
|
|
||||||
CVUU,
|
|
||||||
|
|
||||||
NEGF,
|
|
||||||
NEGI,
|
|
||||||
|
|
||||||
CALLB,
|
|
||||||
CALLF,
|
|
||||||
CALLI,
|
|
||||||
CALLP,
|
|
||||||
CALLU,
|
|
||||||
CALLV,
|
|
||||||
|
|
||||||
RETF,
|
|
||||||
RETI,
|
|
||||||
RETP,
|
|
||||||
RETU,
|
|
||||||
RETV,
|
|
||||||
|
|
||||||
ADDRGP,
|
|
||||||
|
|
||||||
ADDRFP,
|
|
||||||
|
|
||||||
ADDRLP,
|
|
||||||
|
|
||||||
ADDF,
|
|
||||||
ADDI,
|
|
||||||
ADDP,
|
|
||||||
ADDU,
|
|
||||||
|
|
||||||
SUBF,
|
|
||||||
SUBI,
|
|
||||||
SUBP,
|
|
||||||
SUBU,
|
|
||||||
|
|
||||||
LSHI,
|
|
||||||
LSHU,
|
|
||||||
|
|
||||||
MODI,
|
|
||||||
MODU,
|
|
||||||
|
|
||||||
RSHI,
|
|
||||||
RSHU,
|
|
||||||
|
|
||||||
BANDI,
|
|
||||||
BANDU,
|
|
||||||
|
|
||||||
BCOMI,
|
|
||||||
BCOMU,
|
|
||||||
|
|
||||||
BORI,
|
|
||||||
BORU,
|
|
||||||
|
|
||||||
BXORI,
|
|
||||||
BXORU,
|
|
||||||
|
|
||||||
DIVF,
|
|
||||||
DIVI,
|
|
||||||
DIVU,
|
|
||||||
|
|
||||||
MULF,
|
|
||||||
MULI,
|
|
||||||
MULU,
|
|
||||||
|
|
||||||
EQF,
|
|
||||||
EQI,
|
|
||||||
EQU,
|
|
||||||
|
|
||||||
GEF,
|
|
||||||
GEI,
|
|
||||||
GEU,
|
|
||||||
|
|
||||||
GTF,
|
|
||||||
GTI,
|
|
||||||
GTU,
|
|
||||||
|
|
||||||
LEF,
|
|
||||||
LEI,
|
|
||||||
LEU,
|
|
||||||
|
|
||||||
LTF,
|
|
||||||
LTI,
|
|
||||||
LTU,
|
|
||||||
|
|
||||||
NEF,
|
|
||||||
NEI,
|
|
||||||
NEU,
|
|
||||||
|
|
||||||
JUMPV,
|
|
||||||
|
|
||||||
LABELV,
|
|
||||||
|
|
||||||
LOADB,
|
|
||||||
LOADF,
|
|
||||||
LOADI,
|
|
||||||
LOADP,
|
|
||||||
LOADU,
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,175 +0,0 @@
|
||||||
/*
|
|
||||||
===========================================================================
|
|
||||||
Copyright (C) 1999-2005 Id Software, Inc.
|
|
||||||
|
|
||||||
This file is part of Quake III Arena source code.
|
|
||||||
|
|
||||||
Quake III Arena source code 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.
|
|
||||||
|
|
||||||
Quake III Arena source code 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 Foobar; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
===========================================================================
|
|
||||||
*/
|
|
||||||
{ "BREAK", OP_BREAK },
|
|
||||||
|
|
||||||
{ "CNSTF4", OP_CONST },
|
|
||||||
{ "CNSTI4", OP_CONST },
|
|
||||||
{ "CNSTP4", OP_CONST },
|
|
||||||
{ "CNSTU4", OP_CONST },
|
|
||||||
|
|
||||||
{ "CNSTI2", OP_CONST },
|
|
||||||
{ "CNSTU2", OP_CONST },
|
|
||||||
|
|
||||||
{ "CNSTI1", OP_CONST },
|
|
||||||
{ "CNSTU1", OP_CONST },
|
|
||||||
|
|
||||||
//{ "ARGB", OP_ARG },
|
|
||||||
//{ "ARGF", OP_ARG },
|
|
||||||
//{ "ARGI", OP_ARG },
|
|
||||||
//{ "ARGP", OP_ARG },
|
|
||||||
//{ "ARGU", OP_ARG },
|
|
||||||
|
|
||||||
{ "ASGNB", OP_BLOCK_COPY },
|
|
||||||
{ "ASGNF4", OP_STORE4 },
|
|
||||||
{ "ASGNI4", OP_STORE4 },
|
|
||||||
{ "ASGNP4", OP_STORE4 },
|
|
||||||
{ "ASGNU4", OP_STORE4 },
|
|
||||||
|
|
||||||
{ "ASGNI2", OP_STORE2 },
|
|
||||||
{ "ASGNU2", OP_STORE2 },
|
|
||||||
|
|
||||||
{ "ASGNI1", OP_STORE1 },
|
|
||||||
{ "ASGNU1", OP_STORE1 },
|
|
||||||
|
|
||||||
{ "INDIRB", OP_IGNORE }, // block copy deals with this
|
|
||||||
{ "INDIRF4", OP_LOAD4 },
|
|
||||||
{ "INDIRI4", OP_LOAD4 },
|
|
||||||
{ "INDIRP4", OP_LOAD4 },
|
|
||||||
{ "INDIRU4", OP_LOAD4 },
|
|
||||||
|
|
||||||
{ "INDIRI2", OP_LOAD2 },
|
|
||||||
{ "INDIRU2", OP_LOAD2 },
|
|
||||||
|
|
||||||
{ "INDIRI1", OP_LOAD1 },
|
|
||||||
{ "INDIRU1", OP_LOAD1 },
|
|
||||||
|
|
||||||
{ "CVFF4", OP_UNDEF },
|
|
||||||
{ "CVFI4", OP_CVFI },
|
|
||||||
|
|
||||||
{ "CVIF4", OP_CVIF },
|
|
||||||
{ "CVII4", OP_SEX8 }, // will be either SEX8 or SEX16
|
|
||||||
{ "CVII1", OP_IGNORE },
|
|
||||||
{ "CVII2", OP_IGNORE },
|
|
||||||
{ "CVIU4", OP_IGNORE },
|
|
||||||
|
|
||||||
{ "CVPU4", OP_IGNORE },
|
|
||||||
|
|
||||||
{ "CVUI4", OP_IGNORE },
|
|
||||||
{ "CVUP4", OP_IGNORE },
|
|
||||||
{ "CVUU4", OP_IGNORE },
|
|
||||||
|
|
||||||
{ "CVUU1", OP_IGNORE },
|
|
||||||
|
|
||||||
{ "NEGF4", OP_NEGF },
|
|
||||||
{ "NEGI4", OP_NEGI },
|
|
||||||
|
|
||||||
//{ "CALLB", OP_UNDEF },
|
|
||||||
//{ "CALLF", OP_UNDEF },
|
|
||||||
//{ "CALLI", OP_UNDEF },
|
|
||||||
//{ "CALLP", OP_UNDEF },
|
|
||||||
//{ "CALLU", OP_UNDEF },
|
|
||||||
//{ "CALLV", OP_CALL },
|
|
||||||
|
|
||||||
//{ "RETF", OP_UNDEF },
|
|
||||||
//{ "RETI", OP_UNDEF },
|
|
||||||
//{ "RETP", OP_UNDEF },
|
|
||||||
//{ "RETU", OP_UNDEF },
|
|
||||||
//{ "RETV", OP_UNDEF },
|
|
||||||
|
|
||||||
{ "ADDRGP4", OP_CONST },
|
|
||||||
|
|
||||||
//{ "ADDRFP", OP_PARM },
|
|
||||||
//{ "ADDRLP", OP_LOCAL },
|
|
||||||
|
|
||||||
{ "ADDF4", OP_ADDF },
|
|
||||||
{ "ADDI4", OP_ADD },
|
|
||||||
{ "ADDP4", OP_ADD },
|
|
||||||
{ "ADDP", OP_ADD },
|
|
||||||
{ "ADDU4", OP_ADD },
|
|
||||||
|
|
||||||
{ "SUBF4", OP_SUBF },
|
|
||||||
{ "SUBI4", OP_SUB },
|
|
||||||
{ "SUBP4", OP_SUB },
|
|
||||||
{ "SUBU4", OP_SUB },
|
|
||||||
|
|
||||||
{ "LSHI4", OP_LSH },
|
|
||||||
{ "LSHU4", OP_LSH },
|
|
||||||
|
|
||||||
{ "MODI4", OP_MODI },
|
|
||||||
{ "MODU4", OP_MODU },
|
|
||||||
|
|
||||||
{ "RSHI4", OP_RSHI },
|
|
||||||
{ "RSHU4", OP_RSHU },
|
|
||||||
|
|
||||||
{ "BANDI4", OP_BAND },
|
|
||||||
{ "BANDU4", OP_BAND },
|
|
||||||
|
|
||||||
{ "BCOMI4", OP_BCOM },
|
|
||||||
{ "BCOMU4", OP_BCOM },
|
|
||||||
|
|
||||||
{ "BORI4", OP_BOR },
|
|
||||||
{ "BORU4", OP_BOR },
|
|
||||||
|
|
||||||
{ "BXORI4", OP_BXOR },
|
|
||||||
{ "BXORU4", OP_BXOR },
|
|
||||||
|
|
||||||
{ "DIVF4", OP_DIVF },
|
|
||||||
{ "DIVI4", OP_DIVI },
|
|
||||||
{ "DIVU4", OP_DIVU },
|
|
||||||
|
|
||||||
{ "MULF4", OP_MULF },
|
|
||||||
{ "MULI4", OP_MULI },
|
|
||||||
{ "MULU4", OP_MULU },
|
|
||||||
|
|
||||||
{ "EQF4", OP_EQF },
|
|
||||||
{ "EQI4", OP_EQ },
|
|
||||||
{ "EQU4", OP_EQ },
|
|
||||||
|
|
||||||
{ "GEF4", OP_GEF },
|
|
||||||
{ "GEI4", OP_GEI },
|
|
||||||
{ "GEU4", OP_GEU },
|
|
||||||
|
|
||||||
{ "GTF4", OP_GTF },
|
|
||||||
{ "GTI4", OP_GTI },
|
|
||||||
{ "GTU4", OP_GTU },
|
|
||||||
|
|
||||||
{ "LEF4", OP_LEF },
|
|
||||||
{ "LEI4", OP_LEI },
|
|
||||||
{ "LEU4", OP_LEU },
|
|
||||||
|
|
||||||
{ "LTF4", OP_LTF },
|
|
||||||
{ "LTI4", OP_LTI },
|
|
||||||
{ "LTU4", OP_LTU },
|
|
||||||
|
|
||||||
{ "NEF4", OP_NEF },
|
|
||||||
{ "NEI4", OP_NE },
|
|
||||||
{ "NEU4", OP_NE },
|
|
||||||
|
|
||||||
{ "JUMPV", OP_JUMP },
|
|
||||||
|
|
||||||
{ "LOADB4", OP_UNDEF },
|
|
||||||
{ "LOADF4", OP_UNDEF },
|
|
||||||
{ "LOADI4", OP_UNDEF },
|
|
||||||
{ "LOADP4", OP_UNDEF },
|
|
||||||
{ "LOADU4", OP_UNDEF },
|
|
||||||
|
|
||||||
|
|
||||||
1047
q3asm/q3asm.c
1047
q3asm/q3asm.c
File diff suppressed because it is too large
Load Diff
|
|
@ -1,28 +0,0 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
|
||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "q3asm", "q3asm.vcproj", "{E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}"
|
|
||||||
ProjectSection(ProjectDependencies) = postProject
|
|
||||||
EndProjectSection
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SourceCodeControl) = preSolution
|
|
||||||
SccNumberOfProjects = 1
|
|
||||||
SccProjectUniqueName0 = q3asm.vcproj
|
|
||||||
SccProjectName0 = \u0022$/source/q3asm\u0022,\u0020YUCAAAAA
|
|
||||||
SccLocalPath0 = .
|
|
||||||
SccProvider0 = MSSCCI:Perforce\u0020SCM
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(SolutionConfiguration) = preSolution
|
|
||||||
Debug = Debug
|
|
||||||
Release = Release
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfiguration) = postSolution
|
|
||||||
{E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Debug.ActiveCfg = Debug|Win32
|
|
||||||
{E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Debug.Build.0 = Debug|Win32
|
|
||||||
{E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Release.ActiveCfg = Release|Win32
|
|
||||||
{E0D6B319-6F95-4ABA-9BE0-5454CAA5C8CD}.Release.Build.0 = Release|Win32
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
|
|
@ -1,195 +0,0 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
|
||||||
<VisualStudioProject
|
|
||||||
ProjectType="Visual C++"
|
|
||||||
Version="7.10"
|
|
||||||
Name="q3asm"
|
|
||||||
SccProjectName=""$/source/q3asm", YUCAAAAA"
|
|
||||||
SccLocalPath=".">
|
|
||||||
<Platforms>
|
|
||||||
<Platform
|
|
||||||
Name="Win32"/>
|
|
||||||
</Platforms>
|
|
||||||
<Configurations>
|
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory=".\Release"
|
|
||||||
IntermediateDirectory=".\Release"
|
|
||||||
ConfigurationType="1"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
InlineFunctionExpansion="1"
|
|
||||||
AdditionalIncludeDirectories="../common"
|
|
||||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
|
||||||
StringPooling="TRUE"
|
|
||||||
RuntimeLibrary="4"
|
|
||||||
EnableFunctionLevelLinking="TRUE"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderFile=".\Release/q3asm.pch"
|
|
||||||
AssemblerListingLocation=".\Release/"
|
|
||||||
ObjectFile=".\Release/"
|
|
||||||
ProgramDataBaseFileName=".\Release/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile=".\Release/q3asm.exe"
|
|
||||||
LinkIncremental="1"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
ProgramDatabaseFile=".\Release/q3asm.pdb"
|
|
||||||
SubSystem="1"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
TypeLibraryName=".\Release/q3asm.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
|
||||||
Name="Debug|Win32"
|
|
||||||
OutputDirectory=".\Debug"
|
|
||||||
IntermediateDirectory=".\Debug"
|
|
||||||
ConfigurationType="1"
|
|
||||||
UseOfMFC="0"
|
|
||||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
|
||||||
CharacterSet="2">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories="../common"
|
|
||||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
|
||||||
BasicRuntimeChecks="3"
|
|
||||||
RuntimeLibrary="5"
|
|
||||||
UsePrecompiledHeader="2"
|
|
||||||
PrecompiledHeaderFile=".\Debug/q3asm.pch"
|
|
||||||
AssemblerListingLocation=".\Debug/"
|
|
||||||
ObjectFile=".\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\Debug/"
|
|
||||||
WarningLevel="3"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
DebugInformationFormat="4"
|
|
||||||
CompileAs="0"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
OutputFile=".\Debug/q3asm.exe"
|
|
||||||
LinkIncremental="2"
|
|
||||||
SuppressStartupBanner="TRUE"
|
|
||||||
GenerateDebugInformation="TRUE"
|
|
||||||
ProgramDatabaseFile=".\Debug/q3asm.pdb"
|
|
||||||
SubSystem="1"
|
|
||||||
TargetMachine="1"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
TypeLibraryName=".\Debug/q3asm.tlb"
|
|
||||||
HeaderFileName=""/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
Culture="1033"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebDeploymentTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedWrapperGeneratorTool"/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
|
||||||
</Configuration>
|
|
||||||
</Configurations>
|
|
||||||
<References>
|
|
||||||
</References>
|
|
||||||
<Files>
|
|
||||||
<Filter
|
|
||||||
Name="Source Files"
|
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
|
|
||||||
<File
|
|
||||||
RelativePath="cmdlib.c">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
BasicRuntimeChecks="3"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
<File
|
|
||||||
RelativePath="q3asm.c">
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Release|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="2"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|Win32">
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
Optimization="0"
|
|
||||||
AdditionalIncludeDirectories=""
|
|
||||||
PreprocessorDefinitions=""
|
|
||||||
BasicRuntimeChecks="3"/>
|
|
||||||
</FileConfiguration>
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Header Files"
|
|
||||||
Filter="h;hpp;hxx;hm;inl">
|
|
||||||
<File
|
|
||||||
RelativePath="..\common\cmdlib.h">
|
|
||||||
</File>
|
|
||||||
</Filter>
|
|
||||||
<Filter
|
|
||||||
Name="Resource Files"
|
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
|
|
||||||
</Filter>
|
|
||||||
</Files>
|
|
||||||
<Globals>
|
|
||||||
</Globals>
|
|
||||||
</VisualStudioProject>
|
|
||||||
485
q3asm/qfiles.h
485
q3asm/qfiles.h
|
|
@ -1,485 +0,0 @@
|
||||||
/*
|
|
||||||
===========================================================================
|
|
||||||
Copyright (C) 1999-2005 Id Software, Inc.
|
|
||||||
|
|
||||||
This file is part of Quake III Arena source code.
|
|
||||||
|
|
||||||
Quake III Arena source code 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.
|
|
||||||
|
|
||||||
Quake III Arena source code 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 Foobar; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
===========================================================================
|
|
||||||
*/
|
|
||||||
#ifndef __QFILES_H__
|
|
||||||
#define __QFILES_H__
|
|
||||||
|
|
||||||
//
|
|
||||||
// qfiles.h: quake file formats
|
|
||||||
// This file must be identical in the quake and utils directories
|
|
||||||
//
|
|
||||||
|
|
||||||
// surface geometry should not exceed these limits
|
|
||||||
#define SHADER_MAX_VERTEXES 1000
|
|
||||||
#define SHADER_MAX_INDEXES (6*SHADER_MAX_VERTEXES)
|
|
||||||
|
|
||||||
|
|
||||||
// the maximum size of game reletive pathnames
|
|
||||||
#define MAX_QPATH 64
|
|
||||||
|
|
||||||
/*
|
|
||||||
========================================================================
|
|
||||||
|
|
||||||
QVM files
|
|
||||||
|
|
||||||
========================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define VM_MAGIC 0x12721444
|
|
||||||
typedef struct {
|
|
||||||
int vmMagic;
|
|
||||||
|
|
||||||
int instructionCount;
|
|
||||||
|
|
||||||
int codeOffset;
|
|
||||||
int codeLength;
|
|
||||||
|
|
||||||
int dataOffset;
|
|
||||||
int dataLength;
|
|
||||||
int litLength; // ( dataLength - litLength ) should be byteswapped on load
|
|
||||||
int bssLength; // zero filled memory appended to datalength
|
|
||||||
} vmHeader_t;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
========================================================================
|
|
||||||
|
|
||||||
PCX files are used for 8 bit images
|
|
||||||
|
|
||||||
========================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char manufacturer;
|
|
||||||
char version;
|
|
||||||
char encoding;
|
|
||||||
char bits_per_pixel;
|
|
||||||
unsigned short xmin,ymin,xmax,ymax;
|
|
||||||
unsigned short hres,vres;
|
|
||||||
unsigned char palette[48];
|
|
||||||
char reserved;
|
|
||||||
char color_planes;
|
|
||||||
unsigned short bytes_per_line;
|
|
||||||
unsigned short palette_type;
|
|
||||||
char filler[58];
|
|
||||||
unsigned char data; // unbounded
|
|
||||||
} pcx_t;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
========================================================================
|
|
||||||
|
|
||||||
TGA files are used for 24/32 bit images
|
|
||||||
|
|
||||||
========================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct _TargaHeader {
|
|
||||||
unsigned char id_length, colormap_type, image_type;
|
|
||||||
unsigned short colormap_index, colormap_length;
|
|
||||||
unsigned char colormap_size;
|
|
||||||
unsigned short x_origin, y_origin, width, height;
|
|
||||||
unsigned char pixel_size, attributes;
|
|
||||||
} TargaHeader;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
========================================================================
|
|
||||||
|
|
||||||
.MD3 triangle model file format
|
|
||||||
|
|
||||||
========================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define MD3_IDENT (('3'<<24)+('P'<<16)+('D'<<8)+'I')
|
|
||||||
#define MD3_VERSION 15
|
|
||||||
|
|
||||||
// limits
|
|
||||||
#define MD3_MAX_LODS 3
|
|
||||||
#define MD3_MAX_TRIANGLES 8192 // per surface
|
|
||||||
#define MD3_MAX_VERTS 4096 // per surface
|
|
||||||
#define MD3_MAX_SHADERS 256 // per surface
|
|
||||||
#define MD3_MAX_FRAMES 1024 // per model
|
|
||||||
#define MD3_MAX_SURFACES 32 // per model
|
|
||||||
#define MD3_MAX_TAGS 16 // per frame
|
|
||||||
|
|
||||||
// vertex scales
|
|
||||||
#define MD3_XYZ_SCALE (1.0/64)
|
|
||||||
|
|
||||||
typedef struct md3Frame_s {
|
|
||||||
vec3_t bounds[2];
|
|
||||||
vec3_t localOrigin;
|
|
||||||
float radius;
|
|
||||||
char name[16];
|
|
||||||
} md3Frame_t;
|
|
||||||
|
|
||||||
typedef struct md3Tag_s {
|
|
||||||
char name[MAX_QPATH]; // tag name
|
|
||||||
vec3_t origin;
|
|
||||||
vec3_t axis[3];
|
|
||||||
} md3Tag_t;
|
|
||||||
|
|
||||||
/*
|
|
||||||
** md3Surface_t
|
|
||||||
**
|
|
||||||
** CHUNK SIZE
|
|
||||||
** header sizeof( md3Surface_t )
|
|
||||||
** shaders sizeof( md3Shader_t ) * numShaders
|
|
||||||
** triangles[0] sizeof( md3Triangle_t ) * numTriangles
|
|
||||||
** st sizeof( md3St_t ) * numVerts
|
|
||||||
** XyzNormals sizeof( md3XyzNormal_t ) * numVerts * numFrames
|
|
||||||
*/
|
|
||||||
typedef struct {
|
|
||||||
int ident; //
|
|
||||||
|
|
||||||
char name[MAX_QPATH]; // polyset name
|
|
||||||
|
|
||||||
int flags;
|
|
||||||
int numFrames; // all surfaces in a model should have the same
|
|
||||||
|
|
||||||
int numShaders; // all surfaces in a model should have the same
|
|
||||||
int numVerts;
|
|
||||||
|
|
||||||
int numTriangles;
|
|
||||||
int ofsTriangles;
|
|
||||||
|
|
||||||
int ofsShaders; // offset from start of md3Surface_t
|
|
||||||
int ofsSt; // texture coords are common for all frames
|
|
||||||
int ofsXyzNormals; // numVerts * numFrames
|
|
||||||
|
|
||||||
int ofsEnd; // next surface follows
|
|
||||||
} md3Surface_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char name[MAX_QPATH];
|
|
||||||
int shaderIndex; // for in-game use
|
|
||||||
} md3Shader_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int indexes[3];
|
|
||||||
} md3Triangle_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
float st[2];
|
|
||||||
} md3St_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
short xyz[3];
|
|
||||||
short normal;
|
|
||||||
} md3XyzNormal_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int ident;
|
|
||||||
int version;
|
|
||||||
|
|
||||||
char name[MAX_QPATH]; // model name
|
|
||||||
|
|
||||||
int flags;
|
|
||||||
|
|
||||||
int numFrames;
|
|
||||||
int numTags;
|
|
||||||
int numSurfaces;
|
|
||||||
|
|
||||||
int numSkins;
|
|
||||||
|
|
||||||
int ofsFrames; // offset for first frame
|
|
||||||
int ofsTags; // numFrames * numTags
|
|
||||||
int ofsSurfaces; // first surface, others follow
|
|
||||||
|
|
||||||
int ofsEnd; // end of file
|
|
||||||
} md3Header_t;
|
|
||||||
|
|
||||||
/*
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
MD4 file format
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define MD4_IDENT (('4'<<24)+('P'<<16)+('D'<<8)+'I')
|
|
||||||
#define MD4_VERSION 1
|
|
||||||
#define MD4_MAX_BONES 128
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int boneIndex; // these are indexes into the boneReferences,
|
|
||||||
float boneWeight; // not the global per-frame bone list
|
|
||||||
vec3_t offset;
|
|
||||||
} md4Weight_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
vec3_t normal;
|
|
||||||
vec2_t texCoords;
|
|
||||||
int numWeights;
|
|
||||||
md4Weight_t weights[1]; // variable sized
|
|
||||||
} md4Vertex_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int indexes[3];
|
|
||||||
} md4Triangle_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int ident;
|
|
||||||
|
|
||||||
char name[MAX_QPATH]; // polyset name
|
|
||||||
char shader[MAX_QPATH];
|
|
||||||
int shaderIndex; // for in-game use
|
|
||||||
|
|
||||||
int ofsHeader; // this will be a negative number
|
|
||||||
|
|
||||||
int numVerts;
|
|
||||||
int ofsVerts;
|
|
||||||
|
|
||||||
int numTriangles;
|
|
||||||
int ofsTriangles;
|
|
||||||
|
|
||||||
// Bone references are a set of ints representing all the bones
|
|
||||||
// present in any vertex weights for this surface. This is
|
|
||||||
// needed because a model may have surfaces that need to be
|
|
||||||
// drawn at different sort times, and we don't want to have
|
|
||||||
// to re-interpolate all the bones for each surface.
|
|
||||||
int numBoneReferences;
|
|
||||||
int ofsBoneReferences;
|
|
||||||
|
|
||||||
int ofsEnd; // next surface follows
|
|
||||||
} md4Surface_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
float matrix[3][4];
|
|
||||||
} md4Bone_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
vec3_t bounds[2]; // bounds of all surfaces of all LOD's for this frame
|
|
||||||
vec3_t localOrigin; // midpoint of bounds, used for sphere cull
|
|
||||||
float radius; // dist from localOrigin to corner
|
|
||||||
char name[16];
|
|
||||||
md4Bone_t bones[1]; // [numBones]
|
|
||||||
} md4Frame_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int numSurfaces;
|
|
||||||
int ofsSurfaces; // first surface, others follow
|
|
||||||
int ofsEnd; // next lod follows
|
|
||||||
} md4LOD_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int ident;
|
|
||||||
int version;
|
|
||||||
|
|
||||||
char name[MAX_QPATH]; // model name
|
|
||||||
|
|
||||||
// frames and bones are shared by all levels of detail
|
|
||||||
int numFrames;
|
|
||||||
int numBones;
|
|
||||||
int ofsFrames; // md4Frame_t[numFrames]
|
|
||||||
|
|
||||||
// each level of detail has completely separate sets of surfaces
|
|
||||||
int numLODs;
|
|
||||||
int ofsLODs;
|
|
||||||
|
|
||||||
int ofsEnd; // end of file
|
|
||||||
} md4Header_t;
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
==============================================================================
|
|
||||||
|
|
||||||
.BSP file format
|
|
||||||
|
|
||||||
==============================================================================
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#define BSP_IDENT (('P'<<24)+('S'<<16)+('B'<<8)+'I')
|
|
||||||
// little-endian "IBSP"
|
|
||||||
|
|
||||||
#define BSP_VERSION 46
|
|
||||||
|
|
||||||
|
|
||||||
// there shouldn't be any problem with increasing these values at the
|
|
||||||
// expense of more memory allocation in the utilities
|
|
||||||
#define MAX_MAP_MODELS 0x400
|
|
||||||
#define MAX_MAP_BRUSHES 0x8000
|
|
||||||
#define MAX_MAP_ENTITIES 0x800
|
|
||||||
#define MAX_MAP_ENTSTRING 0x40000
|
|
||||||
#define MAX_MAP_SHADERS 0x400
|
|
||||||
|
|
||||||
#define MAX_MAP_AREAS 0x100 // MAX_MAP_AREA_BYTES in q_shared must match!
|
|
||||||
#define MAX_MAP_FOGS 0x100
|
|
||||||
#define MAX_MAP_PLANES 0x20000
|
|
||||||
#define MAX_MAP_NODES 0x20000
|
|
||||||
#define MAX_MAP_BRUSHSIDES 0x20000
|
|
||||||
#define MAX_MAP_LEAFS 0x20000
|
|
||||||
#define MAX_MAP_LEAFFACES 0x20000
|
|
||||||
#define MAX_MAP_LEAFBRUSHES 0x40000
|
|
||||||
#define MAX_MAP_PORTALS 0x20000
|
|
||||||
#define MAX_MAP_LIGHTING 0x800000
|
|
||||||
#define MAX_MAP_LIGHTGRID 0x800000
|
|
||||||
#define MAX_MAP_VISIBILITY 0x200000
|
|
||||||
|
|
||||||
#define MAX_MAP_DRAW_SURFS 0x20000
|
|
||||||
#define MAX_MAP_DRAW_VERTS 0x80000
|
|
||||||
#define MAX_MAP_DRAW_INDEXES 0x80000
|
|
||||||
|
|
||||||
|
|
||||||
// key / value pair sizes in the entities lump
|
|
||||||
#define MAX_KEY 32
|
|
||||||
#define MAX_VALUE 1024
|
|
||||||
|
|
||||||
// the editor uses these predefined yaw angles to orient entities up or down
|
|
||||||
#define ANGLE_UP -1
|
|
||||||
#define ANGLE_DOWN -2
|
|
||||||
|
|
||||||
#define LIGHTMAP_WIDTH 128
|
|
||||||
#define LIGHTMAP_HEIGHT 128
|
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int fileofs, filelen;
|
|
||||||
} lump_t;
|
|
||||||
|
|
||||||
#define LUMP_ENTITIES 0
|
|
||||||
#define LUMP_SHADERS 1
|
|
||||||
#define LUMP_PLANES 2
|
|
||||||
#define LUMP_NODES 3
|
|
||||||
#define LUMP_LEAFS 4
|
|
||||||
#define LUMP_LEAFSURFACES 5
|
|
||||||
#define LUMP_LEAFBRUSHES 6
|
|
||||||
#define LUMP_MODELS 7
|
|
||||||
#define LUMP_BRUSHES 8
|
|
||||||
#define LUMP_BRUSHSIDES 9
|
|
||||||
#define LUMP_DRAWVERTS 10
|
|
||||||
#define LUMP_DRAWINDEXES 11
|
|
||||||
#define LUMP_FOGS 12
|
|
||||||
#define LUMP_SURFACES 13
|
|
||||||
#define LUMP_LIGHTMAPS 14
|
|
||||||
#define LUMP_LIGHTGRID 15
|
|
||||||
#define LUMP_VISIBILITY 16
|
|
||||||
#define HEADER_LUMPS 17
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int ident;
|
|
||||||
int version;
|
|
||||||
|
|
||||||
lump_t lumps[HEADER_LUMPS];
|
|
||||||
} dheader_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
float mins[3], maxs[3];
|
|
||||||
int firstSurface, numSurfaces;
|
|
||||||
int firstBrush, numBrushes;
|
|
||||||
} dmodel_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char shader[MAX_QPATH];
|
|
||||||
int surfaceFlags;
|
|
||||||
int contentFlags;
|
|
||||||
} dshader_t;
|
|
||||||
|
|
||||||
// planes x^1 is allways the opposite of plane x
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
float normal[3];
|
|
||||||
float dist;
|
|
||||||
} dplane_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int planeNum;
|
|
||||||
int children[2]; // negative numbers are -(leafs+1), not nodes
|
|
||||||
int mins[3]; // for frustom culling
|
|
||||||
int maxs[3];
|
|
||||||
} dnode_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int cluster; // -1 = opaque cluster (do I still store these?)
|
|
||||||
int area;
|
|
||||||
|
|
||||||
int mins[3]; // for frustum culling
|
|
||||||
int maxs[3];
|
|
||||||
|
|
||||||
int firstLeafSurface;
|
|
||||||
int numLeafSurfaces;
|
|
||||||
|
|
||||||
int firstLeafBrush;
|
|
||||||
int numLeafBrushes;
|
|
||||||
} dleaf_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int planeNum; // positive plane side faces out of the leaf
|
|
||||||
int shaderNum;
|
|
||||||
} dbrushside_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int firstSide;
|
|
||||||
int numSides;
|
|
||||||
int shaderNum; // the shader that determines the contents flags
|
|
||||||
} dbrush_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
char shader[MAX_QPATH];
|
|
||||||
int brushNum;
|
|
||||||
int visibleSide; // the brush side that ray tests need to clip against (-1 == none)
|
|
||||||
} dfog_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
vec3_t xyz;
|
|
||||||
float st[2];
|
|
||||||
float lightmap[2];
|
|
||||||
vec3_t normal;
|
|
||||||
byte color[4];
|
|
||||||
} drawVert_t;
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
MST_BAD,
|
|
||||||
MST_PLANAR,
|
|
||||||
MST_PATCH,
|
|
||||||
MST_TRIANGLE_SOUP,
|
|
||||||
MST_FLARE
|
|
||||||
} mapSurfaceType_t;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int shaderNum;
|
|
||||||
int fogNum;
|
|
||||||
int surfaceType;
|
|
||||||
|
|
||||||
int firstVert;
|
|
||||||
int numVerts;
|
|
||||||
|
|
||||||
int firstIndex;
|
|
||||||
int numIndexes;
|
|
||||||
|
|
||||||
int lightmapNum;
|
|
||||||
int lightmapX, lightmapY;
|
|
||||||
int lightmapWidth, lightmapHeight;
|
|
||||||
|
|
||||||
vec3_t lightmapOrigin;
|
|
||||||
vec3_t lightmapVecs[3]; // for patches, [0] and [1] are lodbounds
|
|
||||||
|
|
||||||
int patchWidth;
|
|
||||||
int patchHeight;
|
|
||||||
} dsurface_t;
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
Loading…
Reference in New Issue
Block a user