Пример #1
0
 private static void OnMobileIcon(Int32 index, ref Dialog.DialogImage insertImage, Int32 oneParameterFromTag4)
 {
     if (FF9StateSystem.MobilePlatform)
     {
         insertImage = NGUIText.CreateIconImage(oneParameterFromTag4);
         insertImage.TextPosition = index;
     }
 }
Пример #2
0
    private IEnumerator SignalProcess(UILabel label, String fullText, Int32 targetSignal, Dictionary <Int32, Int32> dynamicCharsPerSecond, Dictionary <Int32, Single> waitList)
    {
        Int32  currentOffset = 0;
        Int32  length        = fullText.Length;
        Single nextCharTime  = 0f;
        Int32  ff9Signal     = 0;

        Dialog.DialogImage insertImage    = (Dialog.DialogImage)null;
        Single             charsPerSecond = 0f;

        while (currentOffset < length)
        {
            while (nextCharTime <= RealTime.time)
            {
                charsPerSecond = ((!dynamicCharsPerSecond.ContainsKey(currentOffset)) ? Mathf.Max(1f, charsPerSecond) : ((Single)dynamicCharsPerSecond[currentOffset]));
                if (waitList.ContainsKey(currentOffset) && waitList[currentOffset] > 0f)
                {
                    Int32  key2;
                    Int32  key = key2 = currentOffset;
                    Single num = waitList[key2];
                    waitList[key] = num - ((!HonoBehaviorSystem.Instance.IsFastForwardModeActive()) ? Time.deltaTime : (Time.deltaTime * (Single)FF9StateSystem.Settings.FastForwardFactor));
                    break;
                }
                if (label.supportEncoding)
                {
                    while (NGUIText.ParseSymbol(fullText, ref currentOffset, ref ff9Signal, ref insertImage))
                    {
                    }
                }
                currentOffset++;
                Single delay = (!HonoBehaviorSystem.Instance.IsFastForwardModeActive()) ? (1f / charsPerSecond) : (1f / (charsPerSecond * (Single)FF9StateSystem.Settings.FastForwardFactor));
                if (nextCharTime == 0f || nextCharTime + delay > RealTime.time)
                {
                    nextCharTime = RealTime.time + delay;
                }
                else
                {
                    nextCharTime += delay;
                }
                NGUIText.ProcessFF9Signal(ref ff9Signal);
            }
            yield return(new WaitForEndOfFrame());
        }
        yield break;
    }
Пример #3
0
	public GameObject InsertBitmapIcon(Dialog.DialogImage dialogImg, GameObject label)
	{
		GameObject gameObject;
		if (dialogImg.IsButton)
		{
			gameObject = FF9UIDataTool.ButtonGameObject((Control)dialogImg.Id, dialogImg.checkFromConfig, dialogImg.tag);
		}
		else
		{
			gameObject = FF9UIDataTool.IconGameObject(dialogImg.Id);
		}
		if (gameObject != (UnityEngine.Object)null)
		{
			gameObject.transform.parent = label.transform;
			gameObject.transform.localScale = Vector3.one;
			gameObject.transform.localPosition = new Vector3(dialogImg.LocalPosition.x, dialogImg.LocalPosition.y, 0f);
			gameObject.SetActive(true);
		}
		return gameObject;
	}
Пример #4
0
        public static Boolean ProcessMemoriaTag(Char[] toCharArray, ref Int32 index, BetterList <Color> colors, ref Boolean highShadow, ref Boolean center, ref Boolean justified, ref Int32 ff9Signal, ref Vector3 extraOffset, ref Single tabX, ref Dialog.DialogImage insertImage)
        {
            Int32       num  = index;
            Int32       left = toCharArray.Length - index;
            FFIXTextTag tag  = FFIXTextTag.TryRead(toCharArray, ref num, ref left);

            if (tag == null)
            {
                return(false);
            }

            switch (tag.Code)
            {
            case FFIXTextTagCode.Justified:
                justified = true;
                break;

            case FFIXTextTagCode.Center:
                center = true;
                break;

            case FFIXTextTagCode.Signal:
                ff9Signal = 10 + tag.Param[0];
                break;

            case FFIXTextTagCode.IncreaseSignal:
                ff9Signal = 2;
                break;

            case FFIXTextTagCode.IncreaseSignalEx:
                ff9Signal = 2;
                break;

            case FFIXTextTagCode.DialogF:
                extraOffset.x += (tag.Param[0] >= FieldMap.HalfFieldWidth) ? 0f : (tag.Param[0] * UIManager.ResourceXMultipier);
                break;

            case FFIXTextTagCode.DialogY:
                extraOffset.y -= tag.Param[0] * UIManager.ResourceYMultipier;
                break;

            case FFIXTextTagCode.DialogX:
                if (tag.Param[0] == 224)
                {
                    tag.Param[0] = 0;
                }
                tabX = tag.Param[0] * UIManager.ResourceYMultipier;
                break;

            case FFIXTextTagCode.Up:
                OnButton(out insertImage, index, false, "DBTN", "UP");
                break;

            case FFIXTextTagCode.Down:
                OnButton(out insertImage, index, false, "DBTN", "DOWN");
                break;

            case FFIXTextTagCode.Left:
                OnButton(out insertImage, index, false, "DBTN", "LEFT");
                break;

            case FFIXTextTagCode.Right:
                OnButton(out insertImage, index, false, "DBTN", "RIGHT");
                break;

            case FFIXTextTagCode.Circle:
                OnButton(out insertImage, index, false, "DBTN", "CIRCLE");
                break;

            case FFIXTextTagCode.Cross:
                OnButton(out insertImage, index, false, "DBTN", "CROSS");
                break;

            case FFIXTextTagCode.Triangle:
                OnButton(out insertImage, index, false, "DBTN", "TRIANGLE");
                break;

            case FFIXTextTagCode.Square:
                OnButton(out insertImage, index, false, "DBTN", "SQUARE");
                break;

            case FFIXTextTagCode.R1:
                OnButton(out insertImage, index, false, "DBTN", "R1");
                break;

            case FFIXTextTagCode.R2:
                OnButton(out insertImage, index, false, "DBTN", "R2");
                break;

            case FFIXTextTagCode.L1:
                OnButton(out insertImage, index, false, "DBTN", "L1");
                break;

            case FFIXTextTagCode.L2:
                OnButton(out insertImage, index, false, "DBTN", "L2");
                break;

            case FFIXTextTagCode.Select:
                OnButton(out insertImage, index, false, "DBTN", "SELECT");
                break;

            case FFIXTextTagCode.Start:
                OnButton(out insertImage, index, false, "DBTN", "START");
                break;

            case FFIXTextTagCode.Pad:
                OnButton(out insertImage, index, false, "DBTN", "PAD");
                break;

            case FFIXTextTagCode.UpEx:
                OnButton(out insertImage, index, true, "CBTN", "UP");
                break;

            case FFIXTextTagCode.DownEx:
                OnButton(out insertImage, index, true, "CBTN", "DOWN");
                break;

            case FFIXTextTagCode.LeftEx:
                OnButton(out insertImage, index, true, "CBTN", "LEFT");
                break;

            case FFIXTextTagCode.RightEx:
                OnButton(out insertImage, index, true, "CBTN", "RIGHT");
                break;

            case FFIXTextTagCode.CircleEx:
                OnButton(out insertImage, index, true, "CBTN", "CIRCLE");
                break;

            case FFIXTextTagCode.CrossEx:
                OnButton(out insertImage, index, true, "CBTN", "CROSS");
                break;

            case FFIXTextTagCode.TriangleEx:
                OnButton(out insertImage, index, true, "CBTN", "TRIANGLE");
                break;

            case FFIXTextTagCode.SquareEx:
                OnButton(out insertImage, index, true, "CBTN", "SQUARE");
                break;

            case FFIXTextTagCode.R1Ex:
                OnButton(out insertImage, index, true, "CBTN", "R1");
                break;

            case FFIXTextTagCode.R2Ex:
                OnButton(out insertImage, index, true, "CBTN", "R2");
                break;

            case FFIXTextTagCode.L1Ex:
                OnButton(out insertImage, index, true, "CBTN", "L1");
                break;

            case FFIXTextTagCode.L2Ex:
                OnButton(out insertImage, index, true, "CBTN", "L2");
                break;

            case FFIXTextTagCode.SelectEx:
                OnButton(out insertImage, index, true, "CBTN", "SELECT");
                break;

            case FFIXTextTagCode.StartEx:
                OnButton(out insertImage, index, true, "CBTN", "START");
                break;

            case FFIXTextTagCode.PadEx:
                OnButton(out insertImage, index, true, "CBTN", "PAD");
                break;

            case FFIXTextTagCode.Icon:
                OnIcon(index, out insertImage, tag.Param[0]);
                break;

            case FFIXTextTagCode.IconEx:
                OnIconEx(index, out insertImage);
                break;

            case FFIXTextTagCode.Mobile:
                OnMobileIcon(index, ref insertImage, tag.Param[0]);
                break;

            case FFIXTextTagCode.Tab:
                extraOffset.x += (18 - 4f) * UIManager.ResourceXMultipier;
                break;

            case FFIXTextTagCode.White:
                OnColor(colors, "C8C8C8");
                highShadow = true;
                break;

            case FFIXTextTagCode.Pink:
                OnColor(colors, "B880E0");
                highShadow = true;
                break;

            case FFIXTextTagCode.Cyan:
                OnColor(colors, "68C0D8");
                highShadow = true;
                break;

            case FFIXTextTagCode.Brown:
                OnColor(colors, "D06050");
                highShadow = true;
                break;

            case FFIXTextTagCode.Yellow:
                OnColor(colors, "C8B040");
                highShadow = true;
                break;

            case FFIXTextTagCode.Green:
                OnColor(colors, "78C840");
                highShadow = true;
                break;

            case FFIXTextTagCode.Grey:
                OnColor(colors, "909090");
                highShadow = true;
                break;

            case FFIXTextTagCode.DialogSize:
            case FFIXTextTagCode.Choice:
            case FFIXTextTagCode.Time:
            case FFIXTextTagCode.Flash:
            case FFIXTextTagCode.NoAnimation:
            case FFIXTextTagCode.Instantly:
            case FFIXTextTagCode.Speed:
            case FFIXTextTagCode.Zidane:
            case FFIXTextTagCode.Vivi:
            case FFIXTextTagCode.Dagger:
            case FFIXTextTagCode.Steiner:
            case FFIXTextTagCode.Fraya:
            case FFIXTextTagCode.Quina:
            case FFIXTextTagCode.Eiko:
            case FFIXTextTagCode.Amarant:
            case FFIXTextTagCode.Party:
            case FFIXTextTagCode.NoFocus:
            case FFIXTextTagCode.End:
            case FFIXTextTagCode.Text:
            case FFIXTextTagCode.Item:
            case FFIXTextTagCode.Variable:
            case FFIXTextTagCode.Wait:
            case FFIXTextTagCode.PreChoose:
            case FFIXTextTagCode.PreChooseMask:
            case FFIXTextTagCode.Position:
            case FFIXTextTagCode.Offset:
            case FFIXTextTagCode.LowerRight:
            case FFIXTextTagCode.LowerLeft:
            case FFIXTextTagCode.UpperRight:
            case FFIXTextTagCode.UpperLeft:
            case FFIXTextTagCode.LowerCenter:
            case FFIXTextTagCode.UpperCenter:
            case FFIXTextTagCode.LowerRightForce:
            case FFIXTextTagCode.LowerLeftForce:
            case FFIXTextTagCode.UpperRightForce:
            case FFIXTextTagCode.UpperLeftForce:
            case FFIXTextTagCode.DialogPosition:
            case FFIXTextTagCode.Table:
            case FFIXTextTagCode.Widths:
            case FFIXTextTagCode.NewPage:
                index = num;
                return(true);

            default:
                return(false);
            }

            index = num;
            return(true);
        }
Пример #5
0
        public static Boolean ProcessOriginalTag(Char[] text, ref Int32 index, ref Boolean highShadow, ref Boolean center, ref Int32 ff9Signal, ref Vector3 extraOffset, ref Single tabX, ref Dialog.DialogImage insertImage)
        {
            if (index + 6 > text.Length || text[index] != '[')
            {
                return(false);
            }

            Int32  num = index;
            String a   = new String(text, index, 5);

            String[] renderOpcodeSymbols = NGUIText.RenderOpcodeSymbols;
            for (Int32 i = 0; i < (Int32)renderOpcodeSymbols.Length; i++)
            {
                String text2 = renderOpcodeSymbols[i];
                if (a == "[" + text2)
                {
                    PhraseRenderOpcodeSymbol(text, index, ref num, text2, ref highShadow, ref center, ref ff9Signal, ref extraOffset, ref tabX, ref insertImage);
                    break;
                }
            }
            if (num == index)
            {
                return(false);
            }
            if (num != -1)
            {
                index = num + 1;
                return(true);
            }
            index = text.Length;
            return(true);
        }
Пример #6
0
 private static void OnButton(out Dialog.DialogImage insertImage, Int32 index, Boolean checkConfig, String tag, String parameterStr)
 {
     insertImage = NGUIText.CreateButtonImage(parameterStr, checkConfig, tag);
     insertImage.TextPosition = index;
 }
Пример #7
0
 private static void OnIcon(Int32 index, out Dialog.DialogImage insertImage, Int32 oneParameterFromTag2)
 {
     insertImage = NGUIText.CreateIconImage(oneParameterFromTag2);
     insertImage.TextPosition = index;
 }
Пример #8
0
 private static void OnIconEx(Int32 index, out Dialog.DialogImage insertImage)
 {
     insertImage = NGUIText.CreateIconImage(FF9UIDataTool.NewIconId);
     insertImage.TextPosition = index;
 }
Пример #9
0
 private static void PhraseRenderOpcodeSymbol(Char[] text, Int32 index, ref Int32 closingBracket, String tag, ref Boolean highShadow, ref Boolean center, ref Int32 ff9Signal, ref Vector3 extraOffset, ref Single tabX, ref Dialog.DialogImage insertImage)
 {
     if (tag == NGUIText.Center)
     {
         closingBracket = Array.IndexOf(text, ']', index + 4);
         center         = true;
     }
     else if (tag == NGUIText.Shadow)
     {
         closingBracket = Array.IndexOf(text, ']', index + 4);
         highShadow     = true;
     }
     else if (tag == NGUIText.NoShadow)
     {
         closingBracket = Array.IndexOf(text, ']', index + 4);
         highShadow     = false;
     }
     else if (tag == NGUIText.Signal)
     {
         Int32 oneParameterFromTag = NGUIText.GetOneParameterFromTag(text, index, ref closingBracket);
         ff9Signal = 10 + oneParameterFromTag;
     }
     else if (tag == NGUIText.IncreaseSignal)
     {
         closingBracket = Array.IndexOf(text, ']', index + 4);
         ff9Signal      = 2;
     }
     else if (tag == NGUIText.MessageFeed)
     {
         Single[] allParameters = NGUIText.GetAllParameters(text, index, ref closingBracket);
         extraOffset.x += ((allParameters[0] >= FieldMap.HalfFieldWidth) ? 0f : (allParameters[0] * UIManager.ResourceXMultipier));
     }
     else if (tag == NGUIText.YSubOffset)
     {
         Single[] allParameters2 = NGUIText.GetAllParameters(text, index, ref closingBracket);
         extraOffset.y += allParameters2[0] * UIManager.ResourceYMultipier;
     }
     else if (tag == NGUIText.YAddOffset)
     {
         Single[] allParameters3 = NGUIText.GetAllParameters(text, index, ref closingBracket);
         extraOffset.y -= allParameters3[0] * UIManager.ResourceYMultipier;
     }
     else if (tag == NGUIText.MessageTab)
     {
         Single[] allParameters4 = NGUIText.GetAllParameters(text, index, ref closingBracket);
         if (allParameters4[0] == 224f)
         {
             allParameters4[0] = 0f;
         }
         tabX = allParameters4[0] * UIManager.ResourceYMultipier;
     }
     else if (tag == NGUIText.CustomButtonIcon || tag == NGUIText.ButtonIcon || tag == NGUIText.JoyStickButtonIcon || tag == NGUIText.KeyboardButtonIcon)
     {
         closingBracket = Array.IndexOf(text, ']', index + 4);
         String  parameterStr = new String(text, index + 6, closingBracket - index - 6);
         Boolean checkConfig  = tag == NGUIText.CustomButtonIcon || tag == NGUIText.JoyStickButtonIcon;
         OnButton(out insertImage, index, checkConfig, tag, parameterStr);
     }
     else if (tag == NGUIText.IconVar)
     {
         Int32 oneParameterFromTag2 = NGUIText.GetOneParameterFromTag(text, index, ref closingBracket);
         OnIcon(index, out insertImage, oneParameterFromTag2);
     }
     else if (tag == NGUIText.NewIcon)
     {
         Int32 oneParameterFromTag3 = NGUIText.GetOneParameterFromTag(text, index, ref closingBracket);
         OnIconEx(index, out insertImage);
     }
     else if (tag == NGUIText.MobileIcon)
     {
         Int32 oneParameterFromTag4 = NGUIText.GetOneParameterFromTag(text, index, ref closingBracket);
         OnMobileIcon(index, ref insertImage, oneParameterFromTag4);
     }
     else if (tag == NGUIText.TextOffset)
     {
         Single[] allParameters5 = NGUIText.GetAllParameters(text, index, ref closingBracket);
         extraOffset.x += (allParameters5[0] - 4f) * UIManager.ResourceXMultipier;
         extraOffset.y -= allParameters5[1] * UIManager.ResourceYMultipier;
     }
     else
     {
         closingBracket = Array.IndexOf(text, ']', index + 4);
     }
 }
Пример #10
0
	public GameObject InsertBitmapIcon(Dialog.DialogImage dialogImg, Dialog dialog)
	{
		return this.InsertBitmapIcon(dialogImg, dialog.PhraseLabel.gameObject);
	}
Пример #11
0
 private void Update()
 {
     if (!this.mActive)
     {
         return;
     }
     if (this.mReset)
     {
         this.mCurrentOffset = 0;
         this.ff9Signal      = 0;
         this.mReset         = false;
         this.mLabel         = base.GetComponent <UILabel>();
         this.mFullText      = this.mLabel.processedText;
         this.mFade.Clear();
         if (this.keepFullDimensions && this.scrollView != (UnityEngine.Object)null)
         {
             this.scrollView.UpdatePosition();
         }
     }
     if (String.IsNullOrEmpty(this.mFullText))
     {
         return;
     }
     while (this.mCurrentOffset < this.mFullText.Length && this.mNextChar <= RealTime.time)
     {
         Int32 num = this.mCurrentOffset;
         this.charsPerSecond = (Int32)((!this.mDynamicCharsPerSecond.ContainsKey(this.mCurrentOffset)) ? Mathf.Max(1, this.charsPerSecond) : this.mDynamicCharsPerSecond[this.mCurrentOffset]);
         if (this.mWaitList.ContainsKey(this.mCurrentOffset))
         {
             if (this.mWaitList[this.mCurrentOffset] > 0f)
             {
                 Dictionary <Int32, Single> dictionary2;
                 Dictionary <Int32, Single> dictionary = dictionary2 = this.mWaitList;
                 Int32  key2;
                 Int32  key  = key2 = this.mCurrentOffset;
                 Single num2 = dictionary2[key2];
                 dictionary[key] = num2 - ((!HonoBehaviorSystem.Instance.IsFastForwardModeActive()) ? Time.deltaTime : (Time.deltaTime * (Single)FF9StateSystem.Settings.FastForwardFactor));
                 break;
             }
             this.mNextChar = RealTime.time;
         }
         Dialog.DialogImage dialogImage = (Dialog.DialogImage)null;
         if (this.mLabel.supportEncoding)
         {
             while (NGUIText.ParseSymbol(this.mFullText, ref this.mCurrentOffset, ref this.ff9Signal, ref dialogImage))
             {
             }
         }
         if (this.onCharacterFinished != null && dialogImage != null)
         {
             this.onCharacterFinished(base.gameObject, dialogImage.TextPosition);
         }
         this.mCurrentOffset++;
         if (this.mCurrentOffset > this.mFullText.Length)
         {
             break;
         }
         Single num3 = (!HonoBehaviorSystem.Instance.IsFastForwardModeActive()) ? (1f / (Single)this.charsPerSecond) : (1f / (Single)(this.charsPerSecond * FF9StateSystem.Settings.FastForwardFactor));
         Char   c    = (Char)((num >= this.mFullText.Length) ? '\n' : this.mFullText[num]);
         if (c == '\n')
         {
             num3 += this.delayOnNewLine;
         }
         else if (num + 1 == this.mFullText.Length || this.mFullText[num + 1] <= ' ')
         {
             if (c == '.')
             {
                 if (num + 2 < this.mFullText.Length && this.mFullText[num + 1] == '.' && this.mFullText[num + 2] == '.')
                 {
                     num3 += this.delayOnPeriod * 3f;
                     num  += 2;
                 }
                 else
                 {
                     num3 += this.delayOnPeriod;
                 }
             }
             else if (c == '!' || c == '?')
             {
                 num3 += this.delayOnPeriod;
             }
         }
         if (this.mNextChar == 0f)
         {
             this.mNextChar = RealTime.time + num3;
         }
         else
         {
             this.mNextChar += num3;
         }
         if (this.fadeInTime != 0f)
         {
             TypewriterEffect.FadeEntry item = default(TypewriterEffect.FadeEntry);
             item.index = num;
             item.alpha = 0f;
             item.text  = this.mFullText.Substring(num, this.mCurrentOffset - num);
             this.mFade.Add(item);
         }
         else
         {
             this.mLabel.text = ((!this.keepFullDimensions) ? this.mFullText.Substring(0, this.mCurrentOffset) : (this.mFullText.Substring(0, this.mCurrentOffset) + "[00]" + this.mFullText.Substring(this.mCurrentOffset)));
             if (!this.keepFullDimensions && this.scrollView != (UnityEngine.Object)null)
             {
                 this.scrollView.UpdatePosition();
             }
         }
     }
     if (this.mCurrentOffset >= this.mFullText.Length)
     {
         this.mLabel.text = this.mFullText;
     }
     else if (this.mFade.size != 0)
     {
         Int32 i = 0;
         while (i < this.mFade.size)
         {
             TypewriterEffect.FadeEntry value = this.mFade[i];
             value.alpha += RealTime.deltaTime / this.fadeInTime;
             if (value.alpha < 1f)
             {
                 this.mFade[i] = value;
                 i++;
             }
             else
             {
                 this.mFade.RemoveAt(i);
             }
         }
         if (this.mFade.size == 0)
         {
             if (this.keepFullDimensions)
             {
                 this.mLabel.text = this.mFullText.Substring(0, this.mCurrentOffset) + "[00]" + this.mFullText.Substring(this.mCurrentOffset);
             }
             else
             {
                 this.mLabel.text = this.mFullText.Substring(0, this.mCurrentOffset);
             }
         }
         else
         {
             StringBuilder stringBuilder = new StringBuilder();
             for (Int32 j = 0; j < this.mFade.size; j++)
             {
                 TypewriterEffect.FadeEntry fadeEntry = this.mFade[j];
                 if (j == 0)
                 {
                     stringBuilder.Append(this.mFullText.Substring(0, fadeEntry.index));
                 }
                 stringBuilder.Append('[');
                 stringBuilder.Append(NGUIText.EncodeAlpha(fadeEntry.alpha));
                 stringBuilder.Append(']');
                 stringBuilder.Append(fadeEntry.text);
             }
             if (this.keepFullDimensions)
             {
                 stringBuilder.Append("[00]");
                 stringBuilder.Append(this.mFullText.Substring(this.mCurrentOffset));
             }
             this.mLabel.text = stringBuilder.ToString();
         }
     }
     if (this.mCurrentOffset >= this.mFullText.Length)
     {
         TypewriterEffect.current = this;
         EventDelegate.Execute(this.onFinished);
         TypewriterEffect.current = (TypewriterEffect)null;
         this.mActive             = false;
     }
 }
Пример #12
0
 private void OnButton(Int32 characterIndex, Boolean checkConfig, String tag, String parameterStr)
 {
     Dialog.DialogImage dialogImage = NGUIText.CreateButtonImage(parameterStr, checkConfig, tag);
     dialogImage.TextPosition = characterIndex;
     _dlg.ImageList.Add(dialogImage);
 }
Пример #13
0
 private void OnIcon(Int32 characterIndex, Int32 oneParameterFromTag3)
 {
     Dialog.DialogImage dialogImage2 = NGUIText.CreateIconImage(oneParameterFromTag3);
     dialogImage2.TextPosition = characterIndex;
     _dlg.ImageList.Add(dialogImage2);
 }
Пример #14
0
 private void OnNewIcon(Int32 characterIndex)
 {
     Dialog.DialogImage dialogImage3 = NGUIText.CreateIconImage(FF9UIDataTool.NewIconId);
     dialogImage3.TextPosition = characterIndex;
     _dlg.ImageList.Add(dialogImage3);
 }
Пример #15
0
        public static Boolean ParseSymbol(String text, ref Int32 index, BetterList <Color> colors, Boolean premultiply, ref Int32 sub, ref Boolean bold, ref Boolean italic, ref Boolean underline, ref Boolean strike, ref Boolean ignoreColor, ref Boolean highShadow, ref Boolean center, ref Boolean justified, ref Int32 ff9Signal, ref Vector3 extraOffset, ref Single tabX, ref Dialog.DialogImage insertImage)
        {
            Int32 length = text.Length;

            if (IsMemoriaTag(text, index))
            {
                Char[] chars = text.ToCharArray();
                if (DialogBoxRenderer.ProcessMemoriaTag(chars, ref index, colors, ref highShadow, ref center, ref justified, ref ff9Signal, ref extraOffset, ref tabX, ref insertImage))
                {
                    return(true);
                }

                return(false);
            }

            if (!IsOriginalTag(text, index))
            {
                return(false);
            }

            if (text[index + 2] == ']')
            {
                if (text[index + 1] == '-')
                {
                    if (colors != null && colors.size > 1)
                    {
                        colors.RemoveAt(colors.size - 1);
                    }
                    index += 3;
                    return(true);
                }
                String text2 = text.Substring(index, 3);
                String text3 = text2;
                switch (text3)
                {
                case "[b]":
                    bold   = true;
                    index += 3;
                    return(true);

                case "[i]":
                    italic = true;
                    index += 3;
                    return(true);

                case "[u]":
                    underline = true;
                    index    += 3;
                    return(true);

                case "[s]":
                    strike = true;
                    index += 3;
                    return(true);

                case "[c]":
                    ignoreColor = true;
                    index      += 3;
                    return(true);
                }
            }
            if (index + 4 > length)
            {
                return(false);
            }
            if (text[index + 3] == ']')
            {
                String text4 = text.Substring(index, 4);
                String text3 = text4;
                switch (text3)
                {
                case "[/b]":
                    bold   = false;
                    index += 4;
                    return(true);

                case "[/i]":
                    italic = false;
                    index += 4;
                    return(true);

                case "[/u]":
                    underline = false;
                    index    += 4;
                    return(true);

                case "[/s]":
                    strike = false;
                    index += 4;
                    return(true);

                case "[/c]":
                    ignoreColor = false;
                    index      += 4;
                    return(true);
                }
                Char ch  = text[index + 1];
                Char ch2 = text[index + 2];
                if (NGUIText.IsHex(ch) && NGUIText.IsHex(ch2))
                {
                    Int32 num2 = NGUIMath.HexToDecimal(ch) << 4 | NGUIMath.HexToDecimal(ch2);
                    NGUIText.mAlpha = (Single)num2 / 255f;
                    index          += 4;
                    return(true);
                }
            }
            if (index + 5 > length)
            {
                return(false);
            }
            if (text[index + 4] == ']')
            {
                String text5 = text.Substring(index, 5);
                switch (text5)
                {
                case "[sub]":
                    sub    = 1;
                    index += 5;
                    return(true);

                case "[sup]":
                    sub    = 2;
                    index += 5;
                    return(true);
                }
            }
            if (index + 6 > length)
            {
                return(false);
            }
            if (DialogBoxRenderer.ProcessOriginalTag(text.ToCharArray(), ref index, ref highShadow, ref center, ref ff9Signal, ref extraOffset, ref tabX, ref insertImage))
            {
                return(true);
            }
            if (text[index + 5] == ']')
            {
                String text6 = text.Substring(index, 6);
                String text3 = text6;
                switch (text3)
                {
                case "[/sub]":
                    sub    = 0;
                    index += 6;
                    return(true);

                case "[/sup]":
                    sub    = 0;
                    index += 6;
                    return(true);

                case "[/url]":
                    index += 6;
                    return(true);
                }
            }
            if (text[index + 1] == 'u' && text[index + 2] == 'r' && text[index + 3] == 'l' && text[index + 4] == '=')
            {
                Int32 num3 = text.IndexOf(']', index + 4);
                if (num3 != -1)
                {
                    index  = num3 + 1;
                    center = true;
                    return(true);
                }
                index  = text.Length;
                center = false;
                return(true);
            }
            if (index + 8 > length)
            {
                return(false);
            }
            if (text[index + 7] == ']')
            {
                Color color = NGUIText.ParseColor24(text, index + 1);
                if (NGUIText.EncodeColor24(color) != text.Substring(index + 1, 6).ToUpper())
                {
                    return(false);
                }
                if (colors != null)
                {
                    color.a = colors[colors.size - 1].a;
                    if (premultiply && color.a != 1f)
                    {
                        color = Color.Lerp(NGUIText.mInvisible, color, color.a);
                    }
                    colors.Add(color);
                }
                index += 8;
                return(true);
            }

            if (index + 10 > length)
            {
                return(false);
            }
            if (text[index + 9] != ']')
            {
                return(false);
            }
            Color color2 = NGUIText.ParseColor32(text, index + 1);

            if (NGUIText.EncodeColor32(color2) != text.Substring(index + 1, 8).ToUpper())
            {
                return(false);
            }
            if (colors != null)
            {
                if (premultiply && color2.a != 1f)
                {
                    color2 = Color.Lerp(NGUIText.mInvisible, color2, color2.a);
                }
                colors.Add(color2);
            }
            index += 10;
            return(true);
        }