bool C_ASW_Button_Area::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
{
	action.UseIconRed = 255;
	action.UseIconGreen = 255;
	action.UseIconBlue = 255;
	action.bShowUseKey = true;
	action.iInventorySlot = -1;
	if (!HasPower())
	{
		action.iUseIconTexture = GetNoPowerIconTextureID();
		TryLocalize( GetNoPowerText(), action.wszText, sizeof( action.wszText ) );
		action.UseTarget = this;
		action.fProgress = GetHackProgress();
		action.bShowUseKey = false;
		return true;
	}
	if (IsLocked())
	{
		CASW_Marine_Profile *pProfile = pUser->GetMarineProfile();

		if ( m_bAnyoneCanHack || pProfile->CanHack() )
		{
			action.iUseIconTexture = GetHackIconTextureID();
			TryLocalize( GetHackIconText(pUser), action.wszText, sizeof( action.wszText ) );
			action.UseTarget = this;
			action.fProgress = GetHackProgress();
		}
		else
		{
			action.iUseIconTexture = GetLockedIconTextureID();
			TryLocalize( GetLockedIconText(), action.wszText, sizeof( action.wszText ) );
			action.UseTarget = this;
			action.fProgress = GetHackProgress();
		}	
	}

	else
	{
		action.iUseIconTexture = GetUseIconTextureID();
		TryLocalize( GetUseIconText(), action.wszText, sizeof( action.wszText ) );
		action.UseTarget = this;
		action.fProgress = -1;
	}
	return true;
}
bool C_ASW_Ammo_Drop::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
{
	action.iUseIconTexture = GetAmmoDropIconTextureID();
	action.UseTarget = this;

	if ( !AllowedToPickup( pUser ) )
	{
		if ( !m_bEnoughAmmo )
		{
			TryLocalize( "#asw_not_enough_ammo_drop", action.wszText, sizeof( action.wszText ) );
		}
		else
		{
			TryLocalize( "#asw_full_ammo_drop", action.wszText, sizeof( action.wszText ) );
		}

		action.fProgress = -1;

		action.UseIconRed = 255;
		action.UseIconGreen = 0;
		action.UseIconBlue = 0;
		action.TextRed = 164;
		action.TextGreen = 164;
		action.TextBlue = 164;
		action.bTextGlow = false;
		action.bShowUseKey = false;
		action.iInventorySlot = -1;
	}
	else
	{
		TryLocalize( "#asw_use_ammo_drop", action.wszText, sizeof( action.wszText ) );

		action.fProgress = -1;

		action.UseIconRed = 255;
		action.UseIconGreen = 255;
		action.UseIconBlue = 255;
		action.bShowUseKey = true;
		action.iInventorySlot = -1;
	}

	return true;
}
bool C_ASW_TeslaTrap::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
{
	action.iUseIconTexture = GetTeslaIconTextureID();
	TryLocalize( "#asw_tesla_ammo", action.wszText, sizeof( action.wszText ) );
	action.UseTarget = this;
	action.fProgress = -1;
	action.UseIconRed = 66;
	action.UseIconGreen = 142;
	action.UseIconBlue = 192;
	action.bShowUseKey = false;
	action.iInventorySlot = -1;
	return true;
}
bool C_ASW_T75::GetUseAction(ASWUseAction &action, C_ASW_Marine *pUser)
{
	if ( IsArmed() )
	{
		action.iUseIconTexture = GetT75IconTextureID();
		TryLocalize( "#asw_t75_armed", action.wszText, sizeof( action.wszText ) );
		action.UseTarget = this;
		action.fProgress = -1;
	}
	else
	{
		action.iUseIconTexture = GetT75IconTextureID();
		TryLocalize( "#asw_t75_arm", action.wszText, sizeof( action.wszText ) );
		action.UseTarget = this;
		action.fProgress = GetArmProgress();
	}
	action.UseIconRed = 255;
	action.UseIconGreen = 255;
	action.UseIconBlue = 255;
	action.bShowUseKey = true;
	action.iInventorySlot = -1;
	return true;
}