void CLogoState::Update(float fDT)
{
    m_fDT = fDT;
    m_fStateTimer += fDT;

    m_pGUI->Update(fDT);

    if (CHECK_BIT(m_nPhaseCheck, 2) == TRUE)
    {
        return;
    }

    if (m_fStateTimer > IMAGECHANGETIMER)
    {
        if (FadeToWhite(fDT, 1.0f) == TRUE)
        {
            if (FadeToNotBlack(fDT, 0.0f) == TRUE)
            {
                if (CHECK_BIT(m_nPhaseCheck, 0) == FALSE)
                {
                    SET_BIT(m_nPhaseCheck, 0);
                    m_fStateTimer = 0;
                    m_pGPLogo->SetVisible(false);
                    m_pStudioLogo->SetVisible(true);

                    m_fFadeIn = 0;
                    m_fFadeOut = 0;
                }
                else if (CHECK_BIT(m_nPhaseCheck, 1) == FALSE)
                {
                    SET_BIT(m_nPhaseCheck, 1);
                    m_fStateTimer = 0;
                    m_pStudioLogo->SetVisible(false);
                    m_pTeamLogo->SetVisible(true);

                    m_fFadeIn = 0;
                    m_fFadeOut = 0;
                }
                else if (CHECK_BIT(m_nPhaseCheck, 2) == FALSE)
                {
                    SET_BIT(m_nPhaseCheck, 2);
                    m_fStateTimer = 0;
                    m_pTeamLogo->SetVisible(false);
                    m_fFadeIn = 0;
                    m_fFadeOut = 0;

                    QueueStateChange(STATE_CH_MAINMENU);
                }
            }
        }
    }

    if (m_fFadeIn >= 0.0f && FadeToNotBlack(fDT, 0.0f) == FALSE)
    {
        return;
    }
}
// Called every frame
void APlayerCharacter::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);

	if (isWalkingForward || isWalkingRight)
	{
		if (CanJump())
			UGameplayStatics::PlaySoundAtLocation(GetWorld(), WalkSound, GetActorLocation());
	}
	if (isJumpingGruntCheck)
	{
		UGameplayStatics::PlaySoundAtLocation(GetWorld(), GruntSound, GetActorLocation());
		isJumpingGruntCheck = false;
	}

	if (GetVelocity().Z == 0 && isJumpingGroundCheck)
	{
		UGameplayStatics::PlaySoundAtLocation(GetWorld(), JumpSound, GetActorLocation());
		isJumpingGroundCheck = false;

		UPeterAnimInstance* PeterAnimInstance = Cast<UPeterAnimInstance>(GetMesh()->GetAnimInstance());

		if (PeterAnimInstance)
		{
		}

	}
	if (CameraIsChanging == true)
	{
		UpdateCamera(FantasyCounter);
	}
	if (ShowTime == true)
	{
		FadeToWhite();
	}

	if (PhysicsHandleActive)
	{
		if (PhysicsHandler)
		{
			FVector HandleLocation;

			FVector ControllerForwardVector = UKismetMathLibrary::GetForwardVector(GetControlRotation());

			HandleLocation = ControllerForwardVector * 250 + GetActorLocation();

			HandleLocation.Z += 50;

			PhysicsHandler->SetTargetLocationAndRotation(HandleLocation, GetControlRotation());
		}
	}
	else if (PhysicsHandleActive == false)
	{
		PhysicsHandler->ReleaseComponent();
		if (PickedUpBox)
		{
			PickedUpBox->Drop(this);
		}
	}

	UPeterAnimInstance* PeterAnimInstance = Cast<UPeterAnimInstance>(GetMesh()->GetAnimInstance());
}