Fix a crash on Doombringer duel5.bsp where one of the lights has more than 32768...
[xonotic/darkplaces.git] / csprogs.h
index 958cfec..bb05e38 100644 (file)
--- a/csprogs.h
+++ b/csprogs.h
 #define VF_CL_VIEWANGLES_Y     35      //(float)
 #define VF_CL_VIEWANGLES_Z     36      //(float)
 
+// FTEQW's extension range
 #define VF_PERSPECTIVE         200 //(float)
+
+// what is this doing here? This is a DP extension introduced by Black, should be in 4xx range
 #define VF_CLEARSCREEN         201 //(float)
 
+// what is this doing here? This is a DP extension introduced by VorteX, should be in 4xx range
 #define VF_FOG_DENSITY         202 //(float)
 #define VF_FOG_COLOR           203 //(vector)
 #define VF_FOG_COLOR_R         204 //(float)
 #define VF_FOG_END             209 //(float)
 #define VF_FOG_HEIGHT          210 //(float)
 #define VF_FOG_FADEDEPTH       211 //(float)
-#define VF_MAINVIEW            212 //(float)
-#define VF_MINFPS_QUALITY      213 //(float)
+
+// DP's extension range
+#define VF_MAINVIEW            400 //(float)
+#define VF_MINFPS_QUALITY      401 //(float)
 
 #define RF_VIEWMODEL           1       // The entity is never drawn in mirrors. In engines with realtime lighting, it casts no shadows.
 #define RF_EXTERNALMODEL       2       // The entity is appears in mirrors but not in the normal view. It does still cast shadows in engines with realtime lighting.
@@ -62,6 +68,7 @@
 #define RF_USETRANSPARENTOFFSET 64   // Allows QC to customize origin used for transparent sorting via transparent_origin global, helps to fix transparent sorting bugs on a very large entities
 #define RF_WORLDOBJECT          128  // for large outdoor entities that should not be culled
 #define RF_MODELLIGHT           4096 // CSQC-set model light
+#define RF_DYNAMICMODELLIGHT    8192 // origin-dependent model light
 
 #define RF_FULLBRIGHT                  256
 #define RF_NOSHADOW                            512
@@ -82,7 +89,7 @@ void CL_VM_Init(void);
 void CL_VM_ShutDown(void);
 void CL_VM_UpdateIntermissionState(int intermission);
 void CL_VM_UpdateShowingScoresState(int showingscores);
-qboolean CL_VM_InputEvent(int eventtype, int x, int y);
+qboolean CL_VM_InputEvent(int eventtype, float x, float y);
 qboolean CL_VM_ConsoleCommand(const char *cmd);
 void CL_VM_UpdateDmgGlobals(int dmg_take, int dmg_save, vec3_t dmg_origin);
 void CL_VM_UpdateIntermissionState(int intermission);
@@ -91,10 +98,8 @@ qboolean CL_VM_Parse_TempEntity(void);
 void CL_VM_Parse_StuffCmd(const char *msg);
 void CL_VM_Parse_CenterPrint(const char *msg);
 int CL_GetPitchSign(prvm_prog_t *prog, prvm_edict_t *ent);
-int CL_GetTagMatrix(prvm_prog_t *prog, matrix4x4_t *out, prvm_edict_t *ent, int tagindex);
+int CL_GetTagMatrix(prvm_prog_t *prog, matrix4x4_t *out, prvm_edict_t *ent, int tagindex, prvm_vec_t *shadingorigin);
 void CL_GetEntityMatrix(prvm_prog_t *prog, prvm_edict_t *ent, matrix4x4_t *out, qboolean viewmatrix);
-/* VMs exposing the polygon calls must call this on Init/Reset */
-void VM_Polygons_Reset(prvm_prog_t *prog);
 void QW_CL_StartUpload(unsigned char *data, int size);
 
 void CSQC_UpdateNetworkTimes(double newtime, double oldtime);