Skip to content

Commit 7cb96da

Browse files
committed
Improve level change detection. Fixes Undying crash when loading saves
1 parent 9401b99 commit 7cb96da

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

Inc/D3D9Render.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class UD3D9Render : public URender {
5252
};
5353
static struct {
5454
ULevel* currentLevel;
55+
FString currentLevelName;
5556
FTime lastLevelTime;
5657
RTXAnchors anchors;
5758
ModelFacets facets;

Src/D3D9Render.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,7 @@ static bool getRenderInterfaceActors(AActor* actor, FSceneNode* frame, std::vect
221221

222222
void UD3D9Render::onLevelChange(FSceneNode* frame) {
223223
currentLevelData.currentLevel = frame->Level;
224+
currentLevelData.currentLevelName = frame->Level->URL.Map;
224225
currentLevelData.facetsMemMark.Pop();
225226
currentLevelData.facets = ModelFacets();
226227
getLevelModelFacets(frame, currentLevelData.facets);
@@ -368,7 +369,7 @@ void UD3D9Render::DrawWorld(FSceneNode* frame) {
368369
OccludeFrame(frame);
369370
#endif
370371

371-
if (currentLevelData.currentLevel != frame->Level) {
372+
if (currentLevelData.currentLevel != frame->Level || currentLevelData.currentLevelName != frame->Level->URL.Map) {
372373
onLevelChange(frame);
373374
}
374375

0 commit comments

Comments
 (0)