//------------------------------------------------ Generic Patch fades ---------------------------------------------------
void FadeInPatchEnter(CString _strName)
{
    CGamePatch@ pGamePatch = cast<CGamePatch>(pTutorial.GetGameObject(_strName));
    CPatch@ pPatch = pGamePatch.GetPatch();
    CColor color;
    color = colorWhite;
    color.a = 0.0f;
    pPatch.SetColor(color);
    pGamePatch.SetVisible(true);
}

void FadeInPatchUpdate(CString _strName)
{
    CGamePatch@ pGamePatch = cast<CGamePatch>(pTutorial.GetGameObject(_strName));
    CPatch@ pPatch = pGamePatch.GetPatch();
    CColor color = pPatch.GetColor();
    if( pTutorial.GetTimeInScene() < pTutorial.GetSceneLength() )
    {
        color.a = Lerp(pTutorial.GetTimeInScene() / pTutorial.GetSceneLength(), 0.0f, 1.0f);
    }
    else
    {
        color.a = 1.0f;
    }
    pPatch.SetColor(color);
}

void FadeOutPatchUpdate(CString _strName)
{
    CGamePatch@ pGamePatch = cast<CGamePatch>(pTutorial.GetGameObject(_strName));
    CPatch@ pPatch = pGamePatch.GetPatch();
    CColor color = pPatch.GetColor();
    if( pTutorial.GetTimeInScene() < pTutorial.GetSceneLength() )
    {
        color.a = Lerp(pTutorial.GetTimeInScene() / pTutorial.GetSceneLength(), 1.0f, 0.0f);
    }
    else
    {
        color.a = 0.0f;
    }
    pPatch.SetColor(color);
}

void HideGameObject(CString _strName)
{
    pTutorial.GetGameObject(_strName).SetVisible(false);
}
