1 #include "fmod/fmod.h"
2 
3 
4 #define NEH_VERSION        3.04
5 
6 // System types
7 #define TYPE_GAME          1
8 #define TYPE_DEMO          0
9 #define TYPE_BOTH          2
10 
11 extern int NehGameType, midasplaying;
12 
13 // CVars
14 extern  cvar_t   r_waterripple, gl_notrans, gl_rsmoke, nospr32;
15 extern  cvar_t   r_interpolate_model_animation, r_interpolate_model_transform, slowmo;
16 extern  cvar_t   gl_fogenable, gl_fogdisable, gl_fogdensity, gl_fogred, gl_foggreen, gl_fogblue;
17 extern  cvar_t   gl_skyclip, gl_skyfix;
18 extern  cvar_t   gl_glows, tweak, modvolume;
19 extern	qboolean gl_do_skyfix;
20 
21 // Graphical Junk
22 extern  float   model_alpha;
23 extern  int     smoketexture, DoFullbright, num_sfx;
24 
25 // Evaluation Shortcuts
26 extern int eval_gravity, eval_items2, eval_alpha, eval_fullbright;
27 extern int eval_idealpitch, eval_pitch_speed;
28 
29 
30 // Sound Stuff
31 #define MAX_SFX 1024
32 extern sfx_t    *known_sfx;
33 extern int      num_sfx, num_sfxorig;
34 
35 
36 
37 // Speed improvement :)
38 #define GETEDICTFIELDVALUE(ed, fieldoffset) (fieldoffset ? (eval_t*)((char*)&ed->v + fieldoffset) : NULL)
39 #define bound(min,num,max) (num >= min ? (num < max ? num : max) : min)
40 #define PlaneDist(point,plane) ((plane)->type < 3 ? (point)[(plane)->type] : DotProduct((point), (plane)->normal))
41 #define PlaneDiff(point,plane) ((plane)->type < 3 ? (point)[(plane)->type] - (plane)->dist : DotProduct((point), (plane)->normal) - (plane)->dist)
42 
43 int MSG_ReadChar (void);
44 int MSG_ReadByte (void);
45 float MSG_ReadAngle (void);
46 float MSG_ReadCoord (void);
47 
48 //#define MSG_ReadChar() (msg_readcount >= net_message.cursize ? (msg_badread = true, -1) : (signed char)net_message.data[msg_readcount++])
49 //#define MSG_ReadByte() (msg_readcount >= net_message.cursize ? (msg_badread = true, -1) : (unsigned char)net_message.data[msg_readcount++])
50 //#define MSG_ReadAngle() (MSG_ReadChar() * (360.0f / 256.0f))
51 //#define MSG_ReadCoord() (MSG_ReadShort() * 0.125f)
52 
53 
54 // Various function prototypes
55 void MOD_SetVolume_f (void);
56 void Neh_Init(void);
57 void Neh_BeginFrame(void);
58 void Neh_EndFrame(void);
59 void SHOWLMP_drawall();
60 void SHOWLMP_clear();
61 void SHOWLMP_decodehide();
62 void SHOWLMP_decodeshow();
63 void R_SparkShower (vec3_t org, vec3_t dir, int count, int type);
64 
65 int COM_FindOnly(char *filename);
66 float VectorNormalizeLength (vec3_t v);         // returns vector length
67 
68 // Network Protocol Stuff
69 #define U_TRANS        (1<<15)
70 #define	svc_showlmp			35		// [string] slotname [string] lmpfilename [coord] x [coord] y
71 #define	svc_hidelmp			36		// [string] slotname
72 #define	svc_skybox			37		// [string] skyname
73 
74 #define svc_skyboxsize                  50              // [coord] size (default is 4096)
75 #define svc_fog				51		// [byte] enable <optional past this point, only included if enable is true> [float] density [byte] red [byte] green [byte] blue
76 
77 
78 #define TE_EXPLOSION3           16
79 #define TE_LIGHTNING4           17
80 #define TE_SMOKE                18
81 #define TE_NEW1                 19
82 #define TE_NEW2                 20
83 
84 #define EF_NODRAW                               16
85 #define EF_BLUE					64
86 #define EF_RED					128
87