/// <summary>
    ///
    /// </summary>
    /// <param name="cmd"></param>
    /// <param name="args"></param>
    public void Execute(int cmd, object data)
    {
        switch (cmd)
        {
        case CommandConsts.StartDialog:
            _timeSinceStarted = 0;
            break;

        case CommandConsts.CreateDialogCG:
        {
            List <object> datas = data as List <object>;
            CharacterItem item  = new CharacterItem(_containerTf);
            item.Init(datas[0] as string, datas[1] as string, (float)datas[2], (float)datas[3]);
            AddItem(item);
            break;
        }

        case CommandConsts.HighlightDialogCG:
        {
            List <object> datas = data as List <object>;
            CharacterItem item  = GetCGItemByName(datas[0] as string);
            if (item != null)
            {
                item.Highlight((bool)datas[1]);
            }
            break;
        }

        case CommandConsts.FadeOutDialogCG:
        {
            CharacterItem item = GetCGItemByName(data as string);
            if (item != null)
            {
                item.FadeOut();
            }
            break;
        }

        case CommandConsts.CreateDialogBox:
        {
            List <object> datas = data as List <object>;
            DialogItem    item  = new DialogItem(_containerTf);
            item.Init((int)datas[0], datas[1] as string, (float)datas[2], (float)datas[3], (int)datas[4], (float)datas[5]);
            AddItem(item);
            break;
        }

        case CommandConsts.DelDialogBox:
            DelDialogItem();
            break;

        case CommandConsts.UpdateDialog:
        {
            int dTime = data == null ? 1 : (int)data;
            UpdateDialog(dTime);
            break;
        }

        case CommandConsts.PauseGame:
            OnSTGPause();
            break;

        case CommandConsts.ContinueGame:
            OnSTGContinue();
            break;

        case CommandConsts.ContinueGameAfterGameOver:
            OnSTGContinue();
            break;

        case CommandConsts.RetryGame:
            OnRetry();
            break;

        case CommandConsts.RetryStage:
            OnRetry();
            break;

        case CommandConsts.BackToTitle:
            OnRetry();
            break;
        }
    }