home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / quake_src / d_edge.i < prev    next >
Encoding:
Text File  |  2000-06-17  |  70.6 KB  |  5,029 lines

  1. #line 1 "Develop:CC/Projects/Games/Quake/d_edge.c"
  2. #line 1 "Develop:CC/Projects/Games/Quake/quakedef.h"
  3.  
  4. #line 20 "Develop:CC/Projects/Games/Quake/quakedef.h"
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26. #line 1 "vincludewos:math.h"
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34. double sin(double);
  35. double cos(double);
  36. double tan(double);
  37. double sinh(double);
  38. double cosh(double);
  39. double tanh(double);
  40. double asin(double);
  41. double acos(double);
  42. double atan(double);
  43. double exp(double);
  44. double log(double);
  45. double log10(double);
  46. double pow(double,double);
  47. double sqrt(double);
  48. double ceil(double);
  49. double floor(double);
  50. double fabs(__reg("f1") double) = "\tfabs\tf1,f1";
  51. double atan2(double,double);
  52. double ldexp(double,int);
  53. double frexp(double,int *);
  54. double modf(double,double *);
  55. double fmod(double,double);
  56.  
  57.  
  58. #line 42 "Develop:CC/Projects/Games/Quake/quakedef.h"
  59. #line 1 "vincludewos:string.h"
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. typedef unsigned long size_t;
  68.  
  69.  
  70.  
  71.  
  72.  
  73. void *memcpy(void *s1,const void *s2,size_t n);
  74. void *memmove(void *,const void *,size_t);
  75. void *memset(void *,int,size_t);
  76. int memcmp(const void *,const void *,size_t);
  77. void *memchr(const void *,int,size_t);
  78. char *strcat(char *,const char *);
  79. char *strncat(char *,const char *,size_t);
  80. char *strchr(const char *,int);
  81. size_t strcspn(const char *,const char *);
  82. char *strpbrk(const char *,const char *);
  83. char *strrchr(const char *,int);
  84. size_t strspn(const char *,const char *);
  85. char *strstr(const char *,const char *);
  86. char *strtok(char *,const char *);
  87. char *strerror(int);
  88.  
  89.  
  90. size_t strlen(__reg("r3") const char *) =
  91.                 "\tsubi\tr4,r3,1\n"
  92.                 "#barrier\n"
  93.                 "\tlbzu\t0,1(r4)\n"
  94.                 "\tcmpwi\tr0,0\n"
  95.                 "\tbne\t$-8\n"
  96.                 "\tsub\tr3,r4,r3";
  97. char *strcpy(__reg("r3") char *, __reg("r4") const char *) =
  98.                 "\tsubi\tr5,r3,1\n"
  99.                 "\tsubi\tr4,r4,1\n"
  100.                 "#barrier\n"
  101.                 "\tlbzu\t0,1(r4)\n"
  102.                 "\tstbu\t0,1(r5)\n"
  103.                 "\tcmpwi\tr0,0\n"
  104.                 "\tbne\t$-12";
  105. char *strncpy(__reg("r3") char *, __reg("r4") const char *,
  106.               __reg("r5") size_t) =
  107.                 "\tcmpwi\tr5,0\n"
  108.                 "\tbeq\t$+36\n"
  109.                 "\tmtctr\tr5\n"
  110.                 "\tsubi\tr5,r3,1\n"
  111.                 "#barrier\n"
  112.                 "\tlbz\tr0,0(r4)\n"
  113.                 "\tstbu\tr0,1(r5)\n"
  114.                 "\tcmpwi\tr0,0\n"
  115.                 "\tbeq\t$+8\n"
  116.                 "\taddi\tr4,r4,1\n"
  117.                 "\tbdnz\t$-20";
  118. int strcmp(__reg("r3") const char *, __reg("r4") const char *) =
  119.                 "\tsubi\tr5,r3,1\n"
  120.                 "\tsubi\tr4,r4,1\n"
  121.                 "#barrier\n"
  122.                 "\tlbzu\tr3,1(r5)\n"
  123.                 "\tlbzu\tr6,1(r4)\n"
  124.                 "\tsub.\tr3,r3,r6\n"
  125.                 "\tbne\t$+12\n"
  126.                 "\tcmpwi\tr6,0\n"
  127.                 "\tbne\t$-20";
  128. int strncmp(__reg("r3") const char *, __reg("r4") const char *,
  129.             __reg("r5") size_t) =
  130.                 "\tsubi\tr6,r3,1\n"
  131.                 "\tli\tr3,0\n"
  132.                 "\tcmpwi\tr5,0\n"
  133.                 "\tbeq\t$+36\n"
  134.                 "\tsubi\tr4,r4,1\n"
  135.                 "\tmtctr\tr5\n"
  136.                 "#barrier\n"
  137.                 "\tlbzu\tr3,1(r6)\n"
  138.                 "\tlbzu\tr5,1(r4)\n"
  139.                 "\tsub.\tr3,r3,r5\n"
  140.                 "\tbne\t$+12\n"
  141.                 "\tcmpwi\tr5,0\n"
  142.                 "\tbdnzf\t2,$-20";
  143.  
  144. #line 43 "Develop:CC/Projects/Games/Quake/quakedef.h"
  145. #line 1 "vincludewos:stdarg.h"
  146.  
  147. #line 11 "vincludewos:stdarg.h"
  148.  
  149.  
  150.  
  151.  
  152. typedef unsigned char *va_list;
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159. #line 44 "Develop:CC/Projects/Games/Quake/quakedef.h"
  160. #line 1 "vincludewos:stdio.h"
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192. typedef struct _iobuf
  193. {
  194.     char *filehandle;
  195.     char *pointer;
  196.     char *base;
  197.     struct _iobuf *next;
  198.     struct _iobuf *prev;
  199.     int count;
  200.     int flags;
  201.     int bufsize;
  202. } FILE;
  203.  
  204.  
  205. extern FILE *stdin, *stdout, *stderr;
  206.  
  207. char *_open(char *,const char *,long);
  208. long _read(char *,void *,long),_write(char *,void *,long),_seek(char *,long,int);
  209. int _close(char *),_fillbuf(FILE *),_putbuf(int,FILE *),_flushbuf(FILE *);
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223. typedef long fpos_t;
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233. FILE *fopen(const char *,const char *);
  234. FILE *freopen(const char *,const char *,FILE *);
  235. int fflush(FILE *);
  236. int fclose(FILE *);
  237. int rename(const char *,const char *);
  238. int remove(const char *);
  239. FILE *tmpfile(void);
  240. char *tmpnam(char *);
  241. int setvbuf(FILE *,char *,int,size_t);
  242. void setbuf(FILE *,char *);
  243. int fprintf(FILE *, const char *, ...);
  244. int printf(const char *, ...);
  245. int sprintf(char *, const char *,...);
  246. int __v0fprintf(FILE *, const char *);
  247. int __v0printf(const char *);
  248. int __v0sprintf(char *, const char *);
  249. int __v2fprintf(FILE *, const char *,...);
  250. int __v2printf(const char *,...);
  251. int __v2sprintf(char *, const char *,...);
  252. int vprintf(const char *,va_list);
  253. int vfprintf(FILE *,const char *,va_list);
  254. int vsprintf(char *,const char *,va_list);
  255. int fscanf(FILE *, const char *, ...);
  256. int scanf(const char *, ...);
  257. int sscanf(const char *, const char *, ...);
  258. int __v2fscanf(FILE *, const char *,...);
  259. int __v2scanf(const char *,...);
  260. int __v2sscanf(const char *, const char *,...);
  261. int vscanf(const char *,va_list);
  262. int vfscanf(FILE *,const char *,va_list);
  263. int vsscanf(const char *,const char *,va_list);
  264. char *fgets(char *, int, FILE *);
  265. int fputs(const char *, FILE *);
  266. char *gets(char *);
  267. int puts(const char *);
  268. int ungetc(int,FILE *);
  269. size_t fread(void *,size_t,size_t,FILE *);
  270. size_t fwrite(void *,size_t,size_t,FILE *);
  271. int fseek(FILE *,long,int);
  272. void rewind(FILE *);
  273. long ftell(FILE *);
  274. int fgetpos(FILE *,fpos_t *);
  275. int fsetpos(FILE *,const fpos_t *);
  276. void perror(const char *);
  277. int fgetc(FILE *);
  278. int fputc(int,FILE *);
  279. int getchar(void);
  280. int putchar(int);
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298. #pragma printflike printf
  299. #pragma printflike fprintf
  300. #pragma printflike sprintf
  301. #pragma scanflike scanf
  302. #pragma scanflike fscanf
  303. #pragma scanflike sscanf
  304.  
  305.  
  306.  
  307. #line 45 "Develop:CC/Projects/Games/Quake/quakedef.h"
  308. #line 1 "vincludewos:stdlib.h"
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321. typedef char wchar_t;
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. void exit(int);
  339. void *malloc(size_t);
  340. void *calloc(size_t,size_t);
  341. void *realloc(void *,size_t);
  342. void free(void *);
  343. int system(const char *);
  344. int rand(void);
  345. void srand(unsigned int);
  346. double atof(const char *);
  347. int atoi(const char *);
  348. long atol(const char *);
  349. double strtod(const char *,char **);
  350. long strtol(const char *,char **,int);
  351. unsigned long strtoul(const char *,char **,int);
  352. void abort(void);
  353. int atexit(void (*)(void));
  354. char *getenv(const char *);
  355. void *bsearch(const void *,const void *,size_t,size_t,int (*)(const void *,const void *));
  356. void qsort(void *,size_t,size_t,int (*)(const void *,const void *));
  357.  
  358.  
  359. int abs(__reg("r3") int) =
  360.                 "\tcmpwi\tr3,0\n"
  361.                 "\tbge\t$+8\n"
  362.                 "\tneg\tr3,r3\n"
  363.                 "#barrier";
  364. long labs(__reg("r3") long) =
  365.                 "\tcmpwi\tr3,0\n"
  366.                 "\tbge\t$+8\n"
  367.                 "\tneg\tr3,r3\n"
  368.                 "#barrier";
  369.  
  370. typedef struct {
  371.     int quot,rem;
  372. } div_t;
  373.  
  374. typedef struct {
  375.     long quot,rem;
  376. } ldiv_t;
  377.  
  378. div_t div(int,int);
  379. ldiv_t ldiv(long,long);
  380.  
  381. union _mheader {
  382.     struct{
  383.         union _mheader *ptr;
  384.         size_t size;
  385.     } s;
  386.     long align;
  387. };
  388.  
  389. extern size_t _nalloc;
  390.  
  391.  
  392.  
  393.  
  394.  
  395. struct __exitfuncs{
  396.     struct __exitfuncs *next;
  397.     void (*func)(void);
  398. };
  399.  
  400.  
  401.  
  402. #line 46 "Develop:CC/Projects/Games/Quake/quakedef.h"
  403. #line 1 "vincludewos:setjmp.h"
  404.  
  405.  
  406.  
  407.  
  408.  
  409. typedef int jmp_buf[24];
  410.  
  411. int setjmp (jmp_buf);
  412. void longjmp (jmp_buf, int);
  413.  
  414.  
  415.  
  416. #line 47 "Develop:CC/Projects/Games/Quake/quakedef.h"
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582. #line 1 "Develop:CC/Projects/Games/Quake/common.h"
  583.  
  584. #line 20 "Develop:CC/Projects/Games/Quake/common.h"
  585.  
  586.  
  587.  
  588. typedef unsigned char     byte;
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595. typedef enum {false, true}  qboolean;
  596.  
  597.  
  598.  
  599. typedef struct sizebuf_s
  600. {
  601.   qboolean  allowoverflow;
  602.   qboolean  overflowed;
  603.   byte  *data;
  604.   int   maxsize;
  605.   int   cursize;
  606. } sizebuf_t;
  607.  
  608. void SZ_Alloc (sizebuf_t *buf, int startsize);
  609. void SZ_Free (sizebuf_t *buf);
  610. void SZ_Clear (sizebuf_t *buf);
  611. void *SZ_GetSpace (sizebuf_t *buf, int length);
  612. void SZ_Write (sizebuf_t *buf, void *data, int length);
  613. void SZ_Print (sizebuf_t *buf, char *data);
  614.  
  615.  
  616.  
  617. typedef struct link_s
  618. {
  619.   struct link_s *prev, *next;
  620. } link_t;
  621.  
  622.  
  623. void ClearLink (link_t *l);
  624. void RemoveLink (link_t *l);
  625. void InsertLinkBefore (link_t *l, link_t *before);
  626. void InsertLinkAfter (link_t *l, link_t *after);
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653. extern  qboolean    bigendien;
  654.  
  655. extern  short (*BigShort) (short l);
  656. extern  short (*LittleShort) (short l);
  657. extern  int (*BigLong) (int l);
  658. extern  int (*LittleLong) (int l);
  659. extern  float (*BigFloat) (float l);
  660. extern  float (*LittleFloat) (float l);
  661.  
  662.  
  663.  
  664. void MSG_WriteChar (sizebuf_t *sb, int c);
  665. void MSG_WriteByte (sizebuf_t *sb, int c);
  666. void MSG_WriteShort (sizebuf_t *sb, int c);
  667. void MSG_WriteLong (sizebuf_t *sb, int c);
  668. void MSG_WriteFloat (sizebuf_t *sb, float f);
  669. void MSG_WriteString (sizebuf_t *sb, char *s);
  670. void MSG_WriteCoord (sizebuf_t *sb, float f);
  671. void MSG_WriteAngle (sizebuf_t *sb, float f);
  672.  
  673. extern  int     msg_readcount;
  674. extern  qboolean  msg_badread;
  675.  
  676. void MSG_BeginReading (void);
  677. int MSG_ReadChar (void);
  678. int MSG_ReadByte (void);
  679. int MSG_ReadShort (void);
  680. int MSG_ReadLong (void);
  681. float MSG_ReadFloat (void);
  682. char *MSG_ReadString (void);
  683.  
  684. float MSG_ReadCoord (void);
  685. float MSG_ReadAngle (void);
  686.  
  687.  
  688.  
  689. void Q_memset (void *dest, int fill, int count);
  690. void Q_memcpy (void *dest, void *src, int count);
  691. int Q_memcmp (void *m1, void *m2, int count);
  692. void Q_strcpy (char *dest, char *src);
  693. void Q_strncpy (char *dest, char *src, int count);
  694. int Q_strlen (char *str);
  695. char *Q_strrchr (char *s, char c);
  696. void Q_strcat (char *dest, char *src);
  697. int Q_strcmp (char *s1, char *s2);
  698. int Q_strncmp (char *s1, char *s2, int count);
  699. int Q_strcasecmp (char *s1, char *s2);
  700. int Q_strncasecmp (char *s1, char *s2, int n);
  701. int Q_atoi (char *str);
  702. float Q_atof (char *str);
  703.  
  704.  
  705.  
  706. extern  char    com_token[1024];
  707. extern  qboolean  com_eof;
  708.  
  709. char *COM_Parse (char *data);
  710.  
  711.  
  712. extern  int   com_argc;
  713. extern  char  **com_argv;
  714.  
  715. int COM_CheckParm (char *parm);
  716. void COM_Init (char *path);
  717. void COM_InitArgv (int argc, char **argv);
  718.  
  719. char *COM_SkipPath (char *pathname);
  720. void COM_StripExtension (char *in, char *out);
  721. void COM_FileBase (char *in, char *out);
  722. void COM_DefaultExtension (char *path, char *extension);
  723.  
  724. char  *va(char *format, ...);
  725.  
  726.  
  727.  
  728.  
  729.  
  730. extern int com_filesize;
  731. struct cache_user_s;
  732.  
  733. extern  char  com_gamedir[128];
  734.  
  735. void COM_WriteFile (char *filename, void *data, int len);
  736. int COM_OpenFile (char *filename, int *hndl);
  737. int COM_FOpenFile (char *filename, FILE **file);
  738. void COM_CloseFile (int h);
  739.  
  740. byte *COM_LoadStackFile (char *path, void *buffer, int bufsize);
  741. byte *COM_LoadTempFile (char *path);
  742. byte *COM_LoadHunkFile (char *path);
  743. void COM_LoadCacheFile (char *path, struct cache_user_s *cu);
  744.  
  745.  
  746. extern  struct cvar_s registered;
  747.  
  748. extern qboolean   standard_quake, rogue, hipnotic;
  749. #line 213 "Develop:CC/Projects/Games/Quake/quakedef.h"
  750. #line 1 "Develop:CC/Projects/Games/Quake/bspfile.h"
  751.  
  752. #line 20 "Develop:CC/Projects/Games/Quake/bspfile.h"
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792. typedef struct
  793. {
  794.   int   fileofs, filelen;
  795. } lump_t;
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815. typedef struct
  816. {
  817.   float   mins[3], maxs[3];
  818.   float   origin[3];
  819.   int     headnode[4];
  820.   int     visleafs;
  821.   int     firstface, numfaces;
  822. } dmodel_t;
  823.  
  824. typedef struct
  825. {
  826.   int     version;
  827.   lump_t    lumps[15];
  828. } dheader_t;
  829.  
  830. typedef struct
  831. {
  832.   int     nummiptex;
  833.   int     dataofs[4];
  834. } dmiptexlump_t;
  835.  
  836.  
  837. typedef struct miptex_s
  838. {
  839.   char    name[16];
  840.   unsigned  width, height;
  841.   unsigned  offsets[4];
  842. } miptex_t;
  843.  
  844.  
  845. typedef struct
  846. {
  847.   float point[3];
  848. } dvertex_t;
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861. typedef struct
  862. {
  863.   float normal[3];
  864.   float dist;
  865.   int   type;
  866. } dplane_t;
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888. typedef struct
  889. {
  890.   int     planenum;
  891.   short   children[2];
  892.   short   mins[3];
  893.   short   maxs[3];
  894.   unsigned short  firstface;
  895.   unsigned short  numfaces;
  896. } dnode_t;
  897.  
  898. typedef struct
  899. {
  900.   int     planenum;
  901.   short   children[2];
  902. } dclipnode_t;
  903.  
  904.  
  905. typedef struct texinfo_s
  906. {
  907.   float   vecs[2][4];
  908.   int     miptex;
  909.   int     flags;
  910. } texinfo_t;
  911.  
  912.  
  913.  
  914.  
  915. typedef struct
  916. {
  917.   unsigned short  v[2];
  918. } dedge_t;
  919.  
  920.  
  921. typedef struct
  922. {
  923.   short   planenum;
  924.   short   side;
  925.  
  926.   int     firstedge;
  927.   short   numedges;
  928.   short   texinfo;
  929.  
  930.  
  931.   byte    styles[4];
  932.   int     lightofs;
  933. } dface_t;
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946. typedef struct
  947. {
  948.   int     contents;
  949.   int     visofs;
  950.  
  951.   short   mins[3];
  952.   short   maxs[3];
  953.  
  954.   unsigned short    firstmarksurface;
  955.   unsigned short    nummarksurfaces;
  956.  
  957.   byte    ambient_level[4];
  958. } dleaf_t;
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058. #line 214 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1059. #line 1 "Develop:CC/Projects/Games/Quake/vid.h"
  1060.  
  1061. #line 20 "Develop:CC/Projects/Games/Quake/vid.h"
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068. typedef byte pixel_t;
  1069.  
  1070. typedef struct vrect_s
  1071. {
  1072.   int       x,y,width,height;
  1073.   struct vrect_s  *pnext;
  1074. } vrect_t;
  1075.  
  1076. typedef struct
  1077. {
  1078.   pixel_t     *buffer;
  1079.   pixel_t     *colormap;
  1080.   unsigned short  *colormap16;
  1081.   int       fullbright;
  1082.   unsigned    rowbytes;
  1083.   unsigned    width;
  1084.   unsigned    height;
  1085.   float     aspect;
  1086.   int       numpages;
  1087.   int       recalc_refdef;
  1088.   pixel_t     *conbuffer;
  1089.   int       conrowbytes;
  1090.   unsigned    conwidth;
  1091.   unsigned    conheight;
  1092.   int       maxwarpwidth;
  1093.   int       maxwarpheight;
  1094.   pixel_t     *direct;
  1095.  
  1096. } viddef_t;
  1097.  
  1098. extern  viddef_t  vid;
  1099. extern  unsigned short  d_8to16table[256];
  1100. extern  unsigned  d_8to24table[256];
  1101. extern void (*vid_menudrawfn)(void);
  1102. extern void (*vid_menukeyfn)(int key);
  1103.  
  1104. void  VID_SetPalette (unsigned char *palette);
  1105.  
  1106.  
  1107. void  VID_ShiftPalette (unsigned char *palette);
  1108.  
  1109.  
  1110. void  VID_Init (unsigned char *palette);
  1111.  
  1112.  
  1113.  
  1114.  
  1115. void  VID_Shutdown (void);
  1116.  
  1117.  
  1118. void  VID_Update (vrect_t *rects);
  1119.  
  1120.  
  1121. int VID_SetMode (int modenum, unsigned char *palette);
  1122.  
  1123.  
  1124.  
  1125. void VID_HandlePause (qboolean pause);
  1126.  
  1127.  
  1128. #line 215 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1129. #line 1 "Develop:CC/Projects/Games/Quake/sys.h"
  1130.  
  1131. #line 20 "Develop:CC/Projects/Games/Quake/sys.h"
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141. int Sys_FileOpenRead (char *path, int *hndl);
  1142.  
  1143. int Sys_FileOpenWrite (char *path);
  1144. void Sys_FileClose (int handle);
  1145. void Sys_FileSeek (int handle, int position);
  1146. int Sys_FileRead (int handle, void *dest, int count);
  1147. int Sys_FileWrite (int handle, void *data, int count);
  1148. int Sys_FileTime (char *path);
  1149. void Sys_mkdir (char *path);
  1150.  
  1151.  
  1152.  
  1153.  
  1154. void Sys_MakeCodeWriteable (unsigned long startaddr, unsigned long length);
  1155.  
  1156.  
  1157.  
  1158.  
  1159. void Sys_DebugLog(char *file, char *fmt, ...);
  1160.  
  1161. void Sys_Error (char *error, ...);
  1162.  
  1163.  
  1164. void Sys_Printf (char *fmt, ...);
  1165.  
  1166.  
  1167. void Sys_Quit (void);
  1168.  
  1169. double Sys_FloatTime (void);
  1170.  
  1171. char *Sys_ConsoleInput (void);
  1172.  
  1173. void Sys_Sleep (void);
  1174.  
  1175.  
  1176.  
  1177. void Sys_SendKeyEvents (void);
  1178.  
  1179.  
  1180. void Sys_LowFPPrecision (void);
  1181. void Sys_HighFPPrecision (void);
  1182. void Sys_SetFPCW (void);
  1183.  
  1184. #line 216 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1185. #line 1 "Develop:CC/Projects/Games/Quake/zone.h"
  1186.  
  1187. #line 20 "Develop:CC/Projects/Games/Quake/zone.h"
  1188.  
  1189. #line 85 "Develop:CC/Projects/Games/Quake/zone.h"
  1190.  
  1191. void Memory_Init (void *buf, int size);
  1192.  
  1193. void Z_Free (void *ptr);
  1194. void *Z_Malloc (int size);
  1195. void *Z_TagMalloc (int size, int tag);
  1196.  
  1197. void Z_DumpHeap (void);
  1198. void Z_CheckHeap (void);
  1199. int Z_FreeMemory (void);
  1200.  
  1201. void *Hunk_Alloc (int size);
  1202. void *Hunk_AllocName (int size, char *name);
  1203.  
  1204. void *Hunk_HighAllocName (int size, char *name);
  1205.  
  1206. int Hunk_LowMark (void);
  1207. void Hunk_FreeToLowMark (int mark);
  1208.  
  1209. int Hunk_HighMark (void);
  1210. void Hunk_FreeToHighMark (int mark);
  1211.  
  1212. void *Hunk_TempAlloc (int size);
  1213.  
  1214. void Hunk_Check (void);
  1215.  
  1216. typedef struct cache_user_s
  1217. {
  1218.   void  *data;
  1219. } cache_user_t;
  1220.  
  1221. void Cache_Flush (void);
  1222.  
  1223. void *Cache_Check (cache_user_t *c);
  1224.  
  1225.  
  1226.  
  1227. void Cache_Free (cache_user_t *c);
  1228.  
  1229. void *Cache_Alloc (cache_user_t *c, int size, char *name);
  1230.  
  1231.  
  1232.  
  1233. void Cache_Report (void);
  1234.  
  1235.  
  1236.  
  1237. #line 217 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1238. #line 1 "Develop:CC/Projects/Games/Quake/mathlib.h"
  1239.  
  1240. #line 20 "Develop:CC/Projects/Games/Quake/mathlib.h"
  1241.  
  1242.  
  1243. typedef float vec_t;
  1244. typedef vec_t vec3_t[3];
  1245. typedef vec_t vec5_t[5];
  1246.  
  1247. typedef int fixed4_t;
  1248. typedef int fixed8_t;
  1249. typedef int fixed16_t;
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255. struct mplane_s;
  1256.  
  1257. extern vec3_t vec3_origin;
  1258. extern  int nanmask;
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267. void VectorMA (vec3_t veca, float scale, vec3_t vecb, vec3_t vecc);
  1268.  
  1269. vec_t _DotProduct (vec3_t v1, vec3_t v2);
  1270. void _VectorSubtract (vec3_t veca, vec3_t vecb, vec3_t out);
  1271. void _VectorAdd (vec3_t veca, vec3_t vecb, vec3_t out);
  1272. void _VectorCopy (vec3_t in, vec3_t out);
  1273.  
  1274. int VectorCompare (vec3_t v1, vec3_t v2);
  1275. vec_t Length (vec3_t v);
  1276. void CrossProduct (vec3_t v1, vec3_t v2, vec3_t cross);
  1277. float VectorNormalize (vec3_t v);
  1278. void VectorInverse (vec3_t v);
  1279. void VectorScale (vec3_t in, vec_t scale, vec3_t out);
  1280. int Q_log2(int val);
  1281.  
  1282. void R_ConcatRotations (float in1[3][3], float in2[3][3], float out[3][3]);
  1283. void R_ConcatTransforms (float in1[3][4], float in2[3][4], float out[3][4]);
  1284.  
  1285. void FloorDivMod (double numer, double denom, int *quotient,
  1286.     int *rem);
  1287. fixed16_t Invert24To16(fixed16_t val);
  1288. int GreatestCommonDivisor (int i1, int i2);
  1289.  
  1290. void AngleVectors (vec3_t angles, vec3_t forward, vec3_t right, vec3_t up);
  1291. int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct mplane_s *plane);
  1292. float anglemod(float a);
  1293.  
  1294.  
  1295.  
  1296.  
  1297. #line 90 "Develop:CC/Projects/Games/Quake/mathlib.h"
  1298. #line 218 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1299.  
  1300. typedef struct
  1301. {
  1302.   vec3_t  origin;
  1303.   vec3_t  angles;
  1304.   int   modelindex;
  1305.   int   frame;
  1306.   int   colormap;
  1307.   int   skin;
  1308.   int   effects;
  1309. } entity_state_t;
  1310.  
  1311.  
  1312. #line 1 "Develop:CC/Projects/Games/Quake/wad.h"
  1313.  
  1314. #line 20 "Develop:CC/Projects/Games/Quake/wad.h"
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334. typedef struct
  1335. {
  1336.   int     width, height;
  1337.   byte    data[4];
  1338. } qpic_t;
  1339.  
  1340.  
  1341.  
  1342. typedef struct
  1343. {
  1344.   char    identification[4];
  1345.   int     numlumps;
  1346.   int     infotableofs;
  1347. } wadinfo_t;
  1348.  
  1349. typedef struct
  1350. {
  1351.   int     filepos;
  1352.   int     disksize;
  1353.   int     size;
  1354.   char    type;
  1355.   char    compression;
  1356.   char    pad1, pad2;
  1357.   char    name[16];
  1358. } lumpinfo_t;
  1359.  
  1360. extern  int     wad_numlumps;
  1361. extern  lumpinfo_t  *wad_lumps;
  1362. extern  byte    *wad_base;
  1363.  
  1364. void  W_LoadWadFile (char *filename);
  1365. void  W_CleanupName (char *in, char *out);
  1366. lumpinfo_t  *W_GetLumpinfo (char *name);
  1367. void  *W_GetLumpName (char *name);
  1368. void  *W_GetLumpNum (int num);
  1369.  
  1370. void SwapPic (qpic_t *pic);
  1371. #line 232 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1372. #line 1 "Develop:CC/Projects/Games/Quake/draw.h"
  1373.  
  1374. #line 20 "Develop:CC/Projects/Games/Quake/draw.h"
  1375.  
  1376.  
  1377.  
  1378.  
  1379. extern  qpic_t    *draw_disc;
  1380.  
  1381. void Draw_Init (void);
  1382. void Draw_Character (int x, int y, int num);
  1383. void Draw_DebugChar (char num);
  1384. void Draw_Pic (int x, int y, qpic_t *pic);
  1385. void Draw_TransPic (int x, int y, qpic_t *pic);
  1386. void Draw_TransPicTranslate (int x, int y, qpic_t *pic, byte *translation);
  1387. void Draw_ConsoleBackground (int lines);
  1388. void Draw_BeginDisc (void);
  1389. void Draw_EndDisc (void);
  1390. void Draw_TileClear (int x, int y, int w, int h);
  1391. void Draw_Fill (int x, int y, int w, int h, int c);
  1392. void Draw_FadeScreen (void);
  1393. void Draw_String (int x, int y, char *str);
  1394. qpic_t *Draw_PicFromWad (char *name);
  1395. qpic_t *Draw_CachePic (char *path);
  1396. #line 233 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1397. #line 1 "Develop:CC/Projects/Games/Quake/cvar.h"
  1398.  
  1399. #line 20 "Develop:CC/Projects/Games/Quake/cvar.h"
  1400.  
  1401.  
  1402.  
  1403. #line 55 "Develop:CC/Projects/Games/Quake/cvar.h"
  1404.  
  1405. typedef struct cvar_s
  1406. {
  1407.   char  *name;
  1408.   char  *string;
  1409.   qboolean archive;
  1410.   qboolean server;
  1411.   float value;
  1412.   struct cvar_s *next;
  1413. } cvar_t;
  1414.  
  1415. void  Cvar_RegisterVariable (cvar_t *variable);
  1416.  
  1417.  
  1418.  
  1419. void  Cvar_Set (char *var_name, char *value);
  1420.  
  1421.  
  1422. void  Cvar_SetValue (char *var_name, float value);
  1423.  
  1424.  
  1425. float Cvar_VariableValue (char *var_name);
  1426.  
  1427.  
  1428. char  *Cvar_VariableString (char *var_name);
  1429.  
  1430.  
  1431. char  *Cvar_CompleteVariable (char *partial);
  1432.  
  1433.  
  1434.  
  1435. qboolean Cvar_Command (void);
  1436.  
  1437.  
  1438.  
  1439.  
  1440. void  Cvar_WriteVariables (FILE *f);
  1441.  
  1442.  
  1443.  
  1444. cvar_t *Cvar_FindVar (char *var_name);
  1445.  
  1446. extern cvar_t *cvar_vars;
  1447. #line 234 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1448. #line 1 "Develop:CC/Projects/Games/Quake/screen.h"
  1449.  
  1450. #line 20 "Develop:CC/Projects/Games/Quake/screen.h"
  1451.  
  1452.  
  1453. void SCR_Init (void);
  1454.  
  1455. void SCR_UpdateScreen (void);
  1456.  
  1457.  
  1458. void SCR_SizeUp (void);
  1459. void SCR_SizeDown (void);
  1460. void SCR_BringDownConsole (void);
  1461. void SCR_CenterPrint (char *str);
  1462.  
  1463. void SCR_BeginLoadingPlaque (void);
  1464. void SCR_EndLoadingPlaque (void);
  1465.  
  1466. int SCR_ModalMessage (char *text);
  1467.  
  1468. extern  float   scr_con_current;
  1469. extern  float   scr_conlines;
  1470.  
  1471. extern  int     scr_fullupdate;
  1472. extern  int     sb_lines;
  1473.  
  1474. extern  int     clearnotify;
  1475. extern  qboolean  scr_disabled_for_loading;
  1476. extern  qboolean  scr_skipupdate;
  1477.  
  1478. extern  cvar_t    scr_viewsize;
  1479.  
  1480. extern cvar_t scr_viewsize;
  1481.  
  1482.  
  1483. extern  int     scr_copytop;
  1484. extern  int     scr_copyeverything;
  1485.  
  1486. extern qboolean   block_drawing;
  1487.  
  1488. void SCR_UpdateWholeScreen (void);
  1489. #line 235 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1490. #line 1 "Develop:CC/Projects/Games/Quake/net.h"
  1491.  
  1492. #line 20 "Develop:CC/Projects/Games/Quake/net.h"
  1493.  
  1494.  
  1495. struct qsockaddr
  1496. {
  1497.   short sa_family;
  1498.   unsigned char sa_data[14];
  1499. };
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592. typedef struct qsocket_s
  1593. {
  1594.   struct qsocket_s  *next;
  1595.   double      connecttime;
  1596.   double      lastMessageTime;
  1597.   double      lastSendTime;
  1598.  
  1599.   qboolean    disconnected;
  1600.   qboolean    canSend;
  1601.   qboolean    sendNext;
  1602.  
  1603.   int       driver;
  1604.   int       landriver;
  1605.   int       socket;
  1606.   void      *driverdata;
  1607.  
  1608.   unsigned int  ackSequence;
  1609.   unsigned int  sendSequence;
  1610.   unsigned int  unreliableSendSequence;
  1611.   int       sendMessageLength;
  1612.   byte      sendMessage [8192];
  1613.  
  1614.   unsigned int  receiveSequence;
  1615.   unsigned int  unreliableReceiveSequence;
  1616.   int       receiveMessageLength;
  1617.   byte      receiveMessage [8192];
  1618.  
  1619.   struct qsockaddr  addr;
  1620.   char        address[64];
  1621.  
  1622. } qsocket_t;
  1623.  
  1624. extern qsocket_t  *net_activeSockets;
  1625. extern qsocket_t  *net_freeSockets;
  1626. extern int      net_numsockets;
  1627.  
  1628. typedef struct
  1629. {
  1630.   char    *name;
  1631.   qboolean  initialized;
  1632.   int     controlSock;
  1633.   int     (*Init) (void);
  1634.   void    (*Shutdown) (void);
  1635.   void    (*Listen) (qboolean state);
  1636.   int     (*OpenSocket) (int port);
  1637.   int     (*CloseSocket) (int socket);
  1638.   int     (*Connect) (int socket, struct qsockaddr *addr);
  1639.   int     (*CheckNewConnections) (void);
  1640.   int     (*Read) (int socket, byte *buf, int len, struct qsockaddr *addr);
  1641.   int     (*Write) (int socket, byte *buf, int len, struct qsockaddr *addr);
  1642.   int     (*Broadcast) (int socket, byte *buf, int len);
  1643.   char *    (*AddrToString) (struct qsockaddr *addr);
  1644.   int     (*StringToAddr) (char *string, struct qsockaddr *addr);
  1645.   int     (*GetSocketAddr) (int socket, struct qsockaddr *addr);
  1646.   int     (*GetNameFromAddr) (struct qsockaddr *addr, char *name);
  1647.   int     (*GetAddrFromName) (char *name, struct qsockaddr *addr);
  1648.   int     (*AddrCompare) (struct qsockaddr *addr1, struct qsockaddr *addr2);
  1649.   int     (*GetSocketPort) (struct qsockaddr *addr);
  1650.   int     (*SetSocketPort) (struct qsockaddr *addr, int port);
  1651. } net_landriver_t;
  1652.  
  1653.  
  1654. extern int        net_numlandrivers;
  1655. extern net_landriver_t  net_landrivers[8];
  1656.  
  1657. typedef struct
  1658. {
  1659.   char    *name;
  1660.   qboolean  initialized;
  1661.   int     (*Init) (void);
  1662.   void    (*Listen) (qboolean state);
  1663.   void    (*SearchForHosts) (qboolean xmit);
  1664.   qsocket_t *(*Connect) (char *host);
  1665.   qsocket_t   *(*CheckNewConnections) (void);
  1666.   int     (*QGetMessage) (qsocket_t *sock);
  1667.   int     (*QSendMessage) (qsocket_t *sock, sizebuf_t *data);
  1668.   int     (*SendUnreliableMessage) (qsocket_t *sock, sizebuf_t *data);
  1669.   qboolean  (*CanSendMessage) (qsocket_t *sock);
  1670.   qboolean  (*CanSendUnreliableMessage) (qsocket_t *sock);
  1671.   void    (*Close) (qsocket_t *sock);
  1672.   void    (*Shutdown) (void);
  1673.   int     controlSock;
  1674. } net_driver_t;
  1675.  
  1676. extern int      net_numdrivers;
  1677. extern net_driver_t net_drivers[8];
  1678.  
  1679. extern int      DEFAULTnet_hostport;
  1680. extern int      net_hostport;
  1681.  
  1682. extern int net_driverlevel;
  1683. extern cvar_t   hostname;
  1684. extern char     playername[];
  1685. extern int      playercolor;
  1686.  
  1687. extern int    messagesSent;
  1688. extern int    messagesReceived;
  1689. extern int    unreliableMessagesSent;
  1690. extern int    unreliableMessagesReceived;
  1691.  
  1692. qsocket_t *NET_NewQSocket (void);
  1693. void NET_FreeQSocket(qsocket_t *);
  1694. double SetNetTime(void);
  1695.  
  1696.  
  1697.  
  1698.  
  1699. typedef struct
  1700. {
  1701.   char  name[16];
  1702.   char  map[16];
  1703.   char  cname[32];
  1704.   int   users;
  1705.   int   maxusers;
  1706.   int   driver;
  1707.   int   ldriver;
  1708.   struct qsockaddr addr;
  1709. } hostcache_t;
  1710.  
  1711. extern int hostCacheCount;
  1712. extern hostcache_t hostcache[8];
  1713.  
  1714.  
  1715.  
  1716. extern unsigned long htonl (unsigned long hostlong);
  1717.  
  1718.  
  1719. extern unsigned short htons (unsigned short hostshort);
  1720.  
  1721.  
  1722. extern unsigned long ntohl (unsigned long netlong);
  1723.  
  1724.  
  1725. extern unsigned short ntohs (unsigned short netshort);
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739. extern  double    net_time;
  1740. extern  sizebuf_t net_message;
  1741. extern  int     net_activeconnections;
  1742.  
  1743. void    NET_Init (void);
  1744. void    NET_Shutdown (void);
  1745.  
  1746. struct qsocket_s  *NET_CheckNewConnections (void);
  1747.  
  1748.  
  1749. struct qsocket_s  *NET_Connect (char *host);
  1750.  
  1751.  
  1752. qboolean NET_CanSendMessage (qsocket_t *sock);
  1753.  
  1754.  
  1755.  
  1756. int     NET_GetMessage (struct qsocket_s *sock);
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763. int     NET_SendMessage (struct qsocket_s *sock, sizebuf_t *data);
  1764. int     NET_SendUnreliableMessage (struct qsocket_s *sock, sizebuf_t *data);
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770. int     NET_SendToAll(sizebuf_t *data, int blocktime);
  1771.  
  1772.  
  1773.  
  1774. void    NET_Close (struct qsocket_s *sock);
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783. void NET_Poll(void);
  1784.  
  1785.  
  1786. typedef struct _PollProcedure
  1787. {
  1788.   struct _PollProcedure *next;
  1789.   double          nextTime;
  1790.   void          (*procedure)();
  1791.   void          *arg;
  1792. } PollProcedure;
  1793.  
  1794. void SchedulePollProcedure(PollProcedure *pp, double timeOffset);
  1795.  
  1796. extern  qboolean  serialAvailable;
  1797. extern  qboolean  ipxAvailable;
  1798. extern  qboolean  tcpipAvailable;
  1799. extern  char    my_ipx_address[64];
  1800. extern  char    my_tcpip_address[64];
  1801. extern void (*GetComPortConfig) (int portNumber, int *port, int *irq, int *baud, qboolean *useModem);
  1802. extern void (*SetComPortConfig) (int portNumber, int port, int irq, int baud, qboolean useModem);
  1803. extern void (*GetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup);
  1804. extern void (*SetModemConfig) (int portNumber, char *dialType, char *clear, char *init, char *hangup);
  1805.  
  1806. extern  qboolean  slistInProgress;
  1807. extern  qboolean  slistSilent;
  1808. extern  qboolean  slistLocal;
  1809.  
  1810. void NET_Slist_f (void);
  1811. #line 236 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1812. #line 1 "Develop:CC/Projects/Games/Quake/protocol.h"
  1813.  
  1814. #line 20 "Develop:CC/Projects/Games/Quake/protocol.h"
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963. #line 237 "Develop:CC/Projects/Games/Quake/quakedef.h"
  1964. #line 1 "Develop:CC/Projects/Games/Quake/cmd.h"
  1965.  
  1966. #line 20 "Develop:CC/Projects/Games/Quake/cmd.h"
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973. #line 36 "Develop:CC/Projects/Games/Quake/cmd.h"
  1974.  
  1975.  
  1976. void Cbuf_Init (void);
  1977.  
  1978.  
  1979. void Cbuf_AddText (char *text);
  1980.  
  1981.  
  1982.  
  1983. void Cbuf_InsertText (char *text);
  1984.  
  1985.  
  1986.  
  1987.  
  1988. void Cbuf_Execute (void);
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997. #line 68 "Develop:CC/Projects/Games/Quake/cmd.h"
  1998.  
  1999. typedef void (*xcommand_t) (void);
  2000.  
  2001. typedef enum
  2002. {
  2003.   src_client,
  2004.  
  2005.   src_command
  2006. } cmd_source_t;
  2007.  
  2008. extern  cmd_source_t  cmd_source;
  2009.  
  2010. void  Cmd_Init (void);
  2011.  
  2012. void  Cmd_AddCommand (char *cmd_name, xcommand_t function);
  2013.  
  2014.  
  2015.  
  2016.  
  2017. qboolean Cmd_Exists (char *cmd_name);
  2018.  
  2019.  
  2020. char  *Cmd_CompleteCommand (char *partial);
  2021.  
  2022.  
  2023.  
  2024. int   Cmd_Argc (void);
  2025. char  *Cmd_Argv (int arg);
  2026. char  *Cmd_Args (void);
  2027.  
  2028.  
  2029.  
  2030.  
  2031. int Cmd_CheckParm (char *parm);
  2032.  
  2033.  
  2034.  
  2035. void Cmd_TokenizeString (char *text);
  2036.  
  2037.  
  2038.  
  2039. void  Cmd_ExecuteString (char *text, cmd_source_t src);
  2040.  
  2041.  
  2042.  
  2043. void  Cmd_ForwardToServer (void);
  2044.  
  2045.  
  2046.  
  2047.  
  2048. void  Cmd_Print (char *text);
  2049.  
  2050.  
  2051.  
  2052. #line 238 "Develop:CC/Projects/Games/Quake/quakedef.h"
  2053. #line 1 "Develop:CC/Projects/Games/Quake/sbar.h"
  2054.  
  2055. #line 20 "Develop:CC/Projects/Games/Quake/sbar.h"
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062. extern  int     sb_lines;
  2063.  
  2064. void Sbar_Init (void);
  2065.  
  2066. void Sbar_Changed (void);
  2067.  
  2068.  
  2069. void Sbar_Draw (void);
  2070.  
  2071.  
  2072. void Sbar_IntermissionOverlay (void);
  2073.  
  2074.  
  2075. void Sbar_FinaleOverlay (void);
  2076. #line 239 "Develop:CC/Projects/Games/Quake/quakedef.h"
  2077. #line 1 "Develop:CC/Projects/Games/Quake/sound.h"
  2078.  
  2079. #line 20 "Develop:CC/Projects/Games/Quake/sound.h"
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089. typedef struct
  2090. {
  2091.   int left;
  2092.   int right;
  2093. } portable_samplepair_t;
  2094.  
  2095. typedef struct sfx_s
  2096. {
  2097.   char  name[64];
  2098.   cache_user_t  cache;
  2099. } sfx_t;
  2100.  
  2101.  
  2102. typedef struct
  2103. {
  2104.   int   length;
  2105.   int   loopstart;
  2106.   int   speed;
  2107.   int   width;
  2108.   int   stereo;
  2109.   byte  data[1];
  2110. } sfxcache_t;
  2111.  
  2112. typedef struct
  2113. {
  2114.   qboolean    gamealive;
  2115.   qboolean    soundalive;
  2116.   qboolean    splitbuffer;
  2117.   int       channels;
  2118.   int       samples;
  2119.   int       submission_chunk;
  2120.   int       samplepos;
  2121.   int       samplebits;
  2122.   int       speed;
  2123.   unsigned char *buffer;
  2124. } dma_t;
  2125.  
  2126.  
  2127. typedef struct
  2128. {
  2129.   sfx_t *sfx;
  2130.   int   leftvol;
  2131.   int   rightvol;
  2132.   int   end;
  2133.   int   pos;
  2134.   int   looping;
  2135.   int   entnum;
  2136.   int   entchannel;
  2137.   vec3_t  origin;
  2138.   vec_t dist_mult;
  2139.   int   master_vol;
  2140. } channel_t;
  2141.  
  2142. typedef struct
  2143. {
  2144.   int   rate;
  2145.   int   width;
  2146.   int   channels;
  2147.   int   loopstart;
  2148.   int   samples;
  2149.   int   dataofs;
  2150. } wavinfo_t;
  2151.  
  2152. void S_Init (void);
  2153. void S_Startup (void);
  2154. void S_Shutdown (void);
  2155. void S_StartSound (int entnum, int entchannel, sfx_t *sfx, vec3_t origin, float fvol,  float attenuation);
  2156. void S_StaticSound (sfx_t *sfx, vec3_t origin, float vol, float attenuation);
  2157. void S_StopSound (int entnum, int entchannel);
  2158. void S_StopAllSounds(qboolean clear);
  2159. void S_ClearBuffer (void);
  2160. void S_Update (vec3_t origin, vec3_t v_forward, vec3_t v_right, vec3_t v_up);
  2161. void S_ExtraUpdate (void);
  2162.  
  2163. sfx_t *S_PrecacheSound (char *sample);
  2164. void S_TouchSound (char *sample);
  2165. void S_ClearPrecache (void);
  2166. void S_BeginPrecaching (void);
  2167. void S_EndPrecaching (void);
  2168. void S_PaintChannels(int endtime);
  2169. void S_InitPaintChannels (void);
  2170.  
  2171.  
  2172. channel_t *SND_PickChannel(int entnum, int entchannel);
  2173.  
  2174.  
  2175. void SND_Spatialize(channel_t *ch);
  2176.  
  2177.  
  2178. qboolean SNDDMA_Init(void);
  2179.  
  2180.  
  2181. int SNDDMA_GetDMAPos(void);
  2182.  
  2183.  
  2184. void SNDDMA_Shutdown(void);
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194. extern  channel_t   channels[128];
  2195.  
  2196.  
  2197.  
  2198.  
  2199. extern  int     total_channels;
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207. extern qboolean     fakedma;
  2208. extern int      fakedma_updates;
  2209. extern int    paintedtime;
  2210. extern vec3_t listener_origin;
  2211. extern vec3_t listener_forward;
  2212. extern vec3_t listener_right;
  2213. extern vec3_t listener_up;
  2214. extern volatile dma_t *shm;
  2215. extern volatile dma_t sn;
  2216. extern vec_t sound_nominal_clip_dist;
  2217.  
  2218. extern  cvar_t loadas8bit;
  2219. extern  cvar_t bgmvolume;
  2220. extern  cvar_t volume;
  2221.  
  2222. extern qboolean snd_initialized;
  2223.  
  2224. extern int    snd_blocked;
  2225.  
  2226. void S_LocalSound (char *s);
  2227. sfxcache_t *S_LoadSound (sfx_t *s);
  2228.  
  2229. wavinfo_t GetWavinfo (char *name, byte *wav, int wavlength);
  2230.  
  2231. void SND_InitScaletable (void);
  2232. void SNDDMA_Submit(void);
  2233.  
  2234. void S_AmbientOff (void);
  2235. void S_AmbientOn (void);
  2236.  
  2237.  
  2238. #line 240 "Develop:CC/Projects/Games/Quake/quakedef.h"
  2239. #line 1 "Develop:CC/Projects/Games/Quake/render.h"
  2240.  
  2241. #line 20 "Develop:CC/Projects/Games/Quake/render.h"
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252. typedef struct efrag_s
  2253. {
  2254.   struct mleaf_s    *leaf;
  2255.   struct efrag_s    *leafnext;
  2256.   struct entity_s   *entity;
  2257.   struct efrag_s    *entnext;
  2258. } efrag_t;
  2259.  
  2260.  
  2261. typedef struct entity_s
  2262. {
  2263.   qboolean        forcelink;
  2264.  
  2265.   int           update_type;
  2266.  
  2267.   entity_state_t      baseline;
  2268.  
  2269.   double          msgtime;
  2270.   vec3_t          msg_origins[2];
  2271.   vec3_t          origin;
  2272.   vec3_t          msg_angles[2];
  2273.   vec3_t          angles;
  2274.   struct model_s      *model;
  2275.   struct efrag_s      *efrag;
  2276.   int           frame;
  2277.   float         syncbase;
  2278.   byte          *colormap;
  2279.   int           effects;
  2280.   int           skinnum;
  2281.   int           visframe;
  2282.  
  2283.  
  2284.   int           dlightframe;
  2285.   int           dlightbits;
  2286.  
  2287.  
  2288.   int           trivial_accept;
  2289.   struct mnode_s      *topnode;
  2290.  
  2291.  
  2292. } entity_t;
  2293.  
  2294.  
  2295. typedef struct
  2296. {
  2297.   vrect_t   vrect;
  2298.  
  2299.   vrect_t   aliasvrect;
  2300.   int     vrectright, vrectbottom;
  2301.   int     aliasvrectright, aliasvrectbottom;
  2302.   float   vrectrightedge;
  2303.  
  2304.   float   fvrectx, fvrecty;
  2305.   float   fvrectx_adj, fvrecty_adj;
  2306.   int     vrect_x_adj_shift20;
  2307.   int     vrectright_adj_shift20;
  2308.   float   fvrectright_adj, fvrectbottom_adj;
  2309.  
  2310.   float   fvrectright;
  2311.   float   fvrectbottom;
  2312.   float   horizontalFieldOfView;
  2313.  
  2314.   float   xOrigin;
  2315.   float   yOrigin;
  2316.  
  2317.   vec3_t    vieworg;
  2318.   vec3_t    viewangles;
  2319.  
  2320.   float   fov_x, fov_y;
  2321.  
  2322.   int     ambientlight;
  2323. } refdef_t;
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329. extern  int   reinit_surfcache;
  2330.  
  2331.  
  2332. extern  refdef_t  r_refdef;
  2333. extern vec3_t r_origin, vpn, vright, vup;
  2334.  
  2335. extern  struct texture_s  *r_notexture_mip;
  2336.  
  2337.  
  2338. void R_Init (void);
  2339. void R_InitTextures (void);
  2340. void R_InitEfrags (void);
  2341. void R_RenderView (void);
  2342. void R_ViewChanged (vrect_t *pvrect, int lineadj, float aspect);
  2343.  
  2344. void R_InitSky (struct texture_s *mt);
  2345.  
  2346. void R_AddEfrags (entity_t *ent);
  2347. void R_RemoveEfrags (entity_t *ent);
  2348.  
  2349. void R_NewMap (void);
  2350.  
  2351.  
  2352. void R_ParseParticleEffect (void);
  2353. void R_RunParticleEffect (vec3_t org, vec3_t dir, int color, int count);
  2354. void R_RocketTrail (vec3_t start, vec3_t end, int type);
  2355.  
  2356.  
  2357.  
  2358.  
  2359. void R_EntityParticles (entity_t *ent);
  2360. void R_BlobExplosion (vec3_t org);
  2361. void R_ParticleExplosion (vec3_t org);
  2362. void R_ParticleExplosion2 (vec3_t org, int colorStart, int colorLength);
  2363. void R_LavaSplash (vec3_t org);
  2364. void R_TeleportSplash (vec3_t org);
  2365.  
  2366. void R_PushDlights (void);
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372. extern  int   reinit_surfcache;
  2373. extern qboolean r_cache_thrash;
  2374.  
  2375. int D_SurfaceCacheForRes (int width, int height);
  2376. void D_FlushCaches (void);
  2377. void D_DeleteSurfaceCache (void);
  2378. void D_InitCaches (void *buffer, int size);
  2379. void R_SetVrect (vrect_t *pvrect, vrect_t *pvrectin, int lineadj);
  2380.  
  2381. #line 241 "Develop:CC/Projects/Games/Quake/quakedef.h"
  2382. #line 1 "Develop:CC/Projects/Games/Quake/client.h"
  2383.  
  2384. #line 20 "Develop:CC/Projects/Games/Quake/client.h"
  2385.  
  2386.  
  2387. typedef struct
  2388. {
  2389.   vec3_t  viewangles;
  2390.  
  2391.  
  2392.   float forwardmove;
  2393.   float sidemove;
  2394.   float upmove;
  2395.  
  2396.  
  2397.  
  2398. } usercmd_t;
  2399.  
  2400. typedef struct
  2401. {
  2402.   int   length;
  2403.   char  map[64];
  2404. } lightstyle_t;
  2405.  
  2406. typedef struct
  2407. {
  2408.   char  name[32];
  2409.   float entertime;
  2410.   int   frags;
  2411.   int   colors;
  2412.   byte  translations[(1 << 6)*256];
  2413. } scoreboard_t;
  2414.  
  2415. typedef struct
  2416. {
  2417.   int   destcolor[3];
  2418.   int   percent;
  2419. } cshift_t;
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437. typedef struct
  2438. {
  2439.   vec3_t  origin;
  2440.   float radius;
  2441.   float die;
  2442.   float decay;
  2443.   float minlight;
  2444.   int   key;
  2445.  
  2446.  
  2447.  
  2448. } dlight_t;
  2449.  
  2450.  
  2451.  
  2452. typedef struct
  2453. {
  2454.   int   entity;
  2455.   struct model_s  *model;
  2456.   float endtime;
  2457.   vec3_t  start, end;
  2458. } beam_t;
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466. typedef enum {
  2467. ca_dedicated,
  2468. ca_disconnected,
  2469. ca_connected
  2470. } cactive_t;
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476. typedef struct
  2477. {
  2478.   cactive_t state;
  2479.  
  2480.  
  2481.   char    mapstring[64];
  2482.   char    spawnparms[2048];
  2483.  
  2484.  
  2485.   int     demonum;
  2486.   char    demos[8][16];
  2487.  
  2488.  
  2489.  
  2490.   qboolean  demorecording;
  2491.   qboolean  demoplayback;
  2492.   qboolean  timedemo;
  2493.   int     forcetrack;
  2494.   FILE    *demofile;
  2495.   int     td_lastframe;
  2496.   int     td_startframe;
  2497.   float   td_starttime;
  2498.  
  2499.  
  2500.  
  2501.   int     signon;
  2502.   struct qsocket_s  *netcon;
  2503.   sizebuf_t message;
  2504.  
  2505. } client_static_t;
  2506.  
  2507. extern client_static_t  cls;
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513. typedef struct
  2514. {
  2515.   int     movemessages;
  2516.  
  2517.  
  2518.  
  2519.   usercmd_t cmd;
  2520.  
  2521.  
  2522.   int     stats[32];
  2523.   int     items;
  2524.   float item_gettime[32];
  2525.   float   faceanimtime;
  2526.  
  2527.   cshift_t  cshifts[4];
  2528.   cshift_t  prev_cshifts[4];
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.   vec3_t    mviewangles[2];
  2535.  
  2536.   vec3_t    viewangles;
  2537.  
  2538.   vec3_t    mvelocity[2];
  2539.  
  2540.   vec3_t    velocity;
  2541.  
  2542.   vec3_t    punchangle;
  2543.  
  2544.  
  2545.   float   idealpitch;
  2546.   float   pitchvel;
  2547.   qboolean  nodrift;
  2548.   float   driftmove;
  2549.   double    laststop;
  2550.  
  2551.   float   viewheight;
  2552.   float   crouch;
  2553.  
  2554.   qboolean  paused;
  2555.   qboolean  onground;
  2556.   qboolean  inwater;
  2557.  
  2558.   int     intermission;
  2559.   int     completed_time;
  2560.  
  2561.   double    mtime[2];
  2562.   double    time;
  2563.  
  2564.  
  2565.   double    oldtime;
  2566.  
  2567.  
  2568.  
  2569.   float   last_received_message;
  2570.  
  2571.  
  2572.  
  2573.  
  2574.   struct model_s    *model_precache[256];
  2575.   struct sfx_s    *sound_precache[256];
  2576.  
  2577.   char    levelname[40];
  2578.   int     viewentity;
  2579.   int     maxclients;
  2580.   int     gametype;
  2581.  
  2582.  
  2583.   struct model_s  *worldmodel;
  2584.   struct efrag_s  *free_efrags;
  2585.   int     num_entities;
  2586.   int     num_statics;
  2587.   entity_t  viewent;
  2588.  
  2589.   int     cdtrack, looptrack;
  2590.  
  2591.  
  2592.   scoreboard_t  *scores;
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600. } client_state_t;
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606. extern  cvar_t  cl_name;
  2607. extern  cvar_t  cl_color;
  2608.  
  2609. extern  cvar_t  cl_upspeed;
  2610. extern  cvar_t  cl_forwardspeed;
  2611. extern  cvar_t  cl_backspeed;
  2612. extern  cvar_t  cl_sidespeed;
  2613.  
  2614. extern  cvar_t  cl_movespeedkey;
  2615.  
  2616. extern  cvar_t  cl_yawspeed;
  2617. extern  cvar_t  cl_pitchspeed;
  2618.  
  2619. extern  cvar_t  cl_anglespeedkey;
  2620.  
  2621. extern  cvar_t  cl_autofire;
  2622.  
  2623. extern  cvar_t  cl_shownet;
  2624. extern  cvar_t  cl_nolerp;
  2625.  
  2626. extern  cvar_t  cl_pitchdriftspeed;
  2627. extern  cvar_t  lookspring;
  2628. extern  cvar_t  lookstrafe;
  2629. extern  cvar_t  sensitivity;
  2630.  
  2631. extern  cvar_t  m_pitch;
  2632. extern  cvar_t  m_yaw;
  2633. extern  cvar_t  m_forward;
  2634. extern  cvar_t  m_side;
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640. extern  client_state_t  cl;
  2641.  
  2642.  
  2643. extern  efrag_t     cl_efrags[640];
  2644. extern  entity_t    cl_entities[600];
  2645. extern  entity_t    cl_static_entities[128];
  2646. extern  lightstyle_t  cl_lightstyle[64];
  2647. extern  dlight_t    cl_dlights[32];
  2648. extern  entity_t    cl_temp_entities[64];
  2649. extern  beam_t      cl_beams[24];
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656. dlight_t *CL_AllocDlight (int key);
  2657. void  CL_DecayLights (void);
  2658.  
  2659. void CL_Init (void);
  2660.  
  2661. void CL_EstablishConnection (char *host);
  2662. void CL_Signon1 (void);
  2663. void CL_Signon2 (void);
  2664. void CL_Signon3 (void);
  2665. void CL_Signon4 (void);
  2666.  
  2667. void CL_Disconnect (void);
  2668. void CL_Disconnect_f (void);
  2669. void CL_NextDemo (void);
  2670.  
  2671.  
  2672. extern  int       cl_numvisedicts;
  2673. extern  entity_t    *cl_visedicts[256];
  2674.  
  2675.  
  2676.  
  2677.  
  2678. typedef struct
  2679. {
  2680.   int   down[2];
  2681.   int   state;
  2682. } kbutton_t;
  2683.  
  2684. extern  kbutton_t in_mlook, in_klook;
  2685. extern  kbutton_t   in_strafe;
  2686. extern  kbutton_t   in_speed;
  2687.  
  2688. void CL_InitInput (void);
  2689. void CL_SendCmd (void);
  2690. void CL_SendMove (usercmd_t *cmd);
  2691.  
  2692. void CL_ParseTEnt (void);
  2693. void CL_UpdateTEnts (void);
  2694.  
  2695. void CL_ClearState (void);
  2696.  
  2697.  
  2698. int  CL_ReadFromServer (void);
  2699. void CL_WriteToServer (usercmd_t *cmd);
  2700. void CL_BaseMove (usercmd_t *cmd);
  2701.  
  2702.  
  2703. float CL_KeyState (kbutton_t *key);
  2704. char *Key_KeynumToString (int keynum);
  2705.  
  2706.  
  2707.  
  2708.  
  2709. void CL_StopPlayback (void);
  2710. int CL_GetMessage (void);
  2711.  
  2712. void CL_Stop_f (void);
  2713. void CL_Record_f (void);
  2714. void CL_PlayDemo_f (void);
  2715. void CL_TimeDemo_f (void);
  2716.  
  2717.  
  2718.  
  2719.  
  2720. void CL_ParseServerMessage (void);
  2721. void CL_NewTranslation (int slot);
  2722.  
  2723.  
  2724.  
  2725.  
  2726. void V_StartPitchDrift (void);
  2727. void V_StopPitchDrift (void);
  2728.  
  2729. void V_RenderView (void);
  2730. void V_UpdatePalette (void);
  2731. void V_Register (void);
  2732. void V_ParseDamage (void);
  2733. void V_SetContentsColor (int contents);
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739. void CL_InitTEnts (void);
  2740. void CL_SignonReply (void);
  2741. #line 242 "Develop:CC/Projects/Games/Quake/quakedef.h"
  2742. #line 1 "Develop:CC/Projects/Games/Quake/progs.h"
  2743.  
  2744. #line 20 "Develop:CC/Projects/Games/Quake/progs.h"
  2745.  
  2746. #line 1 "Develop:CC/Projects/Games/Quake/pr_comp.h"
  2747.  
  2748. #line 20 "Develop:CC/Projects/Games/Quake/pr_comp.h"
  2749.  
  2750.  
  2751.  
  2752. typedef int func_t;
  2753. typedef int string_t;
  2754.  
  2755. typedef enum {ev_void, ev_string, ev_float, ev_vector, ev_entity, ev_field, ev_function, ev_pointer} etype_t;
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771. enum {
  2772.   OP_DONE,
  2773.   OP_MUL_F,
  2774.   OP_MUL_V,
  2775.   OP_MUL_FV,
  2776.   OP_MUL_VF,
  2777.   OP_DIV_F,
  2778.   OP_ADD_F,
  2779.   OP_ADD_V,
  2780.   OP_SUB_F,
  2781.   OP_SUB_V,
  2782.  
  2783.   OP_EQ_F,
  2784.   OP_EQ_V,
  2785.   OP_EQ_S,
  2786.   OP_EQ_E,
  2787.   OP_EQ_FNC,
  2788.  
  2789.   OP_NE_F,
  2790.   OP_NE_V,
  2791.   OP_NE_S,
  2792.   OP_NE_E,
  2793.   OP_NE_FNC,
  2794.  
  2795.   OP_LE,
  2796.   OP_GE,
  2797.   OP_LT,
  2798.   OP_GT,
  2799.  
  2800.   OP_LOAD_F,
  2801.   OP_LOAD_V,
  2802.   OP_LOAD_S,
  2803.   OP_LOAD_ENT,
  2804.   OP_LOAD_FLD,
  2805.   OP_LOAD_FNC,
  2806.  
  2807.   OP_ADDRESS,
  2808.  
  2809.   OP_STORE_F,
  2810.   OP_STORE_V,
  2811.   OP_STORE_S,
  2812.   OP_STORE_ENT,
  2813.   OP_STORE_FLD,
  2814.   OP_STORE_FNC,
  2815.  
  2816.   OP_STOREP_F,
  2817.   OP_STOREP_V,
  2818.   OP_STOREP_S,
  2819.   OP_STOREP_ENT,
  2820.   OP_STOREP_FLD,
  2821.   OP_STOREP_FNC,
  2822.  
  2823.   OP_RETURN,
  2824.   OP_NOT_F,
  2825.   OP_NOT_V,
  2826.   OP_NOT_S,
  2827.   OP_NOT_ENT,
  2828.   OP_NOT_FNC,
  2829.   OP_IF,
  2830.   OP_IFNOT,
  2831.   OP_CALL0,
  2832.   OP_CALL1,
  2833.   OP_CALL2,
  2834.   OP_CALL3,
  2835.   OP_CALL4,
  2836.   OP_CALL5,
  2837.   OP_CALL6,
  2838.   OP_CALL7,
  2839.   OP_CALL8,
  2840.   OP_STATE,
  2841.   OP_GOTO,
  2842.   OP_AND,
  2843.   OP_OR,
  2844.  
  2845.   OP_BITAND,
  2846.   OP_BITOR
  2847. };
  2848.  
  2849.  
  2850. typedef struct statement_s
  2851. {
  2852.   unsigned short  op;
  2853.   short a,b,c;
  2854. } dstatement_t;
  2855.  
  2856. typedef struct
  2857. {
  2858.   unsigned short  type;
  2859.  
  2860.   unsigned short  ofs;
  2861.   int     s_name;
  2862. } ddef_t;
  2863.  
  2864.  
  2865.  
  2866.  
  2867. typedef struct
  2868. {
  2869.   int   first_statement;
  2870.   int   parm_start;
  2871.   int   locals;
  2872.  
  2873.   int   profile;
  2874.  
  2875.   int   s_name;
  2876.   int   s_file;
  2877.  
  2878.   int   numparms;
  2879.   byte  parm_size[8];
  2880. } dfunction_t;
  2881.  
  2882.  
  2883.  
  2884. typedef struct
  2885. {
  2886.   int   version;
  2887.   int   crc;
  2888.  
  2889.   int   ofs_statements;
  2890.   int   numstatements;
  2891.  
  2892.   int   ofs_globaldefs;
  2893.   int   numglobaldefs;
  2894.  
  2895.   int   ofs_fielddefs;
  2896.   int   numfielddefs;
  2897.  
  2898.   int   ofs_functions;
  2899.   int   numfunctions;
  2900.  
  2901.   int   ofs_strings;
  2902.   int   numstrings;
  2903.  
  2904.   int   ofs_globals;
  2905.   int   numglobals;
  2906.  
  2907.   int   entityfields;
  2908. } dprograms_t;
  2909.  
  2910. #line 22 "Develop:CC/Projects/Games/Quake/progs.h"
  2911. #line 1 "Develop:CC/Projects/Games/Quake/progdefs.h"
  2912.  
  2913. #line 20 "Develop:CC/Projects/Games/Quake/progdefs.h"
  2914.  
  2915.  
  2916.  
  2917. #line 1 "Develop:CC/Projects/Games/Quake/progdefs.q1"
  2918.  
  2919.  
  2920.  
  2921. typedef struct
  2922. {    int    pad[28];
  2923.     int    self;
  2924.     int    other;
  2925.     int    world;
  2926.     float    time;
  2927.     float    frametime;
  2928.     float    force_retouch;
  2929.     string_t    mapname;
  2930.     float    deathmatch;
  2931.     float    coop;
  2932.     float    teamplay;
  2933.     float    serverflags;
  2934.     float    total_secrets;
  2935.     float    total_monsters;
  2936.     float    found_secrets;
  2937.     float    killed_monsters;
  2938.     float    parm1;
  2939.     float    parm2;
  2940.     float    parm3;
  2941.     float    parm4;
  2942.     float    parm5;
  2943.     float    parm6;
  2944.     float    parm7;
  2945.     float    parm8;
  2946.     float    parm9;
  2947.     float    parm10;
  2948.     float    parm11;
  2949.     float    parm12;
  2950.     float    parm13;
  2951.     float    parm14;
  2952.     float    parm15;
  2953.     float    parm16;
  2954.     vec3_t    v_forward;
  2955.     vec3_t    v_up;
  2956.     vec3_t    v_right;
  2957.     float    trace_allsolid;
  2958.     float    trace_startsolid;
  2959.     float    trace_fraction;
  2960.     vec3_t    trace_endpos;
  2961.     vec3_t    trace_plane_normal;
  2962.     float    trace_plane_dist;
  2963.     int    trace_ent;
  2964.     float    trace_inopen;
  2965.     float    trace_inwater;
  2966.     int    msg_entity;
  2967.     func_t    main;
  2968.     func_t    StartFrame;
  2969.     func_t    PlayerPreThink;
  2970.     func_t    PlayerPostThink;
  2971.     func_t    ClientKill;
  2972.     func_t    ClientConnect;
  2973.     func_t    PutClientInServer;
  2974.     func_t    ClientDisconnect;
  2975.     func_t    SetNewParms;
  2976.     func_t    SetChangeParms;
  2977. } globalvars_t;
  2978.  
  2979. typedef struct
  2980. {
  2981.     float    modelindex;
  2982.     vec3_t    absmin;
  2983.     vec3_t    absmax;
  2984.     float    ltime;
  2985.     float    movetype;
  2986.     float    solid;
  2987.     vec3_t    origin;
  2988.     vec3_t    oldorigin;
  2989.     vec3_t    velocity;
  2990.     vec3_t    angles;
  2991.     vec3_t    avelocity;
  2992.     vec3_t    punchangle;
  2993.     string_t    classname;
  2994.     string_t    model;
  2995.     float    frame;
  2996.     float    skin;
  2997.     float    effects;
  2998.     vec3_t    mins;
  2999.     vec3_t    maxs;
  3000.     vec3_t    size;
  3001.     func_t    touch;
  3002.     func_t    use;
  3003.     func_t    think;
  3004.     func_t    blocked;
  3005.     float    nextthink;
  3006.     int    groundentity;
  3007.     float    health;
  3008.     float    frags;
  3009.     float    weapon;
  3010.     string_t    weaponmodel;
  3011.     float    weaponframe;
  3012.     float    currentammo;
  3013.     float    ammo_shells;
  3014.     float    ammo_nails;
  3015.     float    ammo_rockets;
  3016.     float    ammo_cells;
  3017.     float    items;
  3018.     float    takedamage;
  3019.     int    chain;
  3020.     float    deadflag;
  3021.     vec3_t    view_ofs;
  3022.     float    button0;
  3023.     float    button1;
  3024.     float    button2;
  3025.     float    impulse;
  3026.     float    fixangle;
  3027.     vec3_t    v_angle;
  3028.     float    idealpitch;
  3029.     string_t    netname;
  3030.     int    enemy;
  3031.     float    flags;
  3032.     float    colormap;
  3033.     float    team;
  3034.     float    max_health;
  3035.     float    teleport_time;
  3036.     float    armortype;
  3037.     float    armorvalue;
  3038.     float    waterlevel;
  3039.     float    watertype;
  3040.     float    ideal_yaw;
  3041.     float    yaw_speed;
  3042.     int    aiment;
  3043.     int    goalentity;
  3044.     float    spawnflags;
  3045.     string_t    target;
  3046.     string_t    targetname;
  3047.     float    dmg_take;
  3048.     float    dmg_save;
  3049.     int    dmg_inflictor;
  3050.     int    owner;
  3051.     vec3_t    movedir;
  3052.     string_t    message;
  3053.     float    sounds;
  3054.     string_t    noise;
  3055.     string_t    noise1;
  3056.     string_t    noise2;
  3057.     string_t    noise3;
  3058. } entvars_t;
  3059.  
  3060.  
  3061. #line 24 "Develop:CC/Projects/Games/Quake/progdefs.h"
  3062.  
  3063. #line 23 "Develop:CC/Projects/Games/Quake/progs.h"
  3064.  
  3065. typedef union eval_s
  3066. {
  3067.   string_t    string;
  3068.   float     _float;
  3069.   float     vector[3];
  3070.   func_t      function;
  3071.   int       _int;
  3072.   int       edict;
  3073. } eval_t;
  3074.  
  3075.  
  3076. typedef struct edict_s
  3077. {
  3078.   qboolean  free;
  3079.   link_t    area;
  3080.  
  3081.   int     num_leafs;
  3082.   short   leafnums[16];
  3083.  
  3084.   entity_state_t  baseline;
  3085.  
  3086.   float   freetime;
  3087.   entvars_t v;
  3088.  
  3089. } edict_t;
  3090.  
  3091.  
  3092.  
  3093.  
  3094. extern  dprograms_t   *progs;
  3095. extern  dfunction_t   *pr_functions;
  3096. extern  char      *pr_strings;
  3097. extern  ddef_t      *pr_globaldefs;
  3098. extern  ddef_t      *pr_fielddefs;
  3099. extern  dstatement_t  *pr_statements;
  3100. extern  globalvars_t  *pr_global_struct;
  3101. extern  float     *pr_globals;
  3102.  
  3103. extern  int       pr_edict_size;
  3104.  
  3105.  
  3106.  
  3107. void PR_Init (void);
  3108.  
  3109. void PR_ExecuteProgram (func_t fnum);
  3110. void PR_LoadProgs (void);
  3111.  
  3112. void PR_Profile_f (void);
  3113.  
  3114. edict_t *ED_Alloc (void);
  3115. void ED_Free (edict_t *ed);
  3116.  
  3117. char  *ED_NewString (char *string);
  3118.  
  3119.  
  3120. void ED_Print (edict_t *ed);
  3121. void ED_Write (FILE *f, edict_t *ed);
  3122. char *ED_ParseEdict (char *data, edict_t *ent);
  3123.  
  3124. void ED_WriteGlobals (FILE *f);
  3125. void ED_ParseGlobals (char *data);
  3126.  
  3127. void ED_LoadFromFile (char *data);
  3128.  
  3129.  
  3130.  
  3131.  
  3132. edict_t *EDICT_NUM(int n);
  3133. int NUM_FOR_EDICT(edict_t *e);
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155. extern  int   type_size[8];
  3156.  
  3157. typedef void (*builtin_t) (void);
  3158. extern  builtin_t *pr_builtins;
  3159. extern int pr_numbuiltins;
  3160.  
  3161. extern int    pr_argc;
  3162.  
  3163. extern  qboolean  pr_trace;
  3164. extern  dfunction_t *pr_xfunction;
  3165. extern  int     pr_xstatement;
  3166.  
  3167. extern  unsigned short    pr_crc;
  3168.  
  3169. void PR_RunError (char *error, ...);
  3170.  
  3171. void ED_PrintEdicts (void);
  3172. void ED_PrintNum (int ent);
  3173.  
  3174. eval_t *GetEdictFieldValue(edict_t *ed, char *field);
  3175.  
  3176. #line 243 "Develop:CC/Projects/Games/Quake/quakedef.h"
  3177. #line 1 "Develop:CC/Projects/Games/Quake/server.h"
  3178.  
  3179. #line 20 "Develop:CC/Projects/Games/Quake/server.h"
  3180.  
  3181.  
  3182. typedef struct
  3183. {
  3184.   int     maxclients;
  3185.   int     maxclientslimit;
  3186.   struct client_s *clients;
  3187.   int     serverflags;
  3188.   qboolean  changelevel_issued;
  3189. } server_static_t;
  3190.  
  3191.  
  3192.  
  3193. typedef enum {ss_loading, ss_active} server_state_t;
  3194.  
  3195. typedef struct
  3196. {
  3197.   qboolean  active;
  3198.  
  3199.   qboolean  paused;
  3200.   qboolean  loadgame;
  3201.  
  3202.   double    time;
  3203.  
  3204.   int     lastcheck;
  3205.   double    lastchecktime;
  3206.  
  3207.   char    name[64];
  3208.  
  3209.  
  3210.  
  3211.   char    modelname[64];
  3212.   struct model_s  *worldmodel;
  3213.   char    *model_precache[256];
  3214.   struct model_s  *models[256];
  3215.   char    *sound_precache[256];
  3216.   char    *lightstyles[64];
  3217.   int     num_edicts;
  3218.   int     max_edicts;
  3219.   edict_t   *edicts;
  3220.  
  3221.  
  3222.   server_state_t  state;
  3223.  
  3224.   sizebuf_t datagram;
  3225.   byte    datagram_buf[1024];
  3226.  
  3227.   sizebuf_t reliable_datagram;
  3228.   byte    reliable_datagram_buf[1024];
  3229.  
  3230.   sizebuf_t signon;
  3231.   byte    signon_buf[8192];
  3232. } server_t;
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238. typedef struct client_s
  3239. {
  3240.   qboolean    active;
  3241.   qboolean    spawned;
  3242.   qboolean    dropasap;
  3243.   qboolean    privileged;
  3244.   qboolean    sendsignon;
  3245.  
  3246.   double      last_message;
  3247.  
  3248.  
  3249.   struct qsocket_s *netconnection;
  3250.  
  3251.   usercmd_t   cmd;
  3252.   vec3_t      wishdir;
  3253.  
  3254.   sizebuf_t   message;
  3255.  
  3256.   byte      msgbuf[8000];
  3257.   edict_t     *edict;
  3258.   char      name[32];
  3259.   int       colors;
  3260.  
  3261.   float     ping_times[16];
  3262.   int       num_pings;
  3263.  
  3264.  
  3265.   float     spawn_parms[16];
  3266.  
  3267.  
  3268.   int       old_frags;
  3269. } client_t;
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312.  
  3313.  
  3314.  
  3315.  
  3316.  
  3317.  
  3318.  
  3319.  
  3320.  
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358. extern  cvar_t  teamplay;
  3359. extern  cvar_t  skill;
  3360. extern  cvar_t  deathmatch;
  3361. extern  cvar_t  coop;
  3362. extern  cvar_t  fraglimit;
  3363. extern  cvar_t  timelimit;
  3364.  
  3365. extern  server_static_t svs;
  3366. extern  server_t    sv;
  3367.  
  3368. extern  client_t  *host_client;
  3369.  
  3370. extern  jmp_buf   host_abortserver;
  3371.  
  3372. extern  double    host_time;
  3373.  
  3374. extern  edict_t   *sv_player;
  3375.  
  3376.  
  3377.  
  3378. void SV_Init (void);
  3379.  
  3380. void SV_StartParticle (vec3_t org, vec3_t dir, int color, int count);
  3381. void SV_StartSound (edict_t *entity, int channel, char *sample, int volume,
  3382.     float attenuation);
  3383.  
  3384. void SV_DropClient (qboolean crash);
  3385.  
  3386. void SV_SendClientMessages (void);
  3387. void SV_ClearDatagram (void);
  3388.  
  3389. int SV_ModelIndex (char *name);
  3390.  
  3391. void SV_SetIdealPitch (void);
  3392.  
  3393. void SV_AddUpdates (void);
  3394.  
  3395. void SV_ClientThink (void);
  3396. void SV_AddClientToServer (struct qsocket_s *ret);
  3397.  
  3398. void SV_ClientPrintf (char *fmt, ...);
  3399. void SV_BroadcastPrintf (char *fmt, ...);
  3400.  
  3401. void SV_Physics (void);
  3402.  
  3403. qboolean SV_CheckBottom (edict_t *ent);
  3404. qboolean SV_movestep (edict_t *ent, vec3_t move, qboolean relink);
  3405.  
  3406. void SV_WriteClientdataToMessage (edict_t *ent, sizebuf_t *msg);
  3407.  
  3408. void SV_MoveToGoal (void);
  3409.  
  3410. void SV_CheckForNewClients (void);
  3411. void SV_RunClients (void);
  3412. void SV_SaveSpawnparms ();
  3413.  
  3414.  
  3415.  
  3416. void SV_SpawnServer (char *server);
  3417.  
  3418. #line 244 "Develop:CC/Projects/Games/Quake/quakedef.h"
  3419.  
  3420.  
  3421.  
  3422.  
  3423. #line 1 "Develop:CC/Projects/Games/Quake/model.h"
  3424.  
  3425. #line 20 "Develop:CC/Projects/Games/Quake/model.h"
  3426.  
  3427.  
  3428.  
  3429.  
  3430. #line 1 "Develop:CC/Projects/Games/Quake/modelgen.h"
  3431.  
  3432. #line 20 "Develop:CC/Projects/Games/Quake/modelgen.h"
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465. typedef enum {ST_SYNC=0, ST_RAND } synctype_t;
  3466.  
  3467.  
  3468. typedef enum { ALIAS_SINGLE=0, ALIAS_GROUP } aliasframetype_t;
  3469.  
  3470. typedef enum { ALIAS_SKIN_SINGLE=0, ALIAS_SKIN_GROUP } aliasskintype_t;
  3471.  
  3472. typedef struct {
  3473.   int     ident;
  3474.   int     version;
  3475.   vec3_t    scale;
  3476.   vec3_t    scale_origin;
  3477.   float   boundingradius;
  3478.   vec3_t    eyeposition;
  3479.   int     numskins;
  3480.   int     skinwidth;
  3481.   int     skinheight;
  3482.   int     numverts;
  3483.   int     numtris;
  3484.   int     numframes;
  3485.   synctype_t  synctype;
  3486.   int     flags;
  3487.   float   size;
  3488. } mdl_t;
  3489.  
  3490.  
  3491.  
  3492. typedef struct {
  3493.   int   onseam;
  3494.   int   s;
  3495.   int   t;
  3496. } stvert_t;
  3497.  
  3498. typedef struct dtriangle_s {
  3499.   int         facesfront;
  3500.   int         vertindex[3];
  3501. } dtriangle_t;
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508. typedef struct {
  3509.   byte  v[3];
  3510.   byte  lightnormalindex;
  3511. } trivertx_t;
  3512.  
  3513. typedef struct {
  3514.   trivertx_t  bboxmin;
  3515.   trivertx_t  bboxmax;
  3516.   char    name[16];
  3517. } daliasframe_t;
  3518.  
  3519. typedef struct {
  3520.   int     numframes;
  3521.   trivertx_t  bboxmin;
  3522.   trivertx_t  bboxmax;
  3523. } daliasgroup_t;
  3524.  
  3525. typedef struct {
  3526.   int     numskins;
  3527. } daliasskingroup_t;
  3528.  
  3529. typedef struct {
  3530.   float interval;
  3531. } daliasinterval_t;
  3532.  
  3533. typedef struct {
  3534.   float interval;
  3535. } daliasskininterval_t;
  3536.  
  3537. typedef struct {
  3538.   aliasframetype_t  type;
  3539. } daliasframetype_t;
  3540.  
  3541. typedef struct {
  3542.   aliasskintype_t type;
  3543. } daliasskintype_t;
  3544.  
  3545.  
  3546.  
  3547.  
  3548. #line 25 "Develop:CC/Projects/Games/Quake/model.h"
  3549. #line 1 "Develop:CC/Projects/Games/Quake/spritegn.h"
  3550.  
  3551. #line 20 "Develop:CC/Projects/Games/Quake/spritegn.h"
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576.  
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582.  
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602. typedef struct {
  3603.   int     ident;
  3604.   int     version;
  3605.   int     type;
  3606.   float   boundingradius;
  3607.   int     width;
  3608.   int     height;
  3609.   int     numframes;
  3610.   float   beamlength;
  3611.   synctype_t  synctype;
  3612. } dsprite_t;
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620. typedef struct {
  3621.   int     origin[2];
  3622.   int     width;
  3623.   int     height;
  3624. } dspriteframe_t;
  3625.  
  3626. typedef struct {
  3627.   int     numframes;
  3628. } dspritegroup_t;
  3629.  
  3630. typedef struct {
  3631.   float interval;
  3632. } dspriteinterval_t;
  3633.  
  3634. typedef enum { SPR_SINGLE=0, SPR_GROUP } spriteframetype_t;
  3635.  
  3636. typedef struct {
  3637.   spriteframetype_t type;
  3638. } dspriteframetype_t;
  3639.  
  3640.  
  3641.  
  3642.  
  3643. #line 26 "Develop:CC/Projects/Games/Quake/model.h"
  3644.  
  3645.  
  3646. #line 33 "Develop:CC/Projects/Games/Quake/model.h"
  3647.  
  3648.  
  3649. #line 41 "Develop:CC/Projects/Games/Quake/model.h"
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656. typedef struct
  3657. {
  3658.   vec3_t    position;
  3659. } mvertex_t;
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668. typedef struct mplane_s
  3669. {
  3670.   vec3_t  normal;
  3671.   float dist;
  3672.   byte  type;
  3673.   byte  signbits;
  3674.   byte  pad[2];
  3675. } mplane_t;
  3676.  
  3677. typedef struct texture_s
  3678. {
  3679.   char    name[16];
  3680.   unsigned  width, height;
  3681.   int     anim_total;
  3682.   int     anim_min, anim_max;
  3683.   struct texture_s *anim_next;
  3684.   struct texture_s *alternate_anims;
  3685.   unsigned  offsets[4];
  3686. } texture_t;
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697. typedef struct
  3698. {
  3699.   unsigned short  v[2];
  3700.   unsigned int  cachededgeoffset;
  3701. } medge_t;
  3702.  
  3703. typedef struct
  3704. {
  3705.   float   vecs[2][4];
  3706.   float   mipadjust;
  3707.   texture_t *texture;
  3708.   int     flags;
  3709. } mtexinfo_t;
  3710.  
  3711. typedef struct msurface_s
  3712. {
  3713.   int     visframe;
  3714.  
  3715.   int     dlightframe;
  3716.   int     dlightbits;
  3717.  
  3718.   mplane_t  *plane;
  3719.   int     flags;
  3720.  
  3721.   int     firstedge;
  3722.   int     numedges;
  3723.  
  3724.  
  3725.   struct surfcache_s  *cachespots[4];
  3726.  
  3727.   short   texturemins[2];
  3728.   short   extents[2];
  3729.  
  3730.   mtexinfo_t  *texinfo;
  3731.  
  3732.  
  3733.   byte    styles[4];
  3734.   byte    *samples;
  3735. } msurface_t;
  3736.  
  3737. typedef struct mnode_s
  3738. {
  3739.  
  3740.   int     contents;
  3741.   int     visframe;
  3742.  
  3743.   short   minmaxs[6];
  3744.  
  3745.   struct mnode_s  *parent;
  3746.  
  3747.  
  3748.   mplane_t  *plane;
  3749.   struct mnode_s  *children[2];
  3750.  
  3751.   unsigned short    firstsurface;
  3752.   unsigned short    numsurfaces;
  3753. } mnode_t;
  3754.  
  3755.  
  3756.  
  3757. typedef struct mleaf_s
  3758. {
  3759.  
  3760.   int     contents;
  3761.   int     visframe;
  3762.  
  3763.   short   minmaxs[6];
  3764.  
  3765.   struct mnode_s  *parent;
  3766.  
  3767.  
  3768.   byte    *compressed_vis;
  3769.   efrag_t   *efrags;
  3770.  
  3771.   msurface_t  **firstmarksurface;
  3772.   int     nummarksurfaces;
  3773.   int     key;
  3774.   byte    ambient_sound_level[4];
  3775. } mleaf_t;
  3776.  
  3777.  
  3778. typedef struct
  3779. {
  3780.   dclipnode_t *clipnodes;
  3781.   mplane_t  *planes;
  3782.   int     firstclipnode;
  3783.   int     lastclipnode;
  3784.   vec3_t    clip_mins;
  3785.   vec3_t    clip_maxs;
  3786. } hull_t;
  3787.  
  3788.  
  3789. #line 186 "Develop:CC/Projects/Games/Quake/model.h"
  3790.  
  3791.  
  3792.  
  3793. typedef struct mspriteframe_s
  3794. {
  3795.   int   width;
  3796.   int   height;
  3797.   void  *pcachespot;
  3798.   float up, down, left, right;
  3799.   byte  pixels[4];
  3800. } mspriteframe_t;
  3801.  
  3802. typedef struct
  3803. {
  3804.   int       numframes;
  3805.   float     *intervals;
  3806.   mspriteframe_t  *frames[1];
  3807. } mspritegroup_t;
  3808.  
  3809. typedef struct
  3810. {
  3811.   spriteframetype_t type;
  3812.   mspriteframe_t    *frameptr;
  3813. } mspriteframedesc_t;
  3814.  
  3815. typedef struct
  3816. {
  3817.   int         type;
  3818.   int         maxwidth;
  3819.   int         maxheight;
  3820.   int         numframes;
  3821.   float       beamlength;
  3822.   void        *cachespot;
  3823.   mspriteframedesc_t  frames[1];
  3824. } msprite_t;
  3825.  
  3826.  
  3827.  
  3828. #line 231 "Develop:CC/Projects/Games/Quake/model.h"
  3829.  
  3830. typedef struct
  3831. {
  3832.   aliasframetype_t  type;
  3833.   trivertx_t      bboxmin;
  3834.   trivertx_t      bboxmax;
  3835.   int         frame;
  3836.   char        name[16];
  3837. } maliasframedesc_t;
  3838.  
  3839. typedef struct
  3840. {
  3841.   aliasskintype_t   type;
  3842.   void        *pcachespot;
  3843.   int         skin;
  3844. } maliasskindesc_t;
  3845.  
  3846. typedef struct
  3847. {
  3848.   trivertx_t      bboxmin;
  3849.   trivertx_t      bboxmax;
  3850.   int         frame;
  3851. } maliasgroupframedesc_t;
  3852.  
  3853. typedef struct
  3854. {
  3855.   int           numframes;
  3856.   int           intervals;
  3857.   maliasgroupframedesc_t  frames[1];
  3858. } maliasgroup_t;
  3859.  
  3860. typedef struct
  3861. {
  3862.   int         numskins;
  3863.   int         intervals;
  3864.   maliasskindesc_t  skindescs[1];
  3865. } maliasskingroup_t;
  3866.  
  3867.  
  3868. typedef struct mtriangle_s {
  3869.   int         facesfront;
  3870.   int         vertindex[3];
  3871. } mtriangle_t;
  3872.  
  3873. typedef struct {
  3874.   int         model;
  3875.   int         stverts;
  3876.   int         skindesc;
  3877.   int         triangles;
  3878.   maliasframedesc_t frames[1];
  3879. } aliashdr_t;
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887. typedef enum {mod_brush, mod_sprite, mod_alias} modtype_t;
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898. typedef struct model_s
  3899. {
  3900.   char    name[64];
  3901.   qboolean  needload;
  3902.  
  3903.   modtype_t type;
  3904.   int     numframes;
  3905.   synctype_t  synctype;
  3906.  
  3907.   int     flags;
  3908.  
  3909.  
  3910.  
  3911.  
  3912.   vec3_t    mins, maxs;
  3913.   float   radius;
  3914.  
  3915.  
  3916.  
  3917.  
  3918.   int     firstmodelsurface, nummodelsurfaces;
  3919.  
  3920.   int     numsubmodels;
  3921.   dmodel_t  *submodels;
  3922.  
  3923.   int     numplanes;
  3924.   mplane_t  *planes;
  3925.  
  3926.   int     numleafs;
  3927.   mleaf_t   *leafs;
  3928.  
  3929.   int     numvertexes;
  3930.   mvertex_t *vertexes;
  3931.  
  3932.   int     numedges;
  3933.   medge_t   *edges;
  3934.  
  3935.   int     numnodes;
  3936.   mnode_t   *nodes;
  3937.  
  3938.   int     numtexinfo;
  3939.   mtexinfo_t  *texinfo;
  3940.  
  3941.   int     numsurfaces;
  3942.   msurface_t  *surfaces;
  3943.  
  3944.   int     numsurfedges;
  3945.   int     *surfedges;
  3946.  
  3947.   int     numclipnodes;
  3948.   dclipnode_t *clipnodes;
  3949.  
  3950.   int     nummarksurfaces;
  3951.   msurface_t  **marksurfaces;
  3952.  
  3953.   hull_t    hulls[4];
  3954.  
  3955.   int     numtextures;
  3956.   texture_t **textures;
  3957.  
  3958.   byte    *visdata;
  3959.   byte    *lightdata;
  3960.   char    *entities;
  3961.  
  3962.  
  3963.  
  3964.  
  3965.   cache_user_t  cache;
  3966.  
  3967. } model_t;
  3968.  
  3969.  
  3970.  
  3971. void  Mod_Init (void);
  3972. void  Mod_ClearAll (void);
  3973. model_t *Mod_ForName (char *name, qboolean crash);
  3974. void  *Mod_Extradata (model_t *mod);
  3975. void  Mod_TouchModel (char *name);
  3976.  
  3977. mleaf_t *Mod_PointInLeaf (float *p, model_t *model);
  3978. byte  *Mod_LeafPVS (mleaf_t *leaf, model_t *model);
  3979.  
  3980.  
  3981. #line 249 "Develop:CC/Projects/Games/Quake/quakedef.h"
  3982. #line 1 "Develop:CC/Projects/Games/Quake/d_iface.h"
  3983.  
  3984. #line 20 "Develop:CC/Projects/Games/Quake/d_iface.h"
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992. typedef struct
  3993. {
  3994.   float u, v;
  3995.   float s, t;
  3996.   float zi;
  3997. } emitpoint_t;
  3998.  
  3999. typedef enum {
  4000.   pt_static, pt_grav, pt_slowgrav, pt_fire, pt_explode, pt_explode2, pt_blob, pt_blob2
  4001. } ptype_t;
  4002.  
  4003.  
  4004. typedef struct particle_s
  4005. {
  4006.  
  4007.   vec3_t    org;
  4008.   float   color;
  4009.  
  4010.   struct particle_s *next;
  4011.   vec3_t    vel;
  4012.   float   ramp;
  4013.   float   die;
  4014.   ptype_t   type;
  4015. } particle_t;
  4016.  
  4017.  
  4018.  
  4019. typedef struct polyvert_s {
  4020.   float u, v, zi, s, t;
  4021. } polyvert_t;
  4022.  
  4023. typedef struct polydesc_s {
  4024.   int     numverts;
  4025.   float   nearzi;
  4026.   msurface_t  *pcurrentface;
  4027.   polyvert_t  *pverts;
  4028. } polydesc_t;
  4029.  
  4030.  
  4031. typedef struct finalvert_s {
  4032.   int   v[6];
  4033.   int   flags;
  4034.   float reserved;
  4035. } finalvert_t;
  4036.  
  4037.  
  4038. typedef struct
  4039. {
  4040.   void        *pskin;
  4041.   maliasskindesc_t  *pskindesc;
  4042.   int         skinwidth;
  4043.   int         skinheight;
  4044.   mtriangle_t     *ptriangles;
  4045.   finalvert_t     *pfinalverts;
  4046.   int         numtriangles;
  4047.   int         drawtype;
  4048.   int         seamfixupX16;
  4049. } affinetridesc_t;
  4050.  
  4051.  
  4052. typedef struct {
  4053.   float u, v, zi, color;
  4054. } screenpart_t;
  4055.  
  4056. typedef struct
  4057. {
  4058.   int     nump;
  4059.   emitpoint_t *pverts;
  4060.  
  4061.  
  4062.   mspriteframe_t  *pspriteframe;
  4063.   vec3_t      vup, vright, vpn;
  4064.   float     nearzi;
  4065. } spritedesc_t;
  4066.  
  4067. typedef struct
  4068. {
  4069.   int   u, v;
  4070.   float zi;
  4071.   int   color;
  4072. } zpointdesc_t;
  4073.  
  4074. extern cvar_t r_drawflat;
  4075. extern int    d_spanpixcount;
  4076. extern int    r_framecount;
  4077.  
  4078. extern qboolean r_drawpolys;
  4079.  
  4080. extern qboolean r_drawculledpolys;
  4081.  
  4082. extern qboolean r_worldpolysbacktofront;
  4083.  
  4084.  
  4085. extern qboolean r_recursiveaffinetriangles;
  4086.  
  4087.  
  4088.  
  4089.  
  4090.  
  4091.  
  4092. extern float  r_aliasuvscale;
  4093.  
  4094. extern int    r_pixbytes;
  4095. extern qboolean r_dowarp;
  4096.  
  4097. extern affinetridesc_t  r_affinetridesc;
  4098. extern spritedesc_t   r_spritedesc;
  4099. extern zpointdesc_t   r_zpointdesc;
  4100. extern polydesc_t   r_polydesc;
  4101.  
  4102. extern int    d_con_indirect;
  4103.  
  4104.  
  4105.  
  4106.  
  4107. extern vec3_t r_pright, r_pup, r_ppn;
  4108.  
  4109.  
  4110. void D_Aff8Patch (void *pcolormap);
  4111. void D_BeginDirectRect (int x, int y, byte *pbitmap, int width, int height);
  4112. void D_DisableBackBufferAccess (void);
  4113. void D_EndDirectRect (int x, int y, int width, int height);
  4114. void D_PolysetDraw (void);
  4115. void D_PolysetDrawFinalVerts (finalvert_t *fv, int numverts);
  4116. void D_DrawParticle (particle_t *pparticle);
  4117. void D_DrawPoly (void);
  4118. void D_DrawSprite (void);
  4119. void D_DrawSurfaces (void);
  4120. void D_DrawZPoint (void);
  4121. void D_EnableBackBufferAccess (void);
  4122. void D_EndParticles (void);
  4123. void D_Init (void);
  4124. void D_ViewChanged (void);
  4125. void D_SetupFrame (void);
  4126. void D_StartParticles (void);
  4127. void D_TurnZOn (void);
  4128. void D_WarpScreen (void);
  4129.  
  4130. void D_FillRect (vrect_t *vrect, int color);
  4131. void D_DrawRect (void);
  4132. void D_UpdateRects (vrect_t *prect);
  4133.  
  4134.  
  4135.  
  4136.  
  4137. void D_PolysetUpdateTables (void);
  4138.  
  4139.  
  4140. extern int        r_skydirect;
  4141. extern byte       *r_skysource;
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147.  
  4148.  
  4149.  
  4150. extern void *acolormap;
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156. typedef struct
  4157. {
  4158.   pixel_t   *surfdat;
  4159.   int     rowbytes;
  4160.   msurface_t  *surf;
  4161.   fixed8_t  lightadj[4];
  4162.  
  4163.   texture_t *texture;
  4164.   int     surfmip;
  4165.   int     surfwidth;
  4166.   int     surfheight;
  4167. } drawsurf_t;
  4168.  
  4169. extern drawsurf_t r_drawsurf;
  4170.  
  4171. void R_DrawSurface (void);
  4172. void R_GenTile (msurface_t *psurf, void *pdest);
  4173.  
  4174.  
  4175.  
  4176.  
  4177.  
  4178.  
  4179.  
  4180.  
  4181.  
  4182.  
  4183.  
  4184.  
  4185.  
  4186.  
  4187. extern float  skyspeed, skyspeed2;
  4188. extern float  skytime;
  4189.  
  4190. extern int    c_surf;
  4191. extern vrect_t  scr_vrect;
  4192.  
  4193. extern byte   *r_warpbuffer;
  4194.  
  4195. #line 250 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4196.  
  4197.  
  4198. #line 1 "Develop:CC/Projects/Games/Quake/input.h"
  4199.  
  4200. #line 20 "Develop:CC/Projects/Games/Quake/input.h"
  4201.  
  4202.  
  4203. void IN_Init (void);
  4204.  
  4205. void IN_Shutdown (void);
  4206.  
  4207. void IN_Commands (void);
  4208.  
  4209.  
  4210. void IN_Move (usercmd_t *cmd);
  4211.  
  4212.  
  4213. void IN_ClearStates (void);
  4214.  
  4215.  
  4216. #line 253 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4217. #line 1 "Develop:CC/Projects/Games/Quake/world.h"
  4218.  
  4219. #line 20 "Develop:CC/Projects/Games/Quake/world.h"
  4220.  
  4221.  
  4222. typedef struct
  4223. {
  4224.   vec3_t  normal;
  4225.   float dist;
  4226. } plane_t;
  4227.  
  4228. typedef struct
  4229. {
  4230.   qboolean  allsolid;
  4231.   qboolean  startsolid;
  4232.   qboolean  inopen, inwater;
  4233.   float fraction;
  4234.   vec3_t  endpos;
  4235.   plane_t plane;
  4236.   edict_t *ent;
  4237. } trace_t;
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245. void SV_ClearWorld (void);
  4246.  
  4247.  
  4248. void SV_UnlinkEdict (edict_t *ent);
  4249.  
  4250.  
  4251.  
  4252.  
  4253. void SV_LinkEdict (edict_t *ent, qboolean touch_triggers);
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259. int SV_PointContents (vec3_t p);
  4260. int SV_TruePointContents (vec3_t p);
  4261.  
  4262.  
  4263.  
  4264.  
  4265. edict_t *SV_TestEntityPosition (edict_t *ent);
  4266.  
  4267. trace_t SV_Move (vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int type, edict_t *passedict);
  4268.  
  4269.  
  4270.  
  4271.  
  4272.  
  4273.  
  4274.  
  4275.  
  4276.  
  4277.  
  4278.  
  4279. #line 254 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4280. #line 1 "Develop:CC/Projects/Games/Quake/keys.h"
  4281.  
  4282. #line 20 "Develop:CC/Projects/Games/Quake/keys.h"
  4283.  
  4284.  
  4285.  
  4286.  
  4287.  
  4288.  
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.  
  4320.  
  4321.  
  4322.  
  4323.  
  4324.  
  4325.  
  4326.  
  4327.  
  4328.  
  4329.  
  4330.  
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.  
  4337.  
  4338.  
  4339.  
  4340.  
  4341.  
  4342.  
  4343.  
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.  
  4376.  
  4377.  
  4378.  
  4379.  
  4380.  
  4381.  
  4382.  
  4383. typedef enum {key_game, key_console, key_message, key_menu} keydest_t;
  4384.  
  4385. extern keydest_t  key_dest;
  4386. extern char *keybindings[256];
  4387. extern  int   key_repeats[256];
  4388. extern  int   key_count;
  4389. extern  int   key_lastpress;
  4390.  
  4391. void Key_Event (int key, qboolean down);
  4392. void Key_Init (void);
  4393. void Key_WriteBindings (FILE *f);
  4394. void Key_SetBinding (int keynum, char *binding);
  4395. void Key_ClearStates (void);
  4396.  
  4397. #line 255 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4398. #line 1 "Develop:CC/Projects/Games/Quake/console.h"
  4399.  
  4400. #line 20 "Develop:CC/Projects/Games/Quake/console.h"
  4401.  
  4402.  
  4403.  
  4404.  
  4405. extern int con_totallines;
  4406. extern int con_backscroll;
  4407. extern  qboolean con_forcedup;
  4408. extern qboolean con_initialized;
  4409. extern byte *con_chars;
  4410. extern  int con_notifylines;
  4411.  
  4412. void Con_DrawCharacter (int cx, int line, int num);
  4413.  
  4414. void Con_CheckResize (void);
  4415. void Con_Init (void);
  4416. void Con_DrawConsole (int lines, qboolean drawinput);
  4417. void Con_Print (char *txt);
  4418. void Con_Printf (char *fmt, ...);
  4419. void Con_DPrintf (char *fmt, ...);
  4420. void Con_SafePrintf (char *fmt, ...);
  4421. void Con_Clear_f (void);
  4422. void Con_DrawNotify (void);
  4423. void Con_ClearNotify (void);
  4424. void Con_ToggleConsole_f (void);
  4425.  
  4426. void Con_NotifyBox (char *text);
  4427.  
  4428. #line 256 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4429. #line 1 "Develop:CC/Projects/Games/Quake/view.h"
  4430.  
  4431. #line 20 "Develop:CC/Projects/Games/Quake/view.h"
  4432.  
  4433.  
  4434. extern  cvar_t    v_gamma;
  4435.  
  4436. extern  byte    gammatable[256];
  4437. extern  byte    ramps[3][256];
  4438. extern float v_blend[4];
  4439.  
  4440. extern cvar_t lcd_x;
  4441.  
  4442.  
  4443. void V_Init (void);
  4444. void V_RenderView (void);
  4445. float V_CalcRoll (vec3_t angles, vec3_t velocity);
  4446. void V_UpdatePalette (void);
  4447.  
  4448. #line 257 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4449. #line 1 "Develop:CC/Projects/Games/Quake/menu.h"
  4450.  
  4451. #line 20 "Develop:CC/Projects/Games/Quake/menu.h"
  4452.  
  4453.  
  4454.  
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460. extern  int m_activenet;
  4461.  
  4462.  
  4463.  
  4464.  
  4465. void M_Init (void);
  4466. void M_Keydown (int key);
  4467. void M_Draw (void);
  4468. void M_ToggleMenu_f (void);
  4469.  
  4470.  
  4471. #line 258 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4472. #line 1 "Develop:CC/Projects/Games/Quake/crc.h"
  4473.  
  4474. #line 20 "Develop:CC/Projects/Games/Quake/crc.h"
  4475.  
  4476.  
  4477. void CRC_Init(unsigned short *crcvalue);
  4478. void CRC_ProcessByte(unsigned short *crcvalue, byte data);
  4479. unsigned short CRC_Value(unsigned short crcvalue);
  4480. #line 259 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4481. #line 1 "Develop:CC/Projects/Games/Quake/cdaudio.h"
  4482.  
  4483. #line 20 "Develop:CC/Projects/Games/Quake/cdaudio.h"
  4484.  
  4485. int CDAudio_Init(void);
  4486. void CDAudio_Play(byte track, qboolean looping);
  4487. void CDAudio_Stop(void);
  4488. void CDAudio_Pause(void);
  4489. void CDAudio_Resume(void);
  4490. void CDAudio_Shutdown(void);
  4491. void CDAudio_Update(void);
  4492. #line 260 "Develop:CC/Projects/Games/Quake/quakedef.h"
  4493.  
  4494.  
  4495.  
  4496.  
  4497.  
  4498.  
  4499.  
  4500.  
  4501.  
  4502.  
  4503.  
  4504. typedef struct
  4505. {
  4506.   char  *basedir;
  4507.   char  *cachedir;
  4508.   int   argc;
  4509.   char  **argv;
  4510.   void  *membase;
  4511.   int   memsize;
  4512. } quakeparms_t;
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519. extern qboolean noclip_anglehack;
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525. extern  quakeparms_t host_parms;
  4526.  
  4527. extern  cvar_t    sys_ticrate;
  4528. extern  cvar_t    sys_nostdout;
  4529. extern  cvar_t    developer;
  4530.  
  4531. extern  qboolean  host_initialized;
  4532. extern  double    host_frametime;
  4533. extern  byte    *host_basepal;
  4534. extern  byte    *host_colormap;
  4535. extern  int     host_framecount;
  4536. extern  double    realtime;
  4537.  
  4538.  
  4539. void Host_ClearMemory (void);
  4540. void Host_ServerFrame (void);
  4541. void Host_InitCommands (void);
  4542. void Host_Init (quakeparms_t *parms);
  4543. void Host_Shutdown(void);
  4544. void Host_Error (char *error, ...);
  4545. void Host_EndGame (char *message, ...);
  4546. void Host_Frame (float time);
  4547. void Host_Quit_f (void);
  4548. void Host_ClientCommands (char *fmt, ...);
  4549. void Host_ShutdownServer (qboolean crash);
  4550.  
  4551. extern qboolean   msg_suppress_1;
  4552.  
  4553. extern int      current_skill;
  4554.  
  4555.  
  4556.  
  4557. extern qboolean   isDedicated;
  4558.  
  4559. extern int      minimum_memory;
  4560.  
  4561.  
  4562.  
  4563.  
  4564. extern  cvar_t  chase_active;
  4565.  
  4566. void Chase_Init (void);
  4567. void Chase_Reset (void);
  4568. void Chase_Update (void);
  4569. #line 2 "Develop:CC/Projects/Games/Quake/d_edge.c"
  4570. #line 1 "Develop:CC/Projects/Games/Quake/d_local.h"
  4571.  
  4572. #line 20 "Develop:CC/Projects/Games/Quake/d_local.h"
  4573.  
  4574.  
  4575. #line 1 "Develop:CC/Projects/Games/Quake/r_shared.h"
  4576.  
  4577. #line 20 "Develop:CC/Projects/Games/Quake/r_shared.h"
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603. extern void R_DrawLine (polyvert_t *polyvert0, polyvert_t *polyvert1);
  4604.  
  4605. extern int    cachewidth;
  4606. extern pixel_t  *cacheblock;
  4607. extern int    screenwidth;
  4608.  
  4609. extern  float pixelAspect;
  4610.  
  4611. extern int    r_drawnpolycount;
  4612.  
  4613. extern cvar_t r_clearcolor;
  4614.  
  4615. extern int  sintable[(((1024 > 1280) ? 1024 : 1280)+ 128)];
  4616. extern int  intsintable[(((1024 > 1280) ? 1024 : 1280)+ 128)];
  4617.  
  4618. extern  vec3_t  vup, base_vup;
  4619. extern  vec3_t  vpn, base_vpn;
  4620. extern  vec3_t  vright, base_vright;
  4621. extern  entity_t    *currententity;
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.  
  4628.  
  4629.  
  4630. typedef struct espan_s
  4631. {
  4632.   int       u, v, count;
  4633.   struct espan_s  *pnext;
  4634. } espan_t;
  4635.  
  4636.  
  4637.  
  4638. typedef struct surf_s
  4639. {
  4640.   struct surf_s *next;
  4641.   struct surf_s *prev;
  4642.   struct espan_s  *spans;
  4643.   int     key;
  4644.   int     last_u;
  4645.   int     spanstate;
  4646.  
  4647.  
  4648.  
  4649.   int     flags;
  4650.   void    *data;
  4651.   entity_t  *entity;
  4652.   float   nearzi;
  4653.   qboolean  insubmodel;
  4654.   float   d_ziorigin, d_zistepu, d_zistepv;
  4655.  
  4656.   int     pad[2];
  4657. } surf_t;
  4658.  
  4659. extern  surf_t  *surfaces, *surface_p, *surf_max;
  4660.  
  4661.  
  4662.  
  4663.  
  4664.  
  4665.  
  4666.  
  4667.  
  4668.  
  4669. extern vec3_t sxformaxis[4];
  4670. extern vec3_t txformaxis[4];
  4671.  
  4672. extern vec3_t modelorg, base_modelorg;
  4673.  
  4674. extern  float xcenter, ycenter;
  4675. extern  float xscale, yscale;
  4676. extern  float xscaleinv, yscaleinv;
  4677. extern  float xscaleshrink, yscaleshrink;
  4678.  
  4679. extern  int d_lightstylevalue[256];
  4680.  
  4681. extern void TransformVector (vec3_t in, vec3_t out);
  4682. extern void SetUpForLineScan(fixed8_t startvertu, fixed8_t startvertv,
  4683.   fixed8_t endvertu, fixed8_t endvertv);
  4684.  
  4685. extern int  r_skymade;
  4686. extern void R_MakeSky (void);
  4687.  
  4688. extern int  ubasestep, errorterm, erroradjustup, erroradjustdown;
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.  
  4700.  
  4701.  
  4702. typedef struct edge_s
  4703. {
  4704.   fixed16_t   u;
  4705.   fixed16_t   u_step;
  4706.   struct edge_s *prev, *next;
  4707.   unsigned short  surfs[2];
  4708.   struct edge_s *nextremove;
  4709.   float     nearzi;
  4710.   medge_t     *owner;
  4711. } edge_t;
  4712.  
  4713.  
  4714.  
  4715.  
  4716. #line 23 "Develop:CC/Projects/Games/Quake/d_local.h"
  4717.  
  4718.  
  4719.  
  4720.  
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.  
  4729.  
  4730.  
  4731.  
  4732.  
  4733.  
  4734. typedef struct surfcache_s
  4735. {
  4736.   struct surfcache_s  *next;
  4737.   struct surfcache_s  **owner;
  4738.   int         lightadj[4];
  4739.   int         dlight;
  4740.   int         size;
  4741.   unsigned      width;
  4742.   unsigned      height;
  4743.   float       mipscale;
  4744.   struct texture_s  *texture;
  4745.   byte        data[4];
  4746. } surfcache_t;
  4747.  
  4748.  
  4749. typedef struct sspan_s
  4750. {
  4751.   int       u, v, count;
  4752. } sspan_t;
  4753.  
  4754. extern cvar_t d_subdiv16;
  4755.  
  4756. extern float  scale_for_mip;
  4757.  
  4758. extern qboolean   d_roverwrapped;
  4759. extern surfcache_t  *sc_rover;
  4760. extern surfcache_t  *d_initial_rover;
  4761.  
  4762. extern float  d_sdivzstepu, d_tdivzstepu, d_zistepu;
  4763. extern float  d_sdivzstepv, d_tdivzstepv, d_zistepv;
  4764. extern float  d_sdivzorigin, d_tdivzorigin, d_ziorigin;
  4765.  
  4766.  
  4767. extern fixed16_t sadjust, tadjust;
  4768. extern fixed16_t bbextents, bbextentt;
  4769.  
  4770.  
  4771. void D_DrawSpans8 (espan_t *pspans);
  4772. void D_DrawSpans16 (espan_t *pspans);
  4773. void D_DrawZSpans (espan_t *pspans);
  4774. void Turbulent8 (espan_t *pspan);
  4775. void D_SpriteDrawSpans (sspan_t *pspan);
  4776.  
  4777. void D_DrawSkyScans8 (espan_t *pspan);
  4778. void D_DrawSkyScans16 (espan_t *pspan);
  4779.  
  4780. void R_ShowSubDiv (void);
  4781.  
  4782. surfcache_t *D_CacheSurface (msurface_t *surface, int miplevel);
  4783.  
  4784. extern int D_MipLevelForScale (float scale);
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791. extern short *d_pzbuffer;
  4792. extern unsigned int d_zrowbytes, d_zwidth;
  4793.  
  4794. extern int  *d_pscantable;
  4795. extern int  d_scantable[1024];
  4796.  
  4797. extern int  d_vrectx, d_vrecty, d_vrectright_particle, d_vrectbottom_particle;
  4798.  
  4799. extern int  d_y_aspect_shift, d_pix_min, d_pix_max, d_pix_shift;
  4800.  
  4801. extern pixel_t  *d_viewbuffer;
  4802.  
  4803. extern short  *zspantable[1024];
  4804.  
  4805. extern int    d_minmip;
  4806. extern float  d_scalemip[3];
  4807.  
  4808. extern void (*d_drawspans) (espan_t *pspan);
  4809.  
  4810. #line 3 "Develop:CC/Projects/Games/Quake/d_edge.c"
  4811.  
  4812. static int  miplevel;
  4813.  
  4814. float   scale_for_mip;
  4815. int     screenwidth;
  4816. int     ubasestep, errorterm, erroradjustup, erroradjustdown;
  4817. int     vstartscan;
  4818.  
  4819.  
  4820. extern void     R_RotateBmodel (void);
  4821. extern void     R_TransformFrustum (void);
  4822.  
  4823. vec3_t    transformed_modelorg;
  4824.  
  4825.  
  4826. void D_CalcGradients (msurface_t *pface)
  4827. {
  4828.   mplane_t  *pplane;
  4829.   float   mipscale;
  4830.   vec3_t    p_temp1;
  4831.   vec3_t    p_saxis, p_taxis;
  4832.   float   t;
  4833.  
  4834.   pplane = pface->plane;
  4835.  
  4836.   mipscale = 1.0 / (float)(1 << miplevel);
  4837.  
  4838.   TransformVector (pface->texinfo->vecs[0], p_saxis);
  4839.   TransformVector (pface->texinfo->vecs[1], p_taxis);
  4840.  
  4841.   t = xscaleinv * mipscale;
  4842.   d_sdivzstepu = p_saxis[0] * t;
  4843.   d_tdivzstepu = p_taxis[0] * t;
  4844.  
  4845.   t = yscaleinv * mipscale;
  4846.   d_sdivzstepv = -p_saxis[1] * t;
  4847.   d_tdivzstepv = -p_taxis[1] * t;
  4848.  
  4849.   d_sdivzorigin = p_saxis[2] * mipscale - xcenter * d_sdivzstepu -
  4850.       ycenter * d_sdivzstepv;
  4851.   d_tdivzorigin = p_taxis[2] * mipscale - xcenter * d_tdivzstepu -
  4852.       ycenter * d_tdivzstepv;
  4853.  
  4854.   VectorScale (transformed_modelorg, mipscale, p_temp1);
  4855.  
  4856.   t = 0x10000*mipscale;
  4857.   sadjust = ((fixed16_t)((p_temp1[0]* p_saxis[0]+ p_temp1[1]* p_saxis[1]+ p_temp1[2]* p_saxis[2]) * 0x10000 + 0.5)) -
  4858.       ((pface->texturemins[0] << 16) >> miplevel)
  4859.       + pface->texinfo->vecs[0][3]*t;
  4860.   tadjust = ((fixed16_t)((p_temp1[0]* p_taxis[0]+ p_temp1[1]* p_taxis[1]+ p_temp1[2]* p_taxis[2]) * 0x10000 + 0.5)) -
  4861.       ((pface->texturemins[1] << 16) >> miplevel)
  4862.       + pface->texinfo->vecs[1][3]*t;
  4863.  
  4864.  
  4865.  
  4866.  
  4867.   bbextents = ((pface->extents[0] << 16) >> miplevel) - 1;
  4868.   bbextentt = ((pface->extents[1] << 16) >> miplevel) - 1;
  4869. }
  4870.  
  4871.  
  4872. void D_DrawSurfaces (void)
  4873. {
  4874.   surf_t      *s;
  4875.   msurface_t    *pface;
  4876.   surfcache_t   *pcurrentcache;
  4877.   vec3_t      world_transformed_modelorg;
  4878.   vec3_t      local_modelorg;
  4879.  
  4880.   currententity = &cl_entities[0];
  4881.   TransformVector (modelorg, transformed_modelorg);
  4882. {world_transformed_modelorg[0]= transformed_modelorg[0];world_transformed_modelorg[1]= transformed_modelorg[1];world_transformed_modelorg[2]= transformed_modelorg[2];};
  4883.  
  4884.  
  4885.   if (r_drawflat.value)
  4886.   {
  4887.     for (s = &surfaces[1] ; s<surface_p ; s++)
  4888.     {
  4889.       if (!s->spans)
  4890.         continue;
  4891.  
  4892.       d_zistepu = s->d_zistepu;
  4893.       d_zistepv = s->d_zistepv;
  4894.       d_ziorigin = s->d_ziorigin;
  4895.  
  4896.       D_DrawSolidSurface (s, (int)s->data & 0xFF);
  4897.       D_DrawZSpans (s->spans);
  4898.     }
  4899.   }
  4900.   else
  4901.   {
  4902.     for (s = &surfaces[1] ; s<surface_p ; s++)
  4903.     {
  4904.       if (!s->spans)
  4905.         continue;
  4906.  
  4907.       r_drawnpolycount++;
  4908.  
  4909.       d_zistepu = s->d_zistepu;
  4910.       d_zistepv = s->d_zistepv;
  4911.       d_ziorigin = s->d_ziorigin;
  4912.  
  4913.       if (s->flags & 4)
  4914.       {
  4915.         if (!r_skymade)
  4916.         {
  4917.           R_MakeSky ();
  4918.         }
  4919.  
  4920.         D_DrawSkyScans8 (s->spans);
  4921.         D_DrawZSpans (s->spans);
  4922.       }
  4923.       else if (s->flags & 0x40)
  4924.       {
  4925.  
  4926.  
  4927.         d_zistepu = 0;
  4928.         d_zistepv = 0;
  4929.         d_ziorigin = -0.9;
  4930.  
  4931.         D_DrawSolidSurface (s, (int)r_clearcolor.value & 0xFF);
  4932.         D_DrawZSpans (s->spans);
  4933.       }
  4934.       else if (s->flags & 0x10)
  4935.       {
  4936.         pface = s->data;
  4937.         miplevel = 0;
  4938.         cacheblock = (pixel_t *)
  4939.             ((byte *)pface->texinfo->texture +
  4940.             pface->texinfo->texture->offsets[0]);
  4941.         cachewidth = 64;
  4942.  
  4943.         if (s->insubmodel)
  4944.         {
  4945.  
  4946.  
  4947.           currententity = s->entity;
  4948.  
  4949. {local_modelorg[0]= r_origin[0]- currententity->origin[0];local_modelorg[1]= r_origin[1]- currententity->origin[1];local_modelorg[2]= r_origin[2]- currententity->origin[2];};
  4950. #line 143 "Develop:CC/Projects/Games/Quake/d_edge.c"
  4951.           TransformVector (local_modelorg, transformed_modelorg);
  4952.  
  4953.           R_RotateBmodel ();
  4954.  
  4955.         }
  4956.  
  4957.         D_CalcGradients (pface);
  4958.         Turbulent8 (s->spans);
  4959.         D_DrawZSpans (s->spans);
  4960.  
  4961.         if (s->insubmodel)
  4962.         {
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.           currententity = &cl_entities[0];
  4969. {transformed_modelorg[0]= world_transformed_modelorg[0];transformed_modelorg[1]= world_transformed_modelorg[1];transformed_modelorg[2]= world_transformed_modelorg[2];};
  4970. #line 163 "Develop:CC/Projects/Games/Quake/d_edge.c"
  4971. {vpn[0]= base_vpn[0];vpn[1]= base_vpn[1];vpn[2]= base_vpn[2];};
  4972. {vup[0]= base_vup[0];vup[1]= base_vup[1];vup[2]= base_vup[2];};
  4973. {vright[0]= base_vright[0];vright[1]= base_vright[1];vright[2]= base_vright[2];};
  4974. {modelorg[0]= base_modelorg[0];modelorg[1]= base_modelorg[1];modelorg[2]= base_modelorg[2];};
  4975.           R_TransformFrustum ();
  4976.         }
  4977.       }
  4978.       else
  4979.       {
  4980.         if (s->insubmodel)
  4981.         {
  4982.  
  4983.  
  4984.           currententity = s->entity;
  4985.  
  4986. {local_modelorg[0]= r_origin[0]- currententity->origin[0];local_modelorg[1]= r_origin[1]- currententity->origin[1];local_modelorg[2]= r_origin[2]- currententity->origin[2];};
  4987.           TransformVector (local_modelorg, transformed_modelorg);
  4988.  
  4989.           R_RotateBmodel ();
  4990.  
  4991.         }
  4992.  
  4993.         pface = s->data;
  4994.         miplevel = D_MipLevelForScale (s->nearzi * scale_for_mip
  4995.         * pface->texinfo->mipadjust);
  4996.  
  4997.  
  4998.         pcurrentcache = D_CacheSurface (pface, miplevel);
  4999.  
  5000.         cacheblock = (pixel_t *)pcurrentcache->data;
  5001.         cachewidth = pcurrentcache->width;
  5002.  
  5003.         D_CalcGradients (pface);
  5004.  
  5005.         (*d_drawspans) (s->spans);
  5006.  
  5007.         D_DrawZSpans (s->spans);
  5008.  
  5009.         if (s->insubmodel)
  5010.         {
  5011.  
  5012.  
  5013.  
  5014.  
  5015.  
  5016.           currententity = &cl_entities[0];
  5017. {transformed_modelorg[0]= world_transformed_modelorg[0];transformed_modelorg[1]= world_transformed_modelorg[1];transformed_modelorg[2]= world_transformed_modelorg[2];};
  5018. #line 211 "Develop:CC/Projects/Games/Quake/d_edge.c"
  5019. {vpn[0]= base_vpn[0];vpn[1]= base_vpn[1];vpn[2]= base_vpn[2];};
  5020. {vup[0]= base_vup[0];vup[1]= base_vup[1];vup[2]= base_vup[2];};
  5021. {vright[0]= base_vright[0];vright[1]= base_vright[1];vright[2]= base_vright[2];};
  5022. {modelorg[0]= base_modelorg[0];modelorg[1]= base_modelorg[1];modelorg[2]= base_modelorg[2];};
  5023.           R_TransformFrustum ();
  5024.         }
  5025.       }
  5026.     }
  5027.   }
  5028. }
  5029.