private void Update()
    {
        if (CheckInputSubmitUp())
        {
            m_OkayToProceedText = true;
        }

        switch (state)
        {
        case State.Processing:
            _ProcessNode(m_scenario.GetCurrentNode());
            break;

        case State.DisplayingSpeech:
            if (CheckInputSubmitDown() && m_OkayToProceedText)
            {
                switch (m_textbox.state)
                {
                case TextboxInterface.State.Typing:
                    __ProcessSpeechNodeSet(m_scenario.GetCurrentNode());
                    break;

                case TextboxInterface.State.Done:
                    m_textbox.SignalWaiting();
                    m_scenario.AdvanceCurrentNode();
                    state = State.Processing;
                    break;
                }
            }
            break;

        case State.DisplayingMainChoices:
        case State.DisplayingSimpleChoices:
        case State.PlayingTeaMinigame:
        case State.End:
            // Don't process these
            break;
        }
    }