From 81139a5c1d8876d8b8d8a8c095fa248270c6c1b7 Mon Sep 17 00:00:00 2001 From: havoc Date: Wed, 12 May 2004 16:55:42 +0000 Subject: [PATCH] Tomaz's patch for r_waterwarp with controllable intensity git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4145 d7cf8633-e32d-0410-b094-e92efae38249 --- gl_backend.c | 19 ++++++++++++------- menu.c | 4 +++- render.h | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/gl_backend.c b/gl_backend.c index f201d839..9ea11dea 100644 --- a/gl_backend.c +++ b/gl_backend.c @@ -12,6 +12,7 @@ cvar_t gl_paranoid = {0, "gl_paranoid", "0"}; cvar_t gl_printcheckerror = {0, "gl_printcheckerror", "0"}; cvar_t r_render = {0, "r_render", "1"}; +cvar_t r_waterwarp = {CVAR_SAVE, "r_waterwarp", "1"}; cvar_t gl_dither = {CVAR_SAVE, "gl_dither", "1"}; // whether or not to use dithering cvar_t gl_lockarrays = {0, "gl_lockarrays", "1"}; @@ -204,6 +205,7 @@ void gl_backend_init(void) } Cvar_RegisterVariable(&r_render); + Cvar_RegisterVariable(&r_waterwarp); Cvar_RegisterVariable(&gl_dither); Cvar_RegisterVariable(&gl_lockarrays); Cvar_RegisterVariable(&gl_delayfinish); @@ -1326,15 +1328,18 @@ showtris: // LordHavoc: viewzoom (zoom in for sniper rifles, etc) r_refdef.fov_x = scr_fov.value * cl.viewzoom; r_refdef.fov_y = CalcFov (r_refdef.fov_x, r_refdef.width, r_refdef.height); - - if (cl.worldmodel) + + if (r_waterwarp.value > 0) { - Mod_CheckLoaded(cl.worldmodel); - contents = CL_PointSuperContents(r_vieworigin); - if (contents & SUPERCONTENTS_LIQUIDSMASK) + if (cl.worldmodel) { - 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); + Mod_CheckLoaded(cl.worldmodel); + contents = CL_PointSuperContents(r_vieworigin); + if (contents & SUPERCONTENTS_LIQUIDSMASK) + { + r_refdef.fov_x *= 1 - (((sin(cl.time * 4.7) + 1) * 0.015) * r_waterwarp.value); + r_refdef.fov_y *= 1 - (((sin(cl.time * 3.0) + 1) * 0.015) * r_waterwarp.value); + } } } diff --git a/menu.c b/menu.c index 32a28277..ba6abad5 100644 --- a/menu.c +++ b/menu.c @@ -1420,7 +1420,7 @@ void M_Options_Key (int k, char ascii) } } -#define OPTIONS_EFFECTS_ITEMS 22 +#define OPTIONS_EFFECTS_ITEMS 23 int options_effects_cursor; @@ -1475,6 +1475,7 @@ void M_Menu_Options_Effects_AdjustSliders (int dir) else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&cl_particles_blood_bloodhack, !cl_particles_blood_bloodhack.integer); else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lerpmodels, !r_lerpmodels.integer); else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_lerpsprites, !r_lerpsprites.integer); + else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_waterwarp, bound(0, r_waterwarp.value + dir * 0.1, 1)); else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_wateralpha, bound(0, r_wateralpha.value + dir * 0.1, 1)); else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_waterscroll, bound(0, r_waterscroll.value + dir * 0.5, 10)); else if (options_effects_cursor == optnum++) Cvar_SetValueQuick (&r_watershader, bound(0, r_watershader.value + dir * 0.25, 10)); @@ -1515,6 +1516,7 @@ void M_Options_Effects_Draw (void) M_Options_PrintCheckbox("Force New Blood Effect", true, cl_particles_blood_bloodhack.integer); M_Options_PrintCheckbox(" Model Interpolation", true, r_lerpmodels.integer); M_Options_PrintCheckbox(" Sprite Interpolation", true, r_lerpsprites.integer); + M_Options_PrintSlider( " Underwater View Warp", true, r_waterwarp.value, 0, 1); M_Options_PrintSlider( " Water Alpha (opacity)", true, r_wateralpha.value, 0, 1); M_Options_PrintSlider( " Water Movement", true, r_waterscroll.value, 0, 10); M_Options_PrintSlider( " GeForce3 Water Shader", true, r_watershader.value, 0, 10); diff --git a/render.h b/render.h index ec03626a..c669cd47 100644 --- a/render.h +++ b/render.h @@ -152,6 +152,7 @@ extern vec_t fogdensity; #include "r_lerpanim.h" extern cvar_t r_render; +extern cvar_t r_waterwarp; extern cvar_t r_textureunits; extern cvar_t gl_dither; -- 2.39.2