mirror of
https://github.com/Dingo-Shenanigans/ReSkate.git
synced 2026-10-24 08:26:13 +02:00
22 lines
1.2 KiB
C++
22 lines
1.2 KiB
C++
#pragma once
|
|
#include <array>
|
|
#include <cstdint>
|
|
|
|
// SubWorldReference adapter for the seasonal world layers.
|
|
namespace dingosdk::game::build::v20260929::world_layers {
|
|
struct Site { std::uintptr_t rva; std::array<unsigned char, 16> bytes; };
|
|
// SubWorldReference constructor, destructor and void(entity, event*) handler,
|
|
// then the subworld event's clone function. The handler clones the 16-byte
|
|
// event into its own arena and never retains the caller's pointer (142904380).
|
|
inline constexpr std::array<Site, 4> sites{{
|
|
{0x2e79690, {0x48,0x89,0x5c,0x24,0x10,0x48,0x89,0x6c,0x24,0x18,0x56,0x57,0x41,0x54,0x41,0x56}},
|
|
{0x2e7aba0, {0x41,0x56,0x48,0x83,0xec,0x30,0x48,0x89,0x5c,0x24,0x40,0x48,0x8d,0x05,0x16,0x5d}},
|
|
{0x2e7ec60, {0x48,0x89,0x5c,0x24,0x18,0x48,0x89,0x74,0x24,0x20,0x57,0x41,0x56,0x41,0x57,0x48}},
|
|
{0x2b88b40, {0x40,0x53,0x48,0x83,0xec,0x20,0x44,0x0f,0xb6,0x4c,0x24,0x30,0x48,0x8b,0xc2,0x48}},
|
|
}};
|
|
// SubWorldReference entity vtable.
|
|
inline constexpr std::uintptr_t subworld_reference_vtable = 0x63e08c8;
|
|
// Subworld load/unload event vtable; slot +0x18 is the clone function (sites[3]).
|
|
inline constexpr std::uintptr_t subworld_event_vtable = 0x60863d8;
|
|
}
|