//=============================================================================
// KFDialogEnvironmentVolume
//=============================================================================
// Volume that triggers dialog based on environment settings
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//=============================================================================
class KFDialogEnvironmentVolume extends Volume
	hidecategories(Volume,Collision,Attachment,Physics,Mobile)
	placeable;

`include(KFGameDialog.uci)

enum EDialogEnvironment
{
	DENV_DarkOutside,
	DENV_DarkInside,
	DENV_Raining,
	DENV_ColdInside,
	DENV_ColdOutside,
	DENV_HotInside,
	DENV_HotOutside,
	DENV_Foggy,
	DENV_Snow,
	DENV_Gross,
	DENV_Smelly,
	DENV_HighTech,
	DENV_OldSchoolHighTech,
	DENV_Cloning,
	DENV_Experiments,
	DENV_Torture,
	DENV_BioMatter,
	DENV_Aftermath,
	DENV_Cave,
	DENV_Underground
};

var() EDialogEnvironment Environment;

event Touch( Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal )
{
	local KFPawn_Human KFPH;

	super.Touch(Other, OtherComp, HitLocation, HitNormal);

	KFPH = KFPawn_Human(Other);
	if ( KFPH == none )
	{
		return;
	}

	KFPH.EnvironmentDialogEventID = `SITU_DarkOutside + Environment;
}

event Untouch( Actor Other )
{
	local KFPawn_Human KFPH;

	super.Untouch(Other);

	KFPH = KFPawn_Human(Other);
	if ( KFPH == none )
	{
		return;
	}

	if( KFPH.EnvironmentDialogEventID == `SITU_DarkOutside + Environment )
	{
		KFPH.EnvironmentDialogEventID = 0;
	}
}