X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=r_crosshairs.c;h=38e1b4c5321494b447118605c4d816b282cfe134;hb=201979c976cb28bd0971dec669b9f34302eb42f6;hp=4884f1f26b65bcd4ac837436f978d1d496a077f9;hpb=954e36ea68752dab2b2d9e80728f167a3a8454c8;p=xonotic%2Fdarkplaces.git diff --git a/r_crosshairs.c b/r_crosshairs.c index 4884f1f2..38e1b4c5 100644 --- a/r_crosshairs.c +++ b/r_crosshairs.c @@ -2,15 +2,12 @@ #include "quakedef.h" #include "cl_collision.h" -cvar_t crosshair_brightness = {CVAR_SAVE, "crosshair_brightness", "1"}; -cvar_t crosshair_alpha = {CVAR_SAVE, "crosshair_alpha", "1"}; -cvar_t crosshair_flashspeed = {CVAR_SAVE, "crosshair_flashspeed", "2"}; -cvar_t crosshair_flashrange = {CVAR_SAVE, "crosshair_flashrange", "0.1"}; -cvar_t crosshair_size = {CVAR_SAVE, "crosshair_size", "1"}; -cvar_t crosshair_static = {CVAR_SAVE, "crosshair_static", "1"}; - -// must match NUMCROSSHAIRS in gl_draw.c -#define NUMCROSSHAIRS 6 +cvar_t crosshair_brightness = {CVAR_SAVE, "crosshair_brightness", "1", "how bright the crosshair should be"}; +cvar_t crosshair_alpha = {CVAR_SAVE, "crosshair_alpha", "1", "how opaque the crosshair should be"}; +cvar_t crosshair_flashspeed = {CVAR_SAVE, "crosshair_flashspeed", "2", "speed at which the crosshair flashes"}; +cvar_t crosshair_flashrange = {CVAR_SAVE, "crosshair_flashrange", "0.1", "how much the crosshair flashes"}; +cvar_t crosshair_size = {CVAR_SAVE, "crosshair_size", "1", "adjusts size of the crosshair on the screen"}; +cvar_t crosshair_static = {CVAR_SAVE, "crosshair_static", "1", "if 1 the crosshair is a 2D overlay, if 0 it is a sprite in the world indicating where your weapon will hit in standard quake mods (if the mod has the weapon somewhere else this won't be accurate)"}; void R_Crosshairs_Init(void) { @@ -70,15 +67,15 @@ void R_DrawWorldCrosshair(void) num = crosshair.integer; if (num < 1 || num > NUMCROSSHAIRS || cl.intermission) return; - if (!cl.viewentity || !cl_entities[cl.viewentity].state_current.active) + if (!cl.viewentity || !cl.entities[cl.viewentity].state_current.active) return; - pic = Draw_CachePic(va("gfx/crosshair%i", num), true); + pic = r_crosshairs[num]; if (!pic) return; R_GetCrosshairColor(color); // trace the shot path up to a certain distance - VectorCopy(cl_entities[cl.viewentity].render.origin, v1); + Matrix4x4_OriginFromMatrix(&cl.entities[cl.viewentity].render.matrix, v1); v1[2] += 16; // HACK: this depends on the QC // get the forward vector for the gun (not the view) @@ -105,13 +102,13 @@ void R_Draw2DCrosshair(void) num = crosshair.integer; if (num < 1 || num > NUMCROSSHAIRS || cl.intermission) return; - if (!cl.viewentity || !cl_entities[cl.viewentity].state_current.active) + if (!cl.viewentity || !cl.entities[cl.viewentity].state_current.active) return; - pic = Draw_CachePic(va("gfx/crosshair%i", num), true); + pic = r_crosshairs[num]; if (pic) { R_GetCrosshairColor(color); - DrawQ_Pic((vid_conwidth.integer - pic->width * crosshair_size.value) * 0.5f, (vid_conheight.integer - pic->height * crosshair_size.value) * 0.5f, pic->name, pic->width * crosshair_size.value, pic->height * crosshair_size.value, color[0], color[1], color[2], color[3], 0); + DrawQ_Pic((vid_conwidth.integer - pic->width * crosshair_size.value) * 0.5f, (vid_conheight.integer - pic->height * crosshair_size.value) * 0.5f, pic, pic->width * crosshair_size.value, pic->height * crosshair_size.value, color[0], color[1], color[2], color[3], 0); } }