Skip to main content

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
}

...