Back to the Vavoom Forum Archives


Forum

Patch for sky brightness option

Thu, 18 Mar 2010 21:01:06

Firebrand

I've got a patch for sky brightness option, let me know what you think of it.
Index: progs/common/uibase/MenuScreenAdvancedVideoOptions.vc
===================================================================
--- progs/common/uibase/MenuScreenAdvancedVideoOptions.vc	(revision 4178)
+++ progs/common/uibase/MenuScreenAdvancedVideoOptions.vc	(working copy)
@@ -70,6 +70,16 @@
 	Slider.ValueChanging = ChangeFactor;
 	currentY += Slider.Height;
 
+	Slider = NewChild(MenuChoiceSlider);
+	Slider.SetOrigin(ChoicesStartX, currentY);
+	Slider.Text = "Sky Brightness Factor";
+	Slider.ValueDelta = 0.1;
+	Slider.MaxValue = 1.0;
+	Slider.MinValue = 0.1;
+	Slider.SetInitialValue(GetCvarF('r_sky_bright_factor'));
+	Slider.ValueChanging = ChangeSkyFactor;
+	currentY += Slider.Height;
+
 	Enum = MenuChoiceEnum(NewChild(MenuChoice_OnOff));
 	Enum.SetOrigin(ChoicesStartX, currentY);
 	Enum.Text = "Extra samples";
@@ -253,6 +263,18 @@
 
 //==========================================================================
 //
+//	ChangeSkyFactor
+//
+//==========================================================================
+
+bool ChangeSkyFactor(Object Sender, float newValue)
+{
+	SetCvarF('r_sky_bright_factor', newValue);
+	return true;
+}
+
+//==========================================================================
+//
 //	ChangeExtraSamples
 //
 //==========================================================================
@@ -458,6 +480,7 @@
 defaultproperties
 {
 	Width = 360;
+	Height = 210;
 	ChoicesStartX = 200;
 	ChoicesStartY = 26;
 	TitleX = 180;
Index: source/d3d_poly.cpp
===================================================================
--- source/d3d_poly.cpp	(revision 4178)
+++ source/d3d_poly.cpp	(working copy)
@@ -548,7 +548,8 @@
 		TexStage = 0;
 		for (i = 0; i < surf->count; i++)
 		{
-			out = MyD3DVertex(surf->verts + vieworg, 0xffffffff,
+			out = MyD3DVertex(surf->verts + vieworg, 0xff000000 | (int(r_sky_bright_factor * 255) << 16) & 0x00ff0000 |
+					(int(r_sky_bright_factor * 255) << 8) & 0x0000ff00 | int(r_sky_bright_factor * 255) & 0x000000ff,
 				(DotProduct(surf->verts[sidx], tex->saxis) + tex->soffs - offs1) * tex_iw,
 				(DotProduct(surf->verts, tex->taxis) + tex->toffs) * tex_ih,
 				(DotProduct(surf->verts[sidx], tex->saxis) + tex->soffs - offs2) * tex_iw,
@@ -564,7 +565,8 @@
 		SetTexture(Texture1, CMap);
 		for (i = 0; i < surf->count; i++)
 		{
-			out = MyD3DVertex(surf->verts + vieworg, 0xffffffff,
+			out = MyD3DVertex(surf->verts + vieworg, 0xff000000 | (int(r_sky_bright_factor * 255) << 16) & 0x00ff0000 |
+					(int(r_sky_bright_factor * 255) << 8) & 0x0000ff00 | int(r_sky_bright_factor * 255) & 0x000000ff,
 				(DotProduct(surf->verts[sidx], tex->saxis) + tex->soffs - offs1) * tex_iw,
 				(DotProduct(surf->verts, tex->taxis) + tex->toffs) * tex_ih);
 		}
@@ -575,7 +577,8 @@
 			SetTexture(Texture2, CMap);
 			for (i = 0; i < surf->count; i++)
 			{
-				out = MyD3DVertex(surf->verts + vieworg, 0xffffffff,
+				out = MyD3DVertex(surf->verts + vieworg, 0xff000000 | (int(r_sky_bright_factor * 255) << 16) & 0x00ff0000 |
+					(int(r_sky_bright_factor * 255) << 8) & 0x0000ff00 | int(r_sky_bright_factor * 255) & 0x000000ff,
 					(DotProduct(surf->verts[sidx], tex->saxis) + tex->soffs - offs2) * tex_iw,
 					(DotProduct(surf->verts, tex->taxis) + tex->toffs) * tex_ih);
 			}
Index: source/gl_poly.cpp
===================================================================
--- source/gl_poly.cpp	(revision 4178)
+++ source/gl_poly.cpp	(working copy)
@@ -508,7 +508,7 @@
 		SetTexture(Texture2, CMap);
 		SelectTexture(0);
 
-		glColor4f(1, 1, 1, 1);
+		glColor4f(r_sky_bright_factor * 1, r_sky_bright_factor * 1, r_sky_bright_factor * 1, 1);
 		glBegin(GL_POLYGON);
 		for (i = 0; i < surf->count; i++)
 		{
@@ -530,7 +530,7 @@
 	{
 		SetTexture(Texture1, CMap);
 		glBegin(GL_POLYGON);
-		glColor4f(1, 1, 1, 1);
+		glColor4f(r_sky_bright_factor * 1, r_sky_bright_factor * 1, r_sky_bright_factor * 1, 1);
 		for (i = 0; i < surf->count; i++)
 		{
 			glTexCoord2f(
Index: source/r_main.cpp
===================================================================
--- source/r_main.cpp	(revision 4178)
+++ source/r_main.cpp	(working copy)
@@ -75,6 +75,7 @@
 VCvarI					r_vsync("r_vsync", "1", CVAR_Archive);
 VCvarI					r_fade_light("r_fade_light", "0", CVAR_Archive);
 VCvarF					r_fade_factor("r_fade_factor", "4.0", CVAR_Archive);
+VCvarF					r_sky_bright_factor("r_sky_bright_factor", "1.0", CVAR_Archive);
 
 VDrawer					*Drawer;
 
Index: source/r_shared.h
===================================================================
--- source/r_shared.h	(revision 4178)
+++ source/r_shared.h	(working copy)
@@ -177,6 +177,8 @@
 extern VCvarI			r_fade_light;
 extern VCvarF			r_fade_factor;
 
+extern VCvarF			r_sky_bright_factor;
+
 extern "C" {
 extern TClipPlane		view_clipplanes[5];
 }
Index: source/r_sky.cpp
===================================================================
--- source/r_sky.cpp	(revision 4178)
+++ source/r_sky.cpp	(working copy)
@@ -231,7 +231,7 @@
 			s.plane.Set(normal, DotProduct(s.surf.verts[1], normal));
 
 			s.texinfo.saxis = hdir * (1024 / HDIVS / DotProduct(hdir, hdir));
-float tk = skyh / RADIUS;
+			float tk = skyh / RADIUS;
 			s.texinfo.taxis = TVec(0, 0, -tk);
 			s.texinfo.soffs = -DotProduct(s.surf.verts[j < VDIVS / 2 ? 0 : 1],
 				s.texinfo.saxis);
Fri, 19 Mar 2010 18:06:05

Janis Legzdinsh

Seams ok.

Back to the Vavoom Forum Archives