3.7.2 Code Changes
Narrative.uplugin
/Narrative/Narrative.uplugin
...
"VersionName": "3.7.0",
"VersionName": "3.7.2",
...
NC_HasCompletedDataTask.uasset
- UPDATED (asset)
W_NarrativeMenu_Dialogue.uasset
- UPDATED (asset)
BP_Narrative3Overlay.uasset
- UPDATED (asset)
Dialogue.cpp
/Narrative/Source/Narrative/Private/Dialogue.cpp
if (OwningPawn->GetDistanceTo(SpeakerAvatar) > EndDialogueDist)
{
// Clean up dialogue
if (DialogueAudio)
{
DialogueAudio->Stop();
}
StopDialogueAnimation();
SetPartyCurrentSpeaker(nullptr);
...
DialogueSM.cpp
/Narrative/Source/Narrative/Private/DialogueSM.cpp
//TODO consolidate the Character checking stuff into UNarrativeConditions as we're violating dont repeat yourself here - dialogue node base has something similar to this
for (auto& Cond : LineToCheck.Conditions)
{
// Stop crashes when condition doesn't exist
if (Cond)
{
...
bAllConditionsPass = false;
break;
if (Cond->CheckCondition(OwningComponent->GetOwningPawn(), OwningComponent->GetOwningController(), OwningComponent) == Cond->bNot)
{
bAllConditionsPass = false;
break;
}
}
}
}
NarrativeTaskManager.cpp
/Narrative/Source/Narrative/Private/NarrativeTaskManager.cpp
{
Super::Initialize(Collection);
FAssetRegistryModule& AssetRegistryModule = FModuleManager::LoadModuleChecked<FAssetRegistryModule>("AssetRegistry");
// Bind to the asset registry module loading to allow standalone, pie and package to all find assets
AssetRegistryModule.Get().OnFilesLoaded().AddUObject(this, &UNarrativeTaskManager::CacheNarrativeTasks);
// Also try immediately (works for PIE and packaged)
if (NarrativeTaskMap.Num() > 0)
{
return; // Already cached, no need to re-run the logic
}
...