Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @replaceMethod(SubtitleLineLogicController)
- public func SetLineData(const lineData: script_ref<scnDialogLineData>) -> Void {
- let characterRecordID: TweakDBID;
- let displayData: scnDialogDisplayString;
- let isValidName: Bool;
- let kiroshiAnimationCtrl: ref<inkTextKiroshiAnimController>;
- let motherTongueCtrl: ref<inkTextMotherTongueController>;
- let playerPuppet: ref<gamePuppetBase>;
- let speakerName: String;
- let speakerNameDisplayText: String;
- let speakerNameWidgetStateName: CName;
- this.m_lineData = Deref(lineData);
- if IsStringValid(Deref(lineData).speakerName) {
- speakerName = Deref(lineData).speakerName;
- } else {
- speakerName = Deref(lineData).speaker.GetDisplayName();
- };
- isValidName = IsStringValid(speakerName);
- speakerNameDisplayText = isValidName ? "LocKey#76968" : "";
- if isValidName {
- this.m_spekerNameParams.UpdateLocalizedString("NAME", speakerName);
- };
- if IsMultiplayer() {
- speakerNameWidgetStateName = n"Default";
- playerPuppet = Deref(lineData).speaker as gamePuppetBase;
- if playerPuppet != null {
- characterRecordID = playerPuppet.GetRecordID();
- speakerNameWidgetStateName = TweakDBInterface.GetCharacterRecord(characterRecordID).CpoClassName();
- };
- inkWidgetRef.SetState(this.m_speakerNameWidget, speakerNameWidgetStateName);
- };
- if Equals(Deref(lineData).type, scnDialogLineType.Radio) {
- this.m_targetTextWidgetRef = this.m_radioSubtitle;
- inkTextRef.SetLocalizedTextScript(this.m_radioSpeaker, speakerNameDisplayText, this.m_spekerNameParams);
- inkWidgetRef.SetVisible(this.m_speakerNameWidget, false);
- inkWidgetRef.SetVisible(this.m_subtitleWidget, false);
- inkWidgetRef.SetVisible(this.m_radioSpeaker, true);
- inkWidgetRef.SetVisible(this.m_radioSubtitle, true);
- } else {
- if Equals(Deref(lineData).type, scnDialogLineType.AlwaysCinematicNoSpeaker) {
- this.m_targetTextWidgetRef = this.m_radioSubtitle;
- inkWidgetRef.SetVisible(this.m_speakerNameWidget, false);
- inkWidgetRef.SetVisible(this.m_subtitleWidget, false);
- inkWidgetRef.SetVisible(this.m_radioSpeaker, false);
- inkWidgetRef.SetVisible(this.m_radioSubtitle, true);
- } else {
- if Equals(Deref(lineData).type, scnDialogLineType.GlobalTVAlwaysVisible) {
- this.m_targetTextWidgetRef = this.m_subtitleWidget;
- inkWidgetRef.SetVisible(this.m_speakerNameWidget, false);
- inkWidgetRef.SetVisible(this.m_subtitleWidget, true);
- inkWidgetRef.SetVisible(this.m_radioSpeaker, false);
- inkWidgetRef.SetVisible(this.m_radioSubtitle, false);
- } else {
- this.m_targetTextWidgetRef = this.m_subtitleWidget;
- inkTextRef.SetLocalizedTextScript(this.m_speakerNameWidget, speakerNameDisplayText, this.m_spekerNameParams);
- inkWidgetRef.SetVisible(this.m_speakerNameWidget, true);
- inkWidgetRef.SetVisible(this.m_subtitleWidget, true);
- inkWidgetRef.SetVisible(this.m_radioSpeaker, false);
- inkWidgetRef.SetVisible(this.m_radioSubtitle, false);
- };
- };
- };
- if Equals(Deref(lineData).type, scnDialogLineType.Narrator) {
- inkWidgetRef.SetState(this.m_speakerNameWidget, n"MainNarrator");
- inkWidgetRef.SetState(this.m_subtitleWidget, n"MainNarrator");
- inkWidgetRef.SetState(this.m_motherTongueContainter, n"MainNarrator");
- };
- if scnDialogLineData.HasKiroshiTag(Deref(lineData)) {
- displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
- if this.IsKiroshiEnabled() {
- // kiroshiAnimationCtrl = inkWidgetRef.GetController(this.m_kiroshiAnimationContainer) as inkTextKiroshiAnimController;
- // kiroshiAnimationCtrl.SetPreTranslatedText(displayData.preTranslatedText);
- // kiroshiAnimationCtrl.SetPostTranslatedText(displayData.postTranslatedText);
- // kiroshiAnimationCtrl.SetNativeText(displayData.text, displayData.language);
- // kiroshiAnimationCtrl.SetTargetText(displayData.translation);
- // this.SetupAnimation(this.m_lineData.duration, kiroshiAnimationCtrl);
- // kiroshiAnimationCtrl.PlaySetAnimation();
- inkTextRef.SetText(this.m_targetTextWidgetRef, displayData.translation);
- } else {
- motherTongueCtrl = inkWidgetRef.GetControllerByType(this.m_motherTongueContainter, n"inkTextMotherTongueController") as inkTextMotherTongueController;
- motherTongueCtrl.SetPreTranslatedText("");
- motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
- motherTongueCtrl.SetTranslatedText("");
- motherTongueCtrl.SetPostTranslatedText("");
- motherTongueCtrl.ApplyTexts();
- };
- } else {
- if scnDialogLineData.HasMothertongueTag(Deref(lineData)) {
- displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
- motherTongueCtrl = inkWidgetRef.GetControllerByType(this.m_motherTongueContainter, n"inkTextMotherTongueController") as inkTextMotherTongueController;
- motherTongueCtrl.SetPreTranslatedText(displayData.preTranslatedText);
- motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
- motherTongueCtrl.SetTranslatedText(displayData.translation);
- motherTongueCtrl.SetPostTranslatedText(displayData.postTranslatedText);
- motherTongueCtrl.ApplyTexts();
- } else {
- inkTextRef.SetText(this.m_targetTextWidgetRef, this.m_lineData.text);
- this.PlayLibraryAnimation(n"intro");
- };
- };
- }
- @replaceMethod(ChatterLineLogicController)
- public func SetLineData(const lineData: script_ref<scnDialogLineData>) -> Void {
- let animCtrl: wref<inkTextKiroshiAnimController>;
- let displayData: scnDialogDisplayString;
- let isWide: Bool;
- let motherTongueCtrl: wref<inkTextMotherTongueController>;
- let gameObject: wref<GameObject> = Deref(lineData).speaker;
- this.m_isOverHead = Equals(Deref(lineData).type, scnDialogLineType.OverHead);
- if IsDefined(gameObject) && gameObject.IsDevice() {
- this.m_rootWidget.SetAnchorPoint(new Vector2(0.50, 0.00));
- this.m_limitSubtitlesDistance = true;
- this.m_subtitlesMaxDistance = 10.00;
- this.m_bubbleMinDistance = 10.00;
- } else {
- if IsDefined(gameObject) && this.m_isOverHead {
- this.m_rootWidget.SetAnchorPoint(new Vector2(0.50, 1.00));
- this.m_limitSubtitlesDistance = true;
- this.m_subtitlesMaxDistance = 30.00;
- this.m_bubbleMinDistance = 25.00;
- } else {
- this.m_rootWidget.SetAnchorPoint(new Vector2(0.50, 1.00));
- this.m_limitSubtitlesDistance = false;
- this.m_subtitlesMaxDistance = 0.00;
- this.m_bubbleMinDistance = 0.00;
- };
- };
- this.m_projection.SetEntity(Deref(lineData).speaker);
- displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
- isWide = StrLen(displayData.translation) >= this.c_ExtraWideTextWidth;
- this.m_ownerId = Deref(lineData).speaker.GetEntityID();
- if isWide {
- animCtrl = this.m_kiroshiAnimationCtrl_Wide;
- motherTongueCtrl = this.m_motherTongueCtrl_Wide;
- } else {
- animCtrl = this.m_kiroshiAnimationCtrl_Normal;
- motherTongueCtrl = this.m_motherTongueCtrl_Normal;
- };
- inkWidgetRef.SetVisible(this.m_text_normal, !isWide);
- inkWidgetRef.SetVisible(this.m_text_wide, isWide);
- inkWidgetRef.SetVisible(this.m_container_normal, !isWide);
- inkWidgetRef.SetVisible(this.m_container_wide, isWide);
- inkWidgetRef.SetVisible(this.m_TextContainer, false);
- inkWidgetRef.SetVisible(this.m_speachBubble, true);
- if scnDialogLineData.HasKiroshiTag(Deref(lineData)) {
- displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
- if this.IsKiroshiEnabled() {
- // animCtrl.SetPreTranslatedText(displayData.preTranslatedText);
- // animCtrl.SetNativeText(displayData.text, displayData.language);
- // animCtrl.SetTargetText(displayData.translation);
- // animCtrl.SetPostTranslatedText(displayData.postTranslatedText);
- // this.SetupAnimation(lineData.duration, animCtrl);
- // animCtrl.PlaySetAnimation();
- inkTextRef.SetText(this.m_text_normal, displayData.translation);
- inkTextRef.SetText(this.m_text_wide, displayData.translation);
- } else {
- motherTongueCtrl.SetPreTranslatedText("");
- motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
- motherTongueCtrl.SetTranslatedText("");
- motherTongueCtrl.SetPostTranslatedText("");
- motherTongueCtrl.ApplyTexts();
- };
- } else {
- if scnDialogLineData.HasMothertongueTag(Deref(lineData)) {
- displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
- motherTongueCtrl.SetPreTranslatedText(displayData.preTranslatedText);
- motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
- motherTongueCtrl.SetTranslatedText(displayData.translation);
- motherTongueCtrl.SetPostTranslatedText(displayData.postTranslatedText);
- motherTongueCtrl.ApplyTexts();
- } else {
- inkTextRef.SetText(this.m_text_normal, Deref(lineData).text);
- inkTextRef.SetText(this.m_text_wide, Deref(lineData).text);
- };
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement