Fix some crash on figure loading
This commit is contained in:
parent
8521e33d05
commit
27095ae6c7
2 changed files with 13 additions and 3 deletions
|
@ -206,7 +206,11 @@ uint8* USkyPortalIO::QueryBlock(uint8 FigureIndex, uint8 BlockIndex)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (write == false && (output[0] != 'Q' || (output[1] % 0x10 != FigureIndex && output[1] != 0x01) || output[2] != BlockIndex) && attempt < 10);
|
} while (write == false && output && (output[0] != 'Q' || (output[1] % 0x10 != FigureIndex && output[1] != 0x01) || output[2] != BlockIndex) && attempt < 10);
|
||||||
|
if (output == nullptr) {
|
||||||
|
UE_LOG(LogSkyportalIO, Error, TEXT("Query failed after %d attempts"), attempt);
|
||||||
|
return 0; // Return early if the loop failed to get valid output
|
||||||
|
}
|
||||||
UE_LOG(LogSkyportalIO, Verbose, TEXT("Querying block %d - success"), BlockIndex);
|
UE_LOG(LogSkyportalIO, Verbose, TEXT("Querying block %d - success"), BlockIndex);
|
||||||
UE_LOG(LogSkyportalIO, VeryVerbose, TEXT("Data block %d = \n %s"), BlockIndex,*OutputToString(output));
|
UE_LOG(LogSkyportalIO, VeryVerbose, TEXT("Data block %d = \n %s"), BlockIndex,*OutputToString(output));
|
||||||
return output;
|
return output;
|
||||||
|
|
|
@ -71,6 +71,8 @@ void FPortalStatusChecker::CheckPortalStatus()
|
||||||
if (
|
if (
|
||||||
//!FalsePositive() //filter conflicting infos
|
//!FalsePositive() //filter conflicting infos
|
||||||
true) {
|
true) {
|
||||||
|
int32 figID = 0;
|
||||||
|
UFigureData* figData = NewObject<UFigureData>();
|
||||||
//FigureDataBlock FigureData;
|
//FigureDataBlock FigureData;
|
||||||
switch (CurrentStatusData.StatusArray[i])
|
switch (CurrentStatusData.StatusArray[i])
|
||||||
{
|
{
|
||||||
|
@ -78,8 +80,12 @@ void FPortalStatusChecker::CheckPortalStatus()
|
||||||
case EFigureStatus::PRESENT:
|
case EFigureStatus::PRESENT:
|
||||||
break;
|
break;
|
||||||
case EFigureStatus::ADDED:
|
case EFigureStatus::ADDED:
|
||||||
//figData = PortalHandleRef->ReadFigureBlocks(i);
|
figData = PortalHandleRef->ReadFigureBlocks(i);
|
||||||
subref->OnSkylanderAdded.Broadcast(00, i);
|
if (figData)
|
||||||
|
{
|
||||||
|
figID = figData->GetFigureID();
|
||||||
|
}
|
||||||
|
subref->OnSkylanderAdded.Broadcast(figID, i);
|
||||||
break;
|
break;
|
||||||
case EFigureStatus::REMOVED:
|
case EFigureStatus::REMOVED:
|
||||||
subref->OnSkylanderRemoved.Broadcast(00, i);
|
subref->OnSkylanderRemoved.Broadcast(00, i);
|
||||||
|
|
Loading…
Reference in a new issue