static void Prefix(GoalSprite __instance) { var txtDir = __instance.GetType().GetField("txtDir", BindingFlags.Public | BindingFlags.Instance); var txtDirValue = txtDir.GetValue(__instance); var txtName = txtDirValue.ToString().Split('\\')[2].Split('.')[0]; /* * Files starting with 'm', '10' or that contains 'h', don't contain any choices that needs to be dubbed * or don't have any choices at all * '6h' is an exception */ if ((txtName.ToLower().Contains('h') && txtName.ToLower() != "6h") || txtName.StartsWith("10") || txtName.StartsWith("m") ) { return; } var waitingForChoiceField = __instance.GetType().GetField("waitingForChoice", BindingFlags.NonPublic | BindingFlags.Instance); waitingForChoice = (bool)waitingForChoiceField.GetValue(__instance); var submitBlockField = __instance.GetType().GetField("submitBlock", BindingFlags.NonPublic | BindingFlags.Instance); submitBlock = (bool)submitBlockField.GetValue(__instance); if (waitingForChoice) { if (Input.GetButton("Submit")) { if (!submitBlock) { //Debug.LogWarning("Player choice index: "+ playerChoiceIndex); var dialogueIndexField = __instance.GetType().GetField("dialogueIndex", BindingFlags.NonPublic | BindingFlags.Instance); playerChoiceIndex = dialogueIndexField.GetValue(__instance).ToString(); var voiceAudioPath = Main.currentDirectory + "\\audio\\" + txtName + "\\answer_" + playerChoiceIndex + ".wav"; Main.instance.playAudio(voiceAudioPath); } } } }
static void Prefix(GoalSprite __instance, int a) { //TO-DO // List of excluded audio indexes, lines with nothing wrote just, dots or something like that // '9_4' file index 8,9,10 is just '...' I don't think this need to be dubbed var txtDir = __instance.GetType().GetField("txtDir", BindingFlags.Public | BindingFlags.Instance); var txtDirValue = txtDir.GetValue(__instance); var txtName = txtDirValue.ToString().Split('\\')[2].Split('.')[0]; if (Main.excludedDialogueFiles.Contains(txtName)) { return; } var dialogueArrayField = __instance.GetType().GetField("dialogueArray", BindingFlags.Public | BindingFlags.Instance); dialogueArray = (dialogueElement[])dialogueArrayField.GetValue(__instance); if (dialogueArray[a].talkText[0] != -1) { if (dialogueArray[a].talkText.Length > 1) { filename = dialogueArray[a].talkText[0] + "_" + dialogueArray[a].talkText[1]; //Debug.LogWarning(dialogueArray[a].talkText[0] + " & " + dialogueArray[a].talkText[1]); } else { filename = dialogueArray[a].talkText[0].ToString(); //Debug.LogWarning(dialogueArray[a].talkText[0]); } } else { return; } var voiceAudioPath = Main.currentDirectory + "\\audio\\" + txtName + "\\" + filename + ".wav"; Main.instance.playAudio(voiceAudioPath); }