@@ -974,6 +974,8 @@ void UMounteaDialogueManager::SetDialogueWidgetClass_Server_Implementation(TSubc
974
974
975
975
bool UMounteaDialogueManager::InvokeDialogueUI_Implementation (FString& Message)
976
976
{
977
+ RefreshDialogueWidgetHelper (this , MounteaDialogueWidgetCommands::CreateDialogueWidget);
978
+
977
979
if (UMounteaDialogueSystemBFC::GetDialogueSystemSettings_Internal () == nullptr )
978
980
{
979
981
Message = TEXT (" Cannot find Dialogue Settings!" );
@@ -1034,17 +1036,17 @@ bool UMounteaDialogueManager::InvokeDialogueUI_Implementation(FString& Message)
1034
1036
1035
1037
bool UMounteaDialogueManager::UpdateDialogueUI_Implementation (FString& Message, const FString& Command)
1036
1038
{
1039
+ OnDialogueWidgetCommandRequested.Broadcast (this , Command);
1040
+
1037
1041
if (!DialogueWidgetPtr)
1038
1042
{
1039
1043
LOG_ERROR (TEXT (" [Dialogue Command Request] Invalid Dialogue Widget!" ))
1040
1044
1041
1045
return false ;
1042
1046
}
1043
-
1044
1047
1045
1048
LOG_INFO (TEXT (" [Dialogue Command Requested] %s" ), *Command)
1046
-
1047
- OnDialogueWidgetCommandRequested.Broadcast (this , Command);
1049
+
1048
1050
1049
1051
if (DialogueWidgetPtr)
1050
1052
{
@@ -1057,6 +1059,8 @@ bool UMounteaDialogueManager::UpdateDialogueUI_Implementation(FString& Message,
1057
1059
1058
1060
bool UMounteaDialogueManager::CloseDialogueUI_Implementation ()
1059
1061
{
1062
+ OnDialogueWidgetCommandRequested.Broadcast (this , MounteaDialogueWidgetCommands::CloseDialogueWidget);
1063
+
1060
1064
APlayerController* playerController = UMounteaDialogueSystemBFC::FindPlayerController (GetOwner ());
1061
1065
if (playerController == nullptr )
1062
1066
{
@@ -1098,15 +1102,19 @@ void UMounteaDialogueManager::ExecuteWidgetCommand_Implementation(const FString&
1098
1102
{
1099
1103
FString resultMessage;
1100
1104
Execute_UpdateDialogueUI (this , resultMessage, Command);
1105
+
1106
+ RefreshDialogueWidgetHelper (this , Command);
1101
1107
}
1102
1108
else
1103
1109
{
1104
1110
UpdateDialogueUI_Client (Command);
1111
+ RefreshDialogueWidgetHelper (this , Command);
1105
1112
}
1106
1113
}
1107
1114
else
1108
1115
{
1109
1116
UpdateDialogueUI_Client (Command);
1117
+ RefreshDialogueWidgetHelper (this , Command);
1110
1118
}
1111
1119
}
1112
1120
@@ -1359,10 +1367,7 @@ void UMounteaDialogueManager::RefreshDialogueWidgetHelper(const TScriptInterface
1359
1367
{
1360
1368
if (dialogueObject)
1361
1369
{
1362
- if ( const TScriptInterface<IMounteaDialogueWBPInterface> dialogueInterface = dialogueObject.Get () )
1363
- {
1364
- IMounteaDialogueWBPInterface::Execute_RefreshDialogueWidget (dialogueObject, DialogueManager, WidgetCommand);
1365
- }
1370
+ IMounteaDialogueWBPInterface::Execute_RefreshDialogueWidget (dialogueObject, DialogueManager, WidgetCommand);
1366
1371
}
1367
1372
}
1368
1373
}
@@ -1375,8 +1380,7 @@ bool UMounteaDialogueManager::AddDialogueUIObject_Implementation(UObject* NewDia
1375
1380
return false ;
1376
1381
}
1377
1382
1378
- const TScriptInterface<IMounteaDialogueWBPInterface> dialogueObject = NewDialogueObject;
1379
- if (dialogueObject.GetInterface () == nullptr || dialogueObject.GetObject () == nullptr )
1383
+ if (!NewDialogueObject->Implements <UMounteaDialogueWBPInterface>())
1380
1384
{
1381
1385
LOG_WARNING (TEXT (" [AddDialogueUIObject] Input parameter does not implement 'IMounteaDialogueWBPInterface'!" ));
1382
1386
return false ;
0 commit comments