public void MergeFrom(pb::CodedInputStream input)
        {
            uint tag;

            while ((tag = input.ReadTag()) != 0)
            {
                switch (tag)
                {
                default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;

                case 10: {
                    CustomState = input.ReadString();
                    break;
                }

                case 18: {
                    global::WUProtos.Data.Storyboard.StoryboardGenericDialogStep subBuilder = new global::WUProtos.Data.Storyboard.StoryboardGenericDialogStep();
                    if (dataCase_ == DataOneofCase.GenericDialog)
                    {
                        subBuilder.MergeFrom(GenericDialog);
                    }
                    input.ReadMessage(subBuilder);
                    GenericDialog = subBuilder;
                    break;
                }

                case 26: {
                    global::WUProtos.Data.Storyboard.StoryboardPauseStep subBuilder = new global::WUProtos.Data.Storyboard.StoryboardPauseStep();
                    if (dataCase_ == DataOneofCase.Pause)
                    {
                        subBuilder.MergeFrom(Pause);
                    }
                    input.ReadMessage(subBuilder);
                    Pause = subBuilder;
                    break;
                }

                case 34: {
                    global::WUProtos.Data.Storyboard.StoryboardAdviceOverlayStep subBuilder = new global::WUProtos.Data.Storyboard.StoryboardAdviceOverlayStep();
                    if (dataCase_ == DataOneofCase.AdviceOverlay)
                    {
                        subBuilder.MergeFrom(AdviceOverlay);
                    }
                    input.ReadMessage(subBuilder);
                    AdviceOverlay = subBuilder;
                    break;
                }

                case 42: {
                    global::WUProtos.Data.Storyboard.StoryboardAdviceInterjectionStep subBuilder = new global::WUProtos.Data.Storyboard.StoryboardAdviceInterjectionStep();
                    if (dataCase_ == DataOneofCase.AdviceInterjection)
                    {
                        subBuilder.MergeFrom(AdviceInterjection);
                    }
                    input.ReadMessage(subBuilder);
                    AdviceInterjection = subBuilder;
                    break;
                }

                case 50: {
                    global::WUProtos.Data.Storyboard.StoryboardConversationInterjectionStep subBuilder = new global::WUProtos.Data.Storyboard.StoryboardConversationInterjectionStep();
                    if (dataCase_ == DataOneofCase.ConversationInterjection)
                    {
                        subBuilder.MergeFrom(ConversationInterjection);
                    }
                    input.ReadMessage(subBuilder);
                    ConversationInterjection = subBuilder;
                    break;
                }

                case 58: {
                    CallToActionAsset = input.ReadString();
                    break;
                }

                case 66: {
                    CallToActionButtonIdentifier = input.ReadString();
                    break;
                }
                }
            }
        }
        public void MergeFrom(ClientStoryboardStep other)
        {
            if (other == null)
            {
                return;
            }
            if (other.CustomState.Length != 0)
            {
                CustomState = other.CustomState;
            }
            if (other.CallToActionAsset.Length != 0)
            {
                CallToActionAsset = other.CallToActionAsset;
            }
            if (other.CallToActionButtonIdentifier.Length != 0)
            {
                CallToActionButtonIdentifier = other.CallToActionButtonIdentifier;
            }
            switch (other.DataCase)
            {
            case DataOneofCase.GenericDialog:
                if (GenericDialog == null)
                {
                    GenericDialog = new global::WUProtos.Data.Storyboard.StoryboardGenericDialogStep();
                }
                GenericDialog.MergeFrom(other.GenericDialog);
                break;

            case DataOneofCase.Pause:
                if (Pause == null)
                {
                    Pause = new global::WUProtos.Data.Storyboard.StoryboardPauseStep();
                }
                Pause.MergeFrom(other.Pause);
                break;

            case DataOneofCase.AdviceOverlay:
                if (AdviceOverlay == null)
                {
                    AdviceOverlay = new global::WUProtos.Data.Storyboard.StoryboardAdviceOverlayStep();
                }
                AdviceOverlay.MergeFrom(other.AdviceOverlay);
                break;

            case DataOneofCase.AdviceInterjection:
                if (AdviceInterjection == null)
                {
                    AdviceInterjection = new global::WUProtos.Data.Storyboard.StoryboardAdviceInterjectionStep();
                }
                AdviceInterjection.MergeFrom(other.AdviceInterjection);
                break;

            case DataOneofCase.ConversationInterjection:
                if (ConversationInterjection == null)
                {
                    ConversationInterjection = new global::WUProtos.Data.Storyboard.StoryboardConversationInterjectionStep();
                }
                ConversationInterjection.MergeFrom(other.ConversationInterjection);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }