#include "quakedef.h"
#include "cl_video.h"
#include "jpeg.h"
+#include "cl_collision.h"
cvar_t scr_viewsize = {CVAR_SAVE, "viewsize","100"};
cvar_t scr_fov = {CVAR_SAVE, "fov","90"}; // 10 - 170
cvar_t scr_conspeed = {CVAR_SAVE, "scr_conspeed","900"}; // LordHavoc: quake used 300
cvar_t scr_conalpha = {CVAR_SAVE, "scr_conalpha", "1"};
-cvar_t scr_conbrightness = {CVAR_SAVE, "scr_conbrightness", "0"};
+cvar_t scr_conbrightness = {CVAR_SAVE, "scr_conbrightness", "0.2"};
cvar_t scr_centertime = {0, "scr_centertime","2"};
cvar_t scr_showram = {CVAR_SAVE, "showram","1"};
cvar_t scr_showturtle = {CVAR_SAVE, "showturtle","0"};
cvar_t scr_showpause = {CVAR_SAVE, "showpause","1"};
cvar_t scr_printspeed = {0, "scr_printspeed","8"};
-cvar_t scr_2dresolution = {CVAR_SAVE, "scr_2dresolution", "1"};
+cvar_t vid_conwidth = {CVAR_SAVE, "vid_conwidth", "640"};
+cvar_t vid_conheight = {CVAR_SAVE, "vid_conheight", "480"};
cvar_t scr_screenshot_jpeg = {CVAR_SAVE, "scr_screenshot_jpeg","0"};
cvar_t cl_avidemo = {0, "cl_avidemo", "0"};
*/
void SCR_CenterPrint (char *str)
{
- strncpy (scr_centerstring, str, sizeof(scr_centerstring)-1);
+ strlcpy (scr_centerstring, str, sizeof (scr_centerstring));
scr_centertime_off = scr_centertime.value;
scr_centertime_start = cl.time;
Cvar_RegisterVariable (&scr_showpause);
Cvar_RegisterVariable (&scr_centertime);
Cvar_RegisterVariable (&scr_printspeed);
- Cvar_RegisterVariable (&scr_2dresolution);
+ Cvar_RegisterVariable (&vid_conwidth);
+ Cvar_RegisterVariable (&vid_conheight);
Cvar_RegisterVariable (&scr_screenshot_jpeg);
Cvar_RegisterVariable (&cl_avidemo);
height = pic->height;
mesh.texture = pic->tex;
}
- mesh.numtriangles = 2;
- mesh.numvertices = 4;
- mesh.element3i = picelements;
- mesh.vertex3f = floats;
- mesh.texcoord2f = floats + 12;
- mesh.color4f = floats + 20;
+ mesh.num_triangles = 2;
+ mesh.num_vertices = 4;
+ mesh.data_element3i = picelements;
+ mesh.data_vertex3f = floats;
+ mesh.data_texcoord2f = floats + 12;
+ mesh.data_color4f = floats + 20;
memset(floats, 0, sizeof(floats));
- mesh.vertex3f[0] = mesh.vertex3f[9] = x;
- mesh.vertex3f[1] = mesh.vertex3f[4] = y;
- mesh.vertex3f[3] = mesh.vertex3f[6] = x + width;
- mesh.vertex3f[7] = mesh.vertex3f[10] = y + height;
- mesh.texcoord2f[0] = s1;mesh.texcoord2f[1] = t1;mesh.color4f[ 0] = r1;mesh.color4f[ 1] = g1;mesh.color4f[ 2] = b1;mesh.color4f[ 3] = a1;
- mesh.texcoord2f[2] = s2;mesh.texcoord2f[3] = t2;mesh.color4f[ 4] = r2;mesh.color4f[ 5] = g2;mesh.color4f[ 6] = b2;mesh.color4f[ 7] = a2;
- mesh.texcoord2f[4] = s4;mesh.texcoord2f[5] = t4;mesh.color4f[ 8] = r4;mesh.color4f[ 9] = g4;mesh.color4f[10] = b4;mesh.color4f[11] = a4;
- mesh.texcoord2f[6] = s3;mesh.texcoord2f[7] = t3;mesh.color4f[12] = r3;mesh.color4f[13] = g3;mesh.color4f[14] = b3;mesh.color4f[15] = a3;
+ mesh.data_vertex3f[0] = mesh.data_vertex3f[9] = x;
+ mesh.data_vertex3f[1] = mesh.data_vertex3f[4] = y;
+ mesh.data_vertex3f[3] = mesh.data_vertex3f[6] = x + width;
+ mesh.data_vertex3f[7] = mesh.data_vertex3f[10] = y + height;
+ mesh.data_texcoord2f[0] = s1;mesh.data_texcoord2f[1] = t1;mesh.data_color4f[ 0] = r1;mesh.data_color4f[ 1] = g1;mesh.data_color4f[ 2] = b1;mesh.data_color4f[ 3] = a1;
+ mesh.data_texcoord2f[2] = s2;mesh.data_texcoord2f[3] = t2;mesh.data_color4f[ 4] = r2;mesh.data_color4f[ 5] = g2;mesh.data_color4f[ 6] = b2;mesh.data_color4f[ 7] = a2;
+ mesh.data_texcoord2f[4] = s4;mesh.data_texcoord2f[5] = t4;mesh.data_color4f[ 8] = r4;mesh.data_color4f[ 9] = g4;mesh.data_color4f[10] = b4;mesh.data_color4f[11] = a4;
+ mesh.data_texcoord2f[6] = s3;mesh.data_texcoord2f[7] = t3;mesh.data_color4f[12] = r3;mesh.data_color4f[13] = g3;mesh.data_color4f[14] = b3;mesh.data_color4f[15] = a3;
DrawQ_Mesh (&mesh, flags);
}
drawqueuemesh_t *m;
size = sizeof(*dq);
size += sizeof(drawqueuemesh_t);
- size += sizeof(int[3]) * mesh->numtriangles;
- size += sizeof(float[3]) * mesh->numvertices;
- size += sizeof(float[2]) * mesh->numvertices;
- size += sizeof(float[4]) * mesh->numvertices;
+ size += sizeof(int[3]) * mesh->num_triangles;
+ size += sizeof(float[3]) * mesh->num_vertices;
+ size += sizeof(float[2]) * mesh->num_vertices;
+ size += sizeof(float[4]) * mesh->num_vertices;
if (r_refdef.drawqueuesize + size > r_refdef.maxdrawqueuesize)
return;
dq = (void *)(r_refdef.drawqueue + r_refdef.drawqueuesize);
dq->scaley = 0;
p = (void *)(dq + 1);
m = p;(qbyte *)p += sizeof(drawqueuemesh_t);
- m->numtriangles = mesh->numtriangles;
- m->numvertices = mesh->numvertices;
+ m->num_triangles = mesh->num_triangles;
+ m->num_vertices = mesh->num_vertices;
m->texture = mesh->texture;
- m->element3i = p;memcpy(m->element3i , mesh->element3i , m->numtriangles * sizeof(int[3]));(qbyte *)p += m->numtriangles * sizeof(int[3]);
- m->vertex3f = p;memcpy(m->vertex3f , mesh->vertex3f , m->numvertices * sizeof(float[3]));(qbyte *)p += m->numvertices * sizeof(float[3]);
- m->texcoord2f = p;memcpy(m->texcoord2f, mesh->texcoord2f, m->numvertices * sizeof(float[2]));(qbyte *)p += m->numvertices * sizeof(float[2]);
- m->color4f = p;memcpy(m->color4f , mesh->color4f , m->numvertices * sizeof(float[4]));(qbyte *)p += m->numvertices * sizeof(float[4]);
+ m->data_element3i = p;memcpy(m->data_element3i , mesh->data_element3i , m->num_triangles * sizeof(int[3]));(qbyte *)p += m->num_triangles * sizeof(int[3]);
+ m->data_vertex3f = p;memcpy(m->data_vertex3f , mesh->data_vertex3f , m->num_vertices * sizeof(float[3]));(qbyte *)p += m->num_vertices * sizeof(float[3]);
+ m->data_texcoord2f = p;memcpy(m->data_texcoord2f, mesh->data_texcoord2f, m->num_vertices * sizeof(float[2]));(qbyte *)p += m->num_vertices * sizeof(float[2]);
+ m->data_color4f = p;memcpy(m->data_color4f , mesh->data_color4f , m->num_vertices * sizeof(float[4]));(qbyte *)p += m->num_vertices * sizeof(float[4]);
r_refdef.drawqueuesize += dq->size;
}
if (cl.worldmodel)
{
Mod_CheckLoaded(cl.worldmodel);
- contents = cl.worldmodel ? cl.worldmodel->PointContents(cl.worldmodel, r_refdef.vieworg) : CONTENTS_EMPTY;
- if (contents != CONTENTS_EMPTY && contents != CONTENTS_SOLID)
+ contents = CL_PointSuperContents(r_refdef.vieworg);
+ if (contents & SUPERCONTENTS_LIQUIDSMASK)
{
r_refdef.fov_x *= (sin(cl.time * 4.7) * 0.015 + 0.985);
r_refdef.fov_y *= (sin(cl.time * 3.0) * 0.015 + 0.985);
void SCR_CaptureAVIDemo(void)
{
char filename[32];
- sprintf(filename, "dpavi%06d.tga", cl_avidemo_frame);
- if (SCR_ScreenShot(filename, vid.realx, vid.realy, vid.realwidth, vid.realheight, false))
+ qboolean jpeg = (scr_screenshot_jpeg.integer != 0);
+
+ if (jpeg)
+ sprintf(filename, "dpavi%06d.jpg", cl_avidemo_frame);
+ else
+ sprintf(filename, "dpavi%06d.tga", cl_avidemo_frame);
+
+ if (SCR_ScreenShot(filename, vid.realx, vid.realy, vid.realwidth, vid.realheight, jpeg))
cl_avidemo_frame++;
else
{
return;
}
- strcpy(basename, Cmd_Argv(1));
+ strlcpy (basename, Cmd_Argv(1), sizeof (basename));
size = atoi(Cmd_Argv(2));
if (size != 128 && size != 256 && size != 512 && size != 1024)
{
int i, k;
qbyte lmplabel[256], picname[256];
float x, y;
- strcpy(lmplabel,MSG_ReadString());
- strcpy(picname, MSG_ReadString());
+ strlcpy (lmplabel,MSG_ReadString(), sizeof (lmplabel));
+ strlcpy (picname, MSG_ReadString(), sizeof (picname));
if (gamemode == GAME_NEHAHRA) // LordHavoc: nasty old legacy junk
{
x = MSG_ReadByte();
return; // none found to replace
// change existing one
showlmp[k].isactive = true;
- strcpy(showlmp[k].label, lmplabel);
- strcpy(showlmp[k].pic, picname);
+ strlcpy (showlmp[k].label, lmplabel, sizeof (showlmp[k].label));
+ strlcpy (showlmp[k].pic, picname, sizeof (showlmp[k].pic));
showlmp[k].x = x;
showlmp[k].y = y;
}
void CL_SetupScreenSize(void)
{
- static float old2dresolution = -1;
+ float conwidth, conheight;
VID_GetWindowSize (&vid.realx, &vid.realy, &vid.realwidth, &vid.realheight);
VID_UpdateGamma(false);
- if (scr_2dresolution.value != old2dresolution)
- {
- Cvar_SetValue("scr_2dresolution", bound(0.0f, scr_2dresolution.value, 1.0f));
- old2dresolution = scr_2dresolution.value;
- }
+ conwidth = bound(320, vid_conwidth.value, 2048);
+ conheight = bound(200, vid_conheight.value, 1536);
+ if (vid_conwidth.value != conwidth)
+ Cvar_SetValue("vid_conwidth", conwidth);
+ if (vid_conheight.value != conheight)
+ Cvar_SetValue("vid_conheight", conheight);
- if (vid.realwidth > 320)
- {
- vid.conwidth = (vid.realwidth - 320) * scr_2dresolution.value + 320;
- vid.conwidth = bound(320, vid.conwidth, vid.realwidth);
- }
- else
- vid.conwidth = 320;
+ vid.conwidth = vid_conwidth.integer;
+ vid.conheight = vid_conheight.integer;
- if (vid.realheight > 240)
+/* if (vid.realheight > 240)
{
vid.conheight = (vid.realheight - 240) * scr_2dresolution.value + 240;
vid.conheight = bound(240, vid.conheight, vid.realheight);
}
else
- vid.conheight = 240;
+ vid.conheight = 240;*/
SCR_SetUpToDrawConsole();
DrawQ_Clear();
- V_UpdateBlends();
- V_CalcRefdef ();
-
if (cls.signon == SIGNONS)
R_TimeReport("setup");
SHOWLMP_drawall();
SCR_CheckDrawCenterString();
}
- ui_draw();
+ MR_Draw();
CL_DrawVideo();
- M_Draw();
+ ui_draw();
if (cls.signon == SIGNONS)
{
R_TimeReport("2d");