#include "ui/menudef.h"

#define SNIPER_TABLE					"mp/snipers.csv"

#define HUD_HIDE_WEAPONS				( weaponname() == "killstreak_ac130_mp" || weaponname() == "killstreak_helicopter_minigun_mp" || weaponname() == "killstreak_predator_missile_mp" || weaponname() == "ac130_105mm_mp" || weaponname() == "ac130_40mm_mp" || weaponname() == "ac130_25mm_mp" || adsjavelin() || weaponname() == "heli_remote_mp" || missilecam() )
#define HUD_IS_ACTIVE					( ui_active() )
#define HUD_IS_HARDCORE					( dvarBool( "g_hardcore" ) )
#define HUD_HIDE_ENDGAME				( dvarBool( "scr_gameended" ) )
#define HUD_HIDE_INKILLCAM				inkillcam()
#define HUD_HIDE_SELECTINGLOCATION		selecting_location()
#define HUD_HIDE_SCOPED					scoped()

#define CREATE_SHADER( position, texture, colour ) \
	CREATE_SHADER_VIS( position, texture, colour, 1 )

#define CREATE_SHADER_VIS( position, texture, colour, visibility ) \
	CREATE_SHADER_EX( position, texture, colour, visibility, ; )

#define CREATE_SHADER_EX( position, texture, colour, visibility, extra ) \
	itemDef \
	{ \
		style 			WINDOW_STYLE_SHADER \
		rect 			position; \
		forecolor 		colour \
		exp 			material ( texture ) \
		visible 		when ( visibility ) \
		decoration 		\
		extra			\
	}

#define CREATE_SHADER_ALT( position, texture, colour, visibility, extra ) \
	itemDef \
	{ \
		style 			WINDOW_STYLE_FILLED \
		rect 			position; \
		backcolor 		colour \
		background		texture \
		visible 		when ( visibility ) \
		decoration 		\
		extra			\
	}

#define CREATE_TEXT( position, string, color, visibility, extras ) \
	itemDef \
	{ \
		rect 			position; \
		style 			1 \
		forecolor 		color \
		exp 			text ( string ) \
		visible 		when ( visibility ) \
		textfont		UI_FONT_DEFAULT \
		decoration \
		extras \
	}

#define CREATE_BUTTON( position, string, textscale_, action_ ) \
	CREATE_BUTTON_VIS( position, string, textscale_, action_, 1 )

#define CREATE_BUTTON_VIS( position, string, textscale_, action_, visibility ) \
	CREATE_BUTTON_EX( position, string, textscale_, action_, visibility, ; )

#define CREATE_BUTTON_EX( position, string, textscale_, action_, visibility, extra ) \
	itemDef \
	{ \
		rect 			position \
		style			WINDOW_STYLE_FILLED \
		type			ITEM_TYPE_BUTTON \
		textscale		textscale_ \
		background		"white" \
		forecolor		1 1 1 1 \
		exp 			text ( string ) \
		visible			when ( visibility ) \
		mouseEnter		{ play "mouse_over"; } \
		action 			{ play "mouse_click"; action_; } \
		extra			\
	}

#define PREVIOUS_PAGE \
	if ( localVarInt( "ui_sniper_page" ) == 3 ) \
	{ \
		setLocalVarInt "ui_sniper_page" 2; \
	} \
	else \
	{ \
		if ( localVarInt( "ui_sniper_page" ) == 2 ) \
		{ \
			setLocalVarInt "ui_sniper_page" 1; \
		} \
		else \
		{ \
			if ( localVarInt( "ui_sniper_page" ) == 1 ) \
			{ \
				setLocalVarInt "ui_sniper_page" 0; \
			} \
		} \
	}

#define NEXT_PAGE \
	if ( localVarInt( "ui_sniper_page" ) == 0 ) \
	{ \
		setLocalVarInt "ui_sniper_page" 1; \
	} \
	else \
	{ \
		if ( localVarInt( "ui_sniper_page" ) == 1 ) \
		{ \
			setLocalVarInt "ui_sniper_page" 2; \
		} \
		else \
		{ \
			if ( localVarInt( "ui_sniper_page" ) == 2 ) \
			{ \
				setLocalVarInt "ui_sniper_page" 3; \
			} \
		} \
	}