From 492bead36030db9ffca242bc3e34af2118067dd9 Mon Sep 17 00:00:00 2001
From: Christoph Oelckers <coelckers@zdoom.fake>
Date: Sun, 7 Nov 2010 16:17:14 +0000
Subject: [PATCH] - add alpha property to sector_t::splane. Not used yet.

SVN r2992 (trunk)
---
 src/p_saveg.cpp |  8 ++++++++
 src/p_setup.cpp |  3 ++-
 src/r_bsp.cpp   |  4 ++--
 src/r_defs.h    | 11 +++++++++++
 4 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/p_saveg.cpp b/src/p_saveg.cpp
index 7381aaf31..c7ad7125c 100644
--- a/src/p_saveg.cpp
+++ b/src/p_saveg.cpp
@@ -445,6 +445,14 @@ FArchive &operator<< (FArchive &arc, sector_t::splane &p)
 	arc << p.xform.xoffs << p.xform.yoffs << p.xform.xscale << p.xform.yscale 
 		<< p.xform.angle << p.xform.base_yoffs << p.xform.base_angle
 		<< p.Flags << p.Light << p.Texture << p.TexZ;
+	if (SaveVersion >= 2992)
+	{
+		arc << p.alpha;
+	}
+	else
+	{
+		p.alpha = FRACUNIT;
+	}
 	return arc;
 }
 
diff --git a/src/p_setup.cpp b/src/p_setup.cpp
index f91542916..905f68c4c 100644
--- a/src/p_setup.cpp
+++ b/src/p_setup.cpp
@@ -1420,7 +1420,8 @@ void P_LoadSectors (MapData * map)
 		ss->nextsec = -1;	//jff 2/26/98 add fields to support locking out
 		ss->prevsec = -1;	// stair retriggering until build completes
 
-		// killough 3/7/98:
+		ss->SetAlpha(sector_t::ceiling, FRACUNIT);
+		ss->SetAlpha(sector_t::ceiling, FRACUNIT);
 		ss->SetXScale(sector_t::floor, FRACUNIT);	// [RH] floor and ceiling scaling
 		ss->SetYScale(sector_t::floor, FRACUNIT);
 		ss->SetXScale(sector_t::ceiling, FRACUNIT);
diff --git a/src/r_bsp.cpp b/src/r_bsp.cpp
index b2060fd7e..e26b92ca8 100644
--- a/src/r_bsp.cpp
+++ b/src/r_bsp.cpp
@@ -1197,7 +1197,7 @@ void R_Subsector (subsector_t *sub)
 		R_FindPlane(frontsector->ceilingplane,		// killough 3/8/98
 					frontsector->GetTexture(sector_t::ceiling),
 					ceilinglightlevel + r_actualextralight,				// killough 4/11/98
-					FRACUNIT,
+					frontsector->GetAlpha(sector_t::ceiling),
 					frontsector->GetXOffset(sector_t::ceiling),		// killough 3/7/98
 					frontsector->GetYOffset(sector_t::ceiling),		// killough 3/7/98
 					frontsector->GetXScale(sector_t::ceiling),
@@ -1222,7 +1222,7 @@ void R_Subsector (subsector_t *sub)
 		R_FindPlane(frontsector->floorplane,
 					frontsector->GetTexture(sector_t::floor),
 					floorlightlevel + r_actualextralight,				// killough 3/16/98
-					FRACUNIT,
+					frontsector->GetAlpha(sector_t::floor),
 					frontsector->GetXOffset(sector_t::floor),		// killough 3/7/98
 					frontsector->GetYOffset(sector_t::floor),		// killough 3/7/98
 					frontsector->GetXScale(sector_t::floor),
diff --git a/src/r_defs.h b/src/r_defs.h
index 9e0477ac2..07a716d97 100644
--- a/src/r_defs.h
+++ b/src/r_defs.h
@@ -457,6 +457,7 @@ struct sector_t
 		FTransform xform;
 		int Flags;
 		int Light;
+		fixed_t alpha;
 		FTextureID Texture;
 		fixed_t TexZ;
 	};
@@ -544,6 +545,16 @@ struct sector_t
 		planes[pos].xform.base_angle = o;
 	}
 
+	void SetAlpha(int pos, fixed_t o)
+	{
+		planes[pos].alpha = o;
+	}
+
+	fixed_t GetAlpha(int pos) const
+	{
+		return planes[pos].alpha;
+	}
+
 	int GetFlags(int pos) const 
 	{
 		return planes[pos].Flags;