Advertisement
Lavallet

InstantTranslations.reds for 2.12a

May 10th, 2024 (edited)
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 9.23 KB | Gaming | 0 0
  1. @replaceMethod(SubtitleLineLogicController)
  2.   public func SetLineData(const lineData: script_ref<scnDialogLineData>) -> Void {
  3.     let characterRecordID: TweakDBID;
  4.     let displayData: scnDialogDisplayString;
  5.     let isValidName: Bool;
  6.     let kiroshiAnimationCtrl: ref<inkTextKiroshiAnimController>;
  7.     let motherTongueCtrl: ref<inkTextMotherTongueController>;
  8.     let playerPuppet: ref<gamePuppetBase>;
  9.     let speakerName: String;
  10.     let speakerNameDisplayText: String;
  11.     let speakerNameWidgetStateName: CName;
  12.     this.m_lineData = Deref(lineData);
  13.     if IsStringValid(Deref(lineData).speakerName) {
  14.       speakerName = Deref(lineData).speakerName;
  15.     } else {
  16.       speakerName = Deref(lineData).speaker.GetDisplayName();
  17.     };
  18.     isValidName = IsStringValid(speakerName);
  19.     speakerNameDisplayText = isValidName ? "LocKey#76968" : "";
  20.     if isValidName {
  21.       this.m_spekerNameParams.UpdateLocalizedString("NAME", speakerName);
  22.     };
  23.     if IsMultiplayer() {
  24.       speakerNameWidgetStateName = n"Default";
  25.       playerPuppet = Deref(lineData).speaker as gamePuppetBase;
  26.       if playerPuppet != null {
  27.         characterRecordID = playerPuppet.GetRecordID();
  28.         speakerNameWidgetStateName = TweakDBInterface.GetCharacterRecord(characterRecordID).CpoClassName();
  29.       };
  30.       inkWidgetRef.SetState(this.m_speakerNameWidget, speakerNameWidgetStateName);
  31.     };
  32.     if Equals(Deref(lineData).type, scnDialogLineType.Radio) {
  33.       this.m_targetTextWidgetRef = this.m_radioSubtitle;
  34.       inkTextRef.SetLocalizedTextScript(this.m_radioSpeaker, speakerNameDisplayText, this.m_spekerNameParams);
  35.       inkWidgetRef.SetVisible(this.m_speakerNameWidget, false);
  36.       inkWidgetRef.SetVisible(this.m_subtitleWidget, false);
  37.       inkWidgetRef.SetVisible(this.m_radioSpeaker, true);
  38.       inkWidgetRef.SetVisible(this.m_radioSubtitle, true);
  39.     } else {
  40.       if Equals(Deref(lineData).type, scnDialogLineType.AlwaysCinematicNoSpeaker) {
  41.         this.m_targetTextWidgetRef = this.m_radioSubtitle;
  42.         inkWidgetRef.SetVisible(this.m_speakerNameWidget, false);
  43.         inkWidgetRef.SetVisible(this.m_subtitleWidget, false);
  44.         inkWidgetRef.SetVisible(this.m_radioSpeaker, false);
  45.         inkWidgetRef.SetVisible(this.m_radioSubtitle, true);
  46.       } else {
  47.         if Equals(Deref(lineData).type, scnDialogLineType.GlobalTVAlwaysVisible) {
  48.           this.m_targetTextWidgetRef = this.m_subtitleWidget;
  49.           inkWidgetRef.SetVisible(this.m_speakerNameWidget, false);
  50.           inkWidgetRef.SetVisible(this.m_subtitleWidget, true);
  51.           inkWidgetRef.SetVisible(this.m_radioSpeaker, false);
  52.           inkWidgetRef.SetVisible(this.m_radioSubtitle, false);
  53.         } else {
  54.           this.m_targetTextWidgetRef = this.m_subtitleWidget;
  55.           inkTextRef.SetLocalizedTextScript(this.m_speakerNameWidget, speakerNameDisplayText, this.m_spekerNameParams);
  56.           inkWidgetRef.SetVisible(this.m_speakerNameWidget, true);
  57.           inkWidgetRef.SetVisible(this.m_subtitleWidget, true);
  58.           inkWidgetRef.SetVisible(this.m_radioSpeaker, false);
  59.           inkWidgetRef.SetVisible(this.m_radioSubtitle, false);
  60.         };
  61.       };
  62.     };
  63.     if Equals(Deref(lineData).type, scnDialogLineType.Narrator) {
  64.       inkWidgetRef.SetState(this.m_speakerNameWidget, n"MainNarrator");
  65.       inkWidgetRef.SetState(this.m_subtitleWidget, n"MainNarrator");
  66.       inkWidgetRef.SetState(this.m_motherTongueContainter, n"MainNarrator");
  67.     };
  68.     if scnDialogLineData.HasKiroshiTag(Deref(lineData)) {
  69.       displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
  70.       if this.IsKiroshiEnabled() {
  71. //        kiroshiAnimationCtrl = inkWidgetRef.GetController(this.m_kiroshiAnimationContainer) as inkTextKiroshiAnimController;
  72. //        kiroshiAnimationCtrl.SetPreTranslatedText(displayData.preTranslatedText);
  73. //        kiroshiAnimationCtrl.SetPostTranslatedText(displayData.postTranslatedText);
  74. //        kiroshiAnimationCtrl.SetNativeText(displayData.text, displayData.language);
  75. //        kiroshiAnimationCtrl.SetTargetText(displayData.translation);
  76. //        this.SetupAnimation(this.m_lineData.duration, kiroshiAnimationCtrl);
  77. //        kiroshiAnimationCtrl.PlaySetAnimation();
  78.         inkTextRef.SetText(this.m_targetTextWidgetRef, displayData.translation);
  79.       } else {
  80.         motherTongueCtrl = inkWidgetRef.GetControllerByType(this.m_motherTongueContainter, n"inkTextMotherTongueController") as inkTextMotherTongueController;
  81.         motherTongueCtrl.SetPreTranslatedText("");
  82.         motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
  83.         motherTongueCtrl.SetTranslatedText("");
  84.         motherTongueCtrl.SetPostTranslatedText("");
  85.         motherTongueCtrl.ApplyTexts();
  86.       };
  87.     } else {
  88.       if scnDialogLineData.HasMothertongueTag(Deref(lineData)) {
  89.         displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
  90.         motherTongueCtrl = inkWidgetRef.GetControllerByType(this.m_motherTongueContainter, n"inkTextMotherTongueController") as inkTextMotherTongueController;
  91.         motherTongueCtrl.SetPreTranslatedText(displayData.preTranslatedText);
  92.         motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
  93.         motherTongueCtrl.SetTranslatedText(displayData.translation);
  94.         motherTongueCtrl.SetPostTranslatedText(displayData.postTranslatedText);
  95.         motherTongueCtrl.ApplyTexts();
  96.       } else {
  97.         inkTextRef.SetText(this.m_targetTextWidgetRef, this.m_lineData.text);
  98.         this.PlayLibraryAnimation(n"intro");
  99.       };
  100.     };
  101.   }
  102.  
  103. @replaceMethod(ChatterLineLogicController)
  104.   public func SetLineData(const lineData: script_ref<scnDialogLineData>) -> Void {
  105.     let animCtrl: wref<inkTextKiroshiAnimController>;
  106.     let displayData: scnDialogDisplayString;
  107.     let isWide: Bool;
  108.     let motherTongueCtrl: wref<inkTextMotherTongueController>;
  109.     let gameObject: wref<GameObject> = Deref(lineData).speaker;
  110.     this.m_isOverHead = Equals(Deref(lineData).type, scnDialogLineType.OverHead);
  111.     if IsDefined(gameObject) && gameObject.IsDevice() {
  112.       this.m_rootWidget.SetAnchorPoint(new Vector2(0.50, 0.00));
  113.       this.m_limitSubtitlesDistance = true;
  114.       this.m_subtitlesMaxDistance = 10.00;
  115.       this.m_bubbleMinDistance = 10.00;
  116.     } else {
  117.       if IsDefined(gameObject) && this.m_isOverHead {
  118.         this.m_rootWidget.SetAnchorPoint(new Vector2(0.50, 1.00));
  119.         this.m_limitSubtitlesDistance = true;
  120.         this.m_subtitlesMaxDistance = 30.00;
  121.         this.m_bubbleMinDistance = 25.00;
  122.       } else {
  123.         this.m_rootWidget.SetAnchorPoint(new Vector2(0.50, 1.00));
  124.         this.m_limitSubtitlesDistance = false;
  125.         this.m_subtitlesMaxDistance = 0.00;
  126.         this.m_bubbleMinDistance = 0.00;
  127.       };
  128.     };
  129.     this.m_projection.SetEntity(Deref(lineData).speaker);
  130.     displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
  131.     isWide = StrLen(displayData.translation) >= this.c_ExtraWideTextWidth;
  132.     this.m_ownerId = Deref(lineData).speaker.GetEntityID();
  133.     if isWide {
  134.       animCtrl = this.m_kiroshiAnimationCtrl_Wide;
  135.       motherTongueCtrl = this.m_motherTongueCtrl_Wide;
  136.     } else {
  137.       animCtrl = this.m_kiroshiAnimationCtrl_Normal;
  138.       motherTongueCtrl = this.m_motherTongueCtrl_Normal;
  139.     };
  140.     inkWidgetRef.SetVisible(this.m_text_normal, !isWide);
  141.     inkWidgetRef.SetVisible(this.m_text_wide, isWide);
  142.     inkWidgetRef.SetVisible(this.m_container_normal, !isWide);
  143.     inkWidgetRef.SetVisible(this.m_container_wide, isWide);
  144.     inkWidgetRef.SetVisible(this.m_TextContainer, false);
  145.     inkWidgetRef.SetVisible(this.m_speachBubble, true);
  146.     if scnDialogLineData.HasKiroshiTag(Deref(lineData)) {
  147.       displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
  148.       if this.IsKiroshiEnabled() {
  149.  //       animCtrl.SetPreTranslatedText(displayData.preTranslatedText);
  150.  //       animCtrl.SetNativeText(displayData.text, displayData.language);
  151.  //       animCtrl.SetTargetText(displayData.translation);
  152.  //       animCtrl.SetPostTranslatedText(displayData.postTranslatedText);
  153.  //       this.SetupAnimation(lineData.duration, animCtrl);
  154.  //       animCtrl.PlaySetAnimation();
  155.         inkTextRef.SetText(this.m_text_normal, displayData.translation);
  156.         inkTextRef.SetText(this.m_text_wide, displayData.translation);
  157.       } else {
  158.         motherTongueCtrl.SetPreTranslatedText("");
  159.         motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
  160.         motherTongueCtrl.SetTranslatedText("");
  161.         motherTongueCtrl.SetPostTranslatedText("");
  162.         motherTongueCtrl.ApplyTexts();
  163.       };
  164.     } else {
  165.       if scnDialogLineData.HasMothertongueTag(Deref(lineData)) {
  166.         displayData = scnDialogLineData.GetDisplayText(Deref(lineData));
  167.         motherTongueCtrl.SetPreTranslatedText(displayData.preTranslatedText);
  168.         motherTongueCtrl.SetNativeText(displayData.text, displayData.language);
  169.         motherTongueCtrl.SetTranslatedText(displayData.translation);
  170.         motherTongueCtrl.SetPostTranslatedText(displayData.postTranslatedText);
  171.         motherTongueCtrl.ApplyTexts();
  172.       } else {
  173.         inkTextRef.SetText(this.m_text_normal, Deref(lineData).text);
  174.         inkTextRef.SetText(this.m_text_wide, Deref(lineData).text);
  175.       };
  176.     };
  177.   }
  178.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement