private void FlushText() { string mTextQueue = this.mTextQueue; this.mTextQueue = (string)null; if (this.mCharacters == null || this.mCharacters.Length < mTextQueue.Length) { this.mCharacters = new EventDialogBubbleCustom.Character[mTextQueue.Length * 2]; } string str = "REPLACE_PLAYER_NAME"; string newValue = string.Empty; if (Object.op_Inequality((Object)MonoSingleton <GameManager> .GetInstanceDirect(), (Object)null)) { newValue = MonoSingleton <GameManager> .GetInstanceDirect().Player.Name; } string s = mTextQueue.Replace("<p_name>", str).Replace("<br>", "\n"); EventAction_Dialog.TextSpeedTypes speed = EventAction_Dialog.TextSpeedTypes.Normal; int n = 0; EventDialogBubbleCustom.Ctx ctx = new EventDialogBubbleCustom.Ctx(); ctx.Interval = speed.ToFloat(); ctx.Color = Color32.op_Implicit(!Object.op_Inequality((Object)this.BodyText, (Object)null) ? Color.get_black() : ((Graphic)this.BodyText).get_color()); this.mNumCharacters = 0; EventDialogBubbleCustom.Element[] c = EventDialogBubbleCustom.SplitTags(s); for (int index = 0; index < c.Length; ++index) { if (c[index] != null) { c[index].Value = c[index].Value.Replace(str, newValue); } } this.Parse(c, ref n, (string)null, ctx); if (Object.op_Inequality((Object)this.BodyText, (Object)null)) { this.BodyText.set_text(string.Empty); } this.mStartTime = Time.get_time() + this.FadeInTime; this.mTextNeedsUpdate = this.mNumCharacters > 0; this.mFadingOut = false; if (string.IsNullOrEmpty(this.VoiceSheetName) || string.IsNullOrEmpty(this.VoiceCueName)) { this.FadeOutVoice(); } else { this.mVoice = new MySound.Voice(this.VoiceSheetName, (string)null, (string)null); this.mVoice.Play(this.VoiceCueName, 0.0f); this.VoiceCueName = (string)null; } }
private void PushCharacters(string s, EventDialogBubbleCustom.Ctx ctx) { float num = this.mNumCharacters <= 0 ? 0.0f : this.mCharacters[this.mNumCharacters - 1].TimeOffset; for (int index = 0; index < s.Length; ++index) { float interval = ctx.Interval; if ((int)s[index] == 10) { interval = this.NewLineInterval; } this.mCharacters[this.mNumCharacters] = new EventDialogBubbleCustom.Character(s[index], ctx.Color, interval, num + interval); num = this.mCharacters[this.mNumCharacters].TimeOffset; ++this.mNumCharacters; } }
private void Parse(EventDialogBubbleCustom.Element[] c, ref int n, string end, EventDialogBubbleCustom.Ctx ctx) { while (n < c.Length) { if (!string.IsNullOrEmpty(c[n].Tag)) { Match match1; if ((match1 = EventDialogBubbleCustom.regEndTag.Match(c[n].Tag)).Success) { if (match1.Groups[1].Value == end) { ++n; break; } ++n; } else { Match match2; if ((match2 = EventDialogBubbleCustom.regColor.Match(c[n].Tag)).Success) { ++n; Color32 color = ctx.Color; ctx.Color = ColorUtility.ParseColor(match2.Groups[1].Value); this.Parse(c, ref n, "color", ctx); ctx.Color = color; } else { ++n; } } } else { this.PushCharacters(c[n].Value, ctx); ++n; } } }