Skip to content

Commit 7d927ec

Browse files
committed
Renderer: Fix root layer lookup in Wilds
1 parent 5201a14 commit 7d927ec

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

shared/sdk/Renderer.cpp

+21
Original file line numberDiff line numberDiff line change
@@ -812,6 +812,27 @@ RenderLayer* get_root_layer() {
812812

813813
if (get_output_layer_fn == nullptr) {
814814
spdlog::error("[Renderer] Failed to find getOutputLayer");
815+
816+
// Hacky fix for >= TDB74
817+
for (uint32_t i = 0; i < 0x10000; i += sizeof(void*)) {
818+
const auto ptr = *(REManagedObject**)((uintptr_t)renderer + i);
819+
820+
if (ptr == nullptr) {
821+
continue;
822+
}
823+
824+
if (!utility::re_managed_object::is_managed_object(ptr)) {
825+
continue;
826+
}
827+
828+
if (utility::re_managed_object::is_a(ptr, "via.render.RenderLayer")) {
829+
root_layer_offset = i;
830+
return *(RenderLayer**)((uintptr_t)renderer + root_layer_offset);
831+
}
832+
}
833+
834+
spdlog::error("[Renderer] Failed to find root_layer_offset with fallback");
835+
815836
return nullptr;
816837
}
817838

0 commit comments

Comments
 (0)