Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dialogue Editor breaks the game editing in BioD_ProEar_130Trial_LOC_INT #125

Closed
linkenski opened this issue May 20, 2019 · 1 comment
Closed
Assignees

Comments

@linkenski
Copy link

linkenski commented May 20, 2019

Description
Any edit of the Defense Committee scene using DialogueEd will cause it to break, making the game continue to run but without being able to play enter the BioConversation that's required to progress, and instead drops you into the level in exploration mode.

To Reproduce

  1. Open BioD_ProEar_130Trial_LOC_INT and load "Ghidra Script Experiment #356 : proear_trial_m_dlg"
  2. Go to Entry # 4 and either add your own new TLK string to the Reply list as a "REPLY_CATEGORY_DEFAULT" or clone one of the existing ones.

Expected behavior
Entering the Defense Committee scene that uses this file now breaks and the BioConversation will not start, instead leaving you in Exploration mode.
trial bug

Version information:
Done with ME3Explorer v3.1.2.13 as well as .14. Issue persists.

Other information
Using PackageEd instead and manually editing the arrays in the conversation from there causes the game to run as intended.
Further, I was getting black graphical artifacts in ProEar_440Escape during the last stand after making DialogueEd edits. It seems to corrupt something. My guess is that it's the saving process that causes harmful changes in the .pcc file. I have not checked if making no changes and saving causes the same issue.

@SirCxyrtyx SirCxyrtyx self-assigned this May 20, 2019
@SirCxyrtyx
Copy link
Member

Thanks for the bug report. Turns out that Dialogue Editor has been saving BioConversations incorrectly all along. I'm kind of amazed it's never been a problem before. I should have a fix for this committed soon.

For historical purposes, here's the exact bug:
In Unreal, Names have two parts, an index into the namelist(a list of strings) and Number, an integer which can be used to differentiate instances of the Name. If Number is 0, then the Name is a non-instanced Name, which can be represented just by the string. If Number is greater than 0, then the Name is an instanced Name, represented by the string followed by an underscore and Number - 1. So, for example, "proear_runner" is a non-instanced Name with a Number of 0, and "proear_tribunal_1" is an instanced Name with a Number of 2.

Dialogue Editor ignores the Number part of the Name, and when serializing the BioConversation, writes all Names with Number set to 0. Since most Names are non-instanced Names, this usually works. Unfortunately, the BioConversation you were trying to edit has two instanced names in the SpeakerList.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants