Show original dialogue name
Dialogues are identified by ESM::RefId
with string values which are stored in a shared static map. When a new object of ESM::StringRefId
is created if the value exist in the map it will be reused. The map keys are case-insensitive so if there are 2 equal ids bu having different case loaded from content files the first one will be used. This leads to issues like described in this comment.
Add mStringId
field to ESM::Dialogue
to store original value from the content file and use it to show dialogue name in the dialogue menu. Add new sub record ID__
to store ESM::RefId
assuming it may have any type and use NAME
to store mStringId
for new save files. For MaxStringRefIdFormatVersion
and older format versions load mStringId
from NAME
first and then convert it to mId
. For versions in between load NAME
as mId
and convert it to mStringId
. Also support new field in the editor.