// Copyright (c) Valve Corporation, All rights reserved.
// File taken from Valve's Alien Swarm SDK.
// Modified by advancedfx.org.

//========== Copyright (c) Valve Corporation, All rights reserved. ==========//
//
// Purpose: Provide convenient mapping for shader constants
//
// $NoKeywords: $
//===========================================================================//

#ifndef C_CODE_HACK
#include "common_vertexlitgeneric_dx9.h"
#endif

#define PSREG_SELFILLUMTINT						PSREG_CONSTANT_00
#define PSREG_DIFFUSE_MODULATION				PSREG_CONSTANT_01
#define PSREG_ENVMAP_TINT__SHADOW_TWEAKS		PSREG_CONSTANT_02
#define PSREG_SELFILLUM_SCALE_BIAS_EXP			PSREG_CONSTANT_03
#define PSREG_AMBIENT_CUBE						PSREG_CONSTANT_04
//		PSREG_AMBIENT_CUBE						PSREG_CONSTANT_05
//		PSREG_AMBIENT_CUBE						PSREG_CONSTANT_06
//		PSREG_AMBIENT_CUBE						PSREG_CONSTANT_07
//		PSREG_AMBIENT_CUBE						PSREG_CONSTANT_08
//		PSREG_AMBIENT_CUBE						PSREG_CONSTANT_09
#define PSREG_SHADER_CONTROLS_2					PSREG_CONSTANT_10
#define PSREG_EYEPOS_SPEC_EXPONENT				PSREG_CONSTANT_11
#define PSREG_FOG_PARAMS						PSREG_CONSTANT_12
#define PSREG_FLASHLIGHT_ATTENUATION			PSREG_CONSTANT_13
#define PSREG_FLASHLIGHT_POSITION_RIM_BOOST		PSREG_CONSTANT_14
#define PSREG_FLASHLIGHT_TO_WORLD_TEXTURE		PSREG_CONSTANT_15
//		PSREG_FLASHLIGHT_TO_WORLD_TEXTURE		PSREG_CONSTANT_16
//		PSREG_FLASHLIGHT_TO_WORLD_TEXTURE		PSREG_CONSTANT_17
//		PSREG_FLASHLIGHT_TO_WORLD_TEXTURE		PSREG_CONSTANT_18
#define PSREG_FRESNEL_SPEC_PARAMS				PSREG_CONSTANT_19
#define PSREG_LIGHT_INFO_ARRAY					PSREG_CONSTANT_20
//		PSREG_LIGHT_INFO_ARRAY					PSREG_CONSTANT_21
//		PSREG_LIGHT_INFO_ARRAY					PSREG_CONSTANT_22
//		PSREG_LIGHT_INFO_ARRAY					PSREG_CONSTANT_23
//		PSREG_LIGHT_INFO_ARRAY					PSREG_CONSTANT_24
//		PSREG_LIGHT_INFO_ARRAY					PSREG_CONSTANT_25
#define PSREG_SPEC_RIM_PARAMS					PSREG_CONSTANT_26
#define PSREG_SHADER_CONTROLS					PSREG_CONSTANT_27
#define	PSREG_FLASHLIGHT_COLOR					PSREG_CONSTANT_28
#define	PSREG_LINEAR_FOG_COLOR					PSREG_CONSTANT_29
#define	PSREG_LIGHT_SCALE						PSREG_CONSTANT_30
#define	PSREG_FLASHLIGHT_SCREEN_SCALE			PSREG_CONSTANT_31
//  --- End of ps_2_0 and ps_2_b constants --- available to ps_3_0 though! ---
#define	PSREG_SCREEN_SIZE						PSREG_CONSTANT_32
#define	PSREG_UBERLIGHT_SMOOTH_EDGE_0			PSREG_CONSTANT_33
#define	PSREG_UBERLIGHT_SMOOTH_EDGE_1			PSREG_CONSTANT_34
#define	PSREG_UBERLIGHT_SMOOTH_EDGE_OOW			PSREG_CONSTANT_35
#define	PSREG_UBERLIGHT_SHEAR_ROUND				PSREG_CONSTANT_36
#define	PSREG_UBERLIGHT_AABB					PSREG_CONSTANT_37
#define PSREG_UBERLIGHT_WORLD_TO_LIGHT			PSREG_CONSTANT_38
//		PSREG_UBERLIGHT_WORLD_TO_LIGHT			PSREG_CONSTANT_39
//		PSREG_UBERLIGHT_WORLD_TO_LIGHT			PSREG_CONSTANT_40
//		PSREG_UBERLIGHT_WORLD_TO_LIGHT			PSREG_CONSTANT_41
#define PSREG_RIMPARAMS							PSREG_CONSTANT_42
#define PSREG_FLESH_LIGHTING_PARAMS				PSREG_CONSTANT_43
#define PSREG_FLESH_SUBSURFACE_PARAMS			PSREG_CONSTANT_44
#define PSREG_FLESH_SUBSURFACE_MODULATION		PSREG_CONSTANT_45

#ifndef C_CODE_HACK
//for fxc code, map the constants to register names.
#define PSREG_CONSTANT_00	c0
#define PSREG_CONSTANT_01	c1
#define PSREG_CONSTANT_02	c2
#define PSREG_CONSTANT_03	c3
#define PSREG_CONSTANT_04	c4
#define PSREG_CONSTANT_05	c5
#define PSREG_CONSTANT_06	c6
#define PSREG_CONSTANT_07	c7
#define PSREG_CONSTANT_08	c8
#define PSREG_CONSTANT_09	c9
#define PSREG_CONSTANT_10	c10
#define PSREG_CONSTANT_11	c11
#define PSREG_CONSTANT_12	c12
#define PSREG_CONSTANT_13	c13
#define PSREG_CONSTANT_14	c14
#define PSREG_CONSTANT_15	c15
#define PSREG_CONSTANT_16	c16
#define PSREG_CONSTANT_17	c17
#define PSREG_CONSTANT_18	c18
#define PSREG_CONSTANT_19	c19
#define PSREG_CONSTANT_20	c20
#define PSREG_CONSTANT_21	c21
#define PSREG_CONSTANT_22	c22
#define PSREG_CONSTANT_23	c23
#define PSREG_CONSTANT_24	c24
#define PSREG_CONSTANT_25	c25
#define PSREG_CONSTANT_26	c26
#define PSREG_CONSTANT_27	c27
#define PSREG_CONSTANT_28	c28
#define PSREG_CONSTANT_29	c29
#define PSREG_CONSTANT_30	c30
#define PSREG_CONSTANT_31	c31
#define PSREG_CONSTANT_32	c32
#define PSREG_CONSTANT_33	c33
#define PSREG_CONSTANT_34	c34
#define PSREG_CONSTANT_35	c35
#define PSREG_CONSTANT_36	c36
#define PSREG_CONSTANT_37	c37
#define PSREG_CONSTANT_38	c38
#define PSREG_CONSTANT_39	c39
#define PSREG_CONSTANT_40	c40
#define PSREG_CONSTANT_41	c41
#define PSREG_CONSTANT_42	c42
#define PSREG_CONSTANT_43	c43
#define PSREG_CONSTANT_44	c44
#define PSREG_CONSTANT_45	c45
#endif
