VM_Warning(prog, "VM_CL_R_GetView : unknown parm %i\n", c);
return;
}
+ if (csqc_lowres.integer)
+ {
+ switch(c)
+ {
+ case VF_MIN: case VF_MIN_X: case VF_MIN_Y: case VF_SIZE: case VF_SIZE_X: case VF_SIZE_Y: case VF_VIEWPORT:
+ VectorScale(PRVM_G_VECTOR(OFS_RETURN), vid_conwidth.value / vid.mode.width, PRVM_G_VECTOR(OFS_RETURN));
+ }
+ }
return;
}
+ if (csqc_lowres.integer)
+ {
+ float scale = vid.mode.width / vid_conwidth.value;
+ switch(c)
+ {
+ case VF_MIN: case VF_MIN_X: case VF_MIN_Y: case VF_SIZE: case VF_SIZE_X: case VF_SIZE_Y: case VF_VIEWPORT:
+ VectorScale(PRVM_G_VECTOR(OFS_PARM1), scale, PRVM_G_VECTOR(OFS_PARM1));
+ VectorScale(PRVM_G_VECTOR(OFS_PARM2), scale, PRVM_G_VECTOR(OFS_PARM2));
+ }
+ }
f = PRVM_G_VECTOR(OFS_PARM1);
k = PRVM_G_FLOAT(OFS_PARM1);
switch(c)
i = (int)PRVM_G_FLOAT(OFS_PARM0);
if(i < 0 || i >= MAX_CL_STATS)
{
+ PRVM_G_FLOAT(OFS_RETURN) = 0;
VM_Warning(prog, "VM_CL_getstatf: index>=MAX_CL_STATS or index<0\n");
return;
}
//#331 float(float stnum) getstati (EXT_CSQC)
static void VM_CL_getstati (prvm_prog_t *prog)
{
- int i, index;
- int firstbit, bitcount;
+ int index, firstbit, bitcount;
VM_SAFEPARMCOUNTRANGE(1, 3, VM_CL_getstati);
index = (int)PRVM_G_FLOAT(OFS_PARM0);
+ if(index < 0 || index >= MAX_CL_STATS)
+ {
+ PRVM_G_FLOAT(OFS_RETURN) = 0;
+ VM_Warning(prog, "VM_CL_getstati: index>=MAX_CL_STATS or index<0\n");
+ return;
+ }
+
if (prog->argc > 1)
{
firstbit = (int)PRVM_G_FLOAT(OFS_PARM1);
bitcount = 32;
}
- if(index < 0 || index >= MAX_CL_STATS)
- {
- VM_Warning(prog, "VM_CL_getstati: index>=MAX_CL_STATS or index<0\n");
- return;
- }
- i = cl.stats[index];
- if (bitcount != 32) //32 causes the mask to overflow, so there's nothing to subtract from.
- i = (((unsigned int)i)&(((1<<bitcount)-1)<<firstbit))>>firstbit;
- PRVM_G_FLOAT(OFS_RETURN) = i;
+ if (bitcount < 32) //32 causes the mask to overflow, so there's nothing to subtract from.
+ PRVM_G_FLOAT(OFS_RETURN) = cl.stats[index]>>firstbit & ((1<<bitcount)-1);
+ else
+ PRVM_G_FLOAT(OFS_RETURN) = cl.stats[index];
}
//#332 string(float firststnum) getstats (EXT_CSQC)
if (key_consoleactive || key_dest != key_game)
VectorSet(PRVM_G_VECTOR(OFS_RETURN), 0, 0, 0);
else if (cl.csqc_wantsmousemove)
- VectorSet(PRVM_G_VECTOR(OFS_RETURN), in_windowmouse_x * vid_conwidth.integer / vid.width, in_windowmouse_y * vid_conheight.integer / vid.height, 0);
+ VectorSet(PRVM_G_VECTOR(OFS_RETURN), in_windowmouse_x * vid_conwidth.integer / vid.mode.width, in_windowmouse_y * vid_conheight.integer / vid.mode.height, 0);
else
- VectorSet(PRVM_G_VECTOR(OFS_RETURN), in_mouse_x * vid_conwidth.integer / vid.width, in_mouse_y * vid_conheight.integer / vid.height, 0);
+ VectorSet(PRVM_G_VECTOR(OFS_RETURN), in_mouse_x * vid_conwidth.integer / vid.mode.width, in_mouse_y * vid_conheight.integer / vid.mode.height, 0);
}
//#345 float(float framenum) getinputstate (EXT_CSQC)
return;
t[0] = 0;
+ t_len = 0;
if(!strcasecmp(c, "name"))
t_len = dp_strlcpy(t, cl.scores[i].name, sizeof(t));
Cmd_AddCommand(CF_CLIENT, PRVM_G_STRING(OFS_PARM0), NULL, "console command created by QuakeC");
}
-//#360 float() readbyte (EXT_CSQC)
+//#360 float() ReadByte (EXT_CSQC)
static void VM_CL_ReadByte (prvm_prog_t *prog)
{
VM_SAFEPARMCOUNT(0, VM_CL_ReadByte);
PRVM_G_FLOAT(OFS_RETURN) = MSG_ReadByte(&cl_message);
}
-//#361 float() readchar (EXT_CSQC)
+//#361 float() ReadChar (EXT_CSQC)
static void VM_CL_ReadChar (prvm_prog_t *prog)
{
VM_SAFEPARMCOUNT(0, VM_CL_ReadChar);
PRVM_G_FLOAT(OFS_RETURN) = MSG_ReadChar(&cl_message);
}
-//#362 float() readshort (EXT_CSQC)
+//#362 float() ReadShort (EXT_CSQC)
static void VM_CL_ReadShort (prvm_prog_t *prog)
{
VM_SAFEPARMCOUNT(0, VM_CL_ReadShort);
PRVM_G_FLOAT(OFS_RETURN) = MSG_ReadShort(&cl_message);
}
-//#363 float() readlong (EXT_CSQC)
+//#363 float() ReadLong (EXT_CSQC)
static void VM_CL_ReadLong (prvm_prog_t *prog)
{
VM_SAFEPARMCOUNT(0, VM_CL_ReadLong);
PRVM_G_FLOAT(OFS_RETURN) = MSG_ReadLong(&cl_message);
}
-//#364 float() readcoord (EXT_CSQC)
+//#364 float() ReadCoord (EXT_CSQC)
static void VM_CL_ReadCoord (prvm_prog_t *prog)
{
VM_SAFEPARMCOUNT(0, VM_CL_ReadCoord);
PRVM_G_FLOAT(OFS_RETURN) = MSG_ReadCoord(&cl_message, cls.protocol);
}
-//#365 float() readangle (EXT_CSQC)
+//#365 float() ReadAngle (EXT_CSQC)
static void VM_CL_ReadAngle (prvm_prog_t *prog)
{
VM_SAFEPARMCOUNT(0, VM_CL_ReadAngle);
PRVM_G_FLOAT(OFS_RETURN) = MSG_ReadAngle(&cl_message, cls.protocol);
}
-//#366 string() readstring (EXT_CSQC)
+//#366 string() ReadString (EXT_CSQC)
static void VM_CL_ReadString (prvm_prog_t *prog)
{
size_t cl_readstring_len;
PRVM_G_INT(OFS_RETURN) = PRVM_SetTempString(prog, cl_readstring, cl_readstring_len);
}
-//#367 float() readfloat (EXT_CSQC)
+//#367 float() ReadFloat (EXT_CSQC)
static void VM_CL_ReadFloat (prvm_prog_t *prog)
{
VM_SAFEPARMCOUNT(0, VM_CL_ReadFloat);
PRVM_G_FLOAT(OFS_RETURN) = MSG_ReadFloat(&cl_message);
}
-//#501 string() readpicture (DP_CSQC_READWRITEPICTURE)
+//#501 string() ReadPicture (DP_CSQC_READWRITEPICTURE)
extern cvar_t cl_readpicture_force;
static void VM_CL_ReadPicture (prvm_prog_t *prog)
{
#if 1
unsigned char *pvs;
#else
- int fatpvsbytes;
- unsigned char fatpvs[MAX_MAP_LEAFS/8];
+ unsigned char *fatpvs = NULL;
#endif
VM_SAFEPARMCOUNT(2, VM_CL_checkpvs);
PRVM_G_FLOAT(OFS_RETURN) = 3;
return;
}
- fatpvsbytes = cl.worldmodel->brush.FatPVS(cl.worldmodel, viewpos, 8, fatpvs, sizeof(fatpvs), false);
- if(!fatpvsbytes)
+ cl.worldmodel->brush.FatPVS(cl.worldmodel, viewpos, 8, &fatpvs, cls.levelmempool, false);
+ if(!fatpvs)
{
// viewpos isn't in any PVS... darn
PRVM_G_FLOAT(OFS_RETURN) = 2;
VM_fabs, // #43 float(float f) fabs (QUAKE)
NULL, // #44 vector(entity e, float speed) aim (QUAKE)
VM_cvar, // #45 float(string s) cvar (QUAKE)
-VM_localcmd_local, // #46 void(string s) localcmd (QUAKE)
+VM_localcmd, // #46 void(string s) localcmd (QUAKE)
VM_nextent, // #47 entity(entity e) nextent (QUAKE)
VM_CL_particle, // #48 void(vector o, vector d, float color, float count) particle (QUAKE)
VM_changeyaw, // #49 void() ChangeYaw (QUAKE)
VM_loadfont, // #357 float(string fontname, string fontmaps, string sizes, float slot) loadfont (DP_GFX_FONTS)
VM_CL_loadcubemap, // #358 void(string cubemapname) loadcubemap (DP_GFX_)
NULL, // #359
-VM_CL_ReadByte, // #360 float() readbyte (EXT_CSQC)
-VM_CL_ReadChar, // #361 float() readchar (EXT_CSQC)
-VM_CL_ReadShort, // #362 float() readshort (EXT_CSQC)
-VM_CL_ReadLong, // #363 float() readlong (EXT_CSQC)
-VM_CL_ReadCoord, // #364 float() readcoord (EXT_CSQC)
-VM_CL_ReadAngle, // #365 float() readangle (EXT_CSQC)
-VM_CL_ReadString, // #366 string() readstring (EXT_CSQC)
-VM_CL_ReadFloat, // #367 float() readfloat (EXT_CSQC)
+VM_CL_ReadByte, // #360 float() ReadByte (EXT_CSQC)
+VM_CL_ReadChar, // #361 float() ReadChar (EXT_CSQC)
+VM_CL_ReadShort, // #362 float() ReadShort (EXT_CSQC)
+VM_CL_ReadLong, // #363 float() ReadLong (EXT_CSQC)
+VM_CL_ReadCoord, // #364 float() ReadCoord (EXT_CSQC)
+VM_CL_ReadAngle, // #365 float() ReadAngle (EXT_CSQC)
+VM_CL_ReadString, // #366 string() ReadString (EXT_CSQC)
+VM_CL_ReadFloat, // #367 float() ReadFloat (EXT_CSQC)
NULL, // #368
NULL, // #369
NULL, // #370