Files
ReSkate/Engine/Game/Build/20260929/pending_updates.h
T
AyeZeeBB 0f8af62710 Entity limit 2x
The entity and pending-update pages are twice the game's own size
(262,144 slots), down from four times. Every page set the game keeps
is that many times its normal size whether a map uses the room or not,
and the largest map load seen needs about 150,000 slots.

A page is a power of two entries, found by a shift, so the steps are
two, four and eight times; there is nothing between. The 434 patch
lines are the same instructions as before, each with the number for a
page of 0x800 entries. The render-instance pool and the spatial
buckets stay at eight times, which still covers the capacity.
2026-10-11 20:12:59 -05:00

162 lines
11 KiB
C++

#pragma once
#include "entity_pages.h"
namespace dingosdk::game::build::v20260929::pending_updates {
using entity_pages::Kind;
using entity_pages::Patch;
using entity_pages::patch;
// Transform/property snapshots and their pending updates must support the same
// slot count. A 150,152-entry load overflowed the retail 131,072-entry queue,
// treating its allocator pointer and metadata as additional page pointers.
inline constexpr std::size_t entry_bytes = 24;
inline constexpr std::size_t page_bytes = entity_pages::page_entries * entry_bytes;
static_assert(page_bytes == 0xc000);
// Keep owner offsets and stack-frame layouts intact. Disable only the two
// undersized inline pages; the existing lazy allocator/destructor owns every
// page instead. Include queue sorting, asynchronous/synchronous consumers,
// rounded iteration bounds and sized deallocation for both property spaces.
inline constexpr Patch patches[]{
patch(0x048a7450, Kind::pending_update_pages, "41c7800c04000002000000", "41c7800c04000000000000"),
patch(0x048a745b, Kind::pending_update_pages, "833db6cf910206", "e9300000009090"),
patch(0x048a944c, Kind::pending_update_pages, "41b800600000", "41b800c00000"),
patch(0x048abf3e, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x048abf44, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x048afad8, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048afae2, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x048bdd9b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048bdda9, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
patch(0x048bddcb, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048bddd2, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x048be423, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048be437, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x048be45b, Kind::pending_update_pages, "c1e70a", "c1e70b"),
patch(0x048bffb9, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048bffbe, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x048bfff2, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048bfff9, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x048c0012, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048c0017, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x048c04c2, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x048c04c8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x048c0e14, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x048c0e1c, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04eb2fce, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04eb2fd4, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04eb30ae, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04eb30b4, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04eb318e, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04eb3194, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04eef54b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04eef559, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
patch(0x04eef57b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04eef582, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04eef61b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04eef629, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
patch(0x04eef64b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04eef652, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04eef6fb, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04eef709, Kind::pending_update_pages, "41c1e20a", "41c1e20b"),
patch(0x04eef72b, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04eef732, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef55da, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04ef5601, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef5628, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef566f, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef569d, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef56a5, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef56b4, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04ef574d, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef576f, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef579b, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef5813, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef583c, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef5863, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef58aa, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef58d8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef58e0, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef58ef, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04ef5971, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef5978, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef59a4, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef59ab, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef5a72, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef5a91, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef5ab8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef5b01, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef5b06, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04ef5b4f, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef5b6e, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef5b95, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef5bdd, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef5be2, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04ef5c1f, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef5c26, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04ef5c41, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04ef5c46, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04ef5e59, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04ef5e78, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef5e97, Kind::pending_update_pages, "c1e60a", "c1e60b"),
patch(0x04ef5feb, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04ef600a, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04ef6029, Kind::pending_update_pages, "c1e60a", "c1e60b"),
patch(0x04ef61af, Kind::pending_update_pages, "418d8dff030000", "418d8dff070000"),
patch(0x04ef61b6, Kind::pending_update_pages, "48c1e90a", "48c1e90b"),
patch(0x04ef61f3, Kind::pending_update_pages, "b800040000", "b800080000"),
patch(0x04ef628b, Kind::pending_update_pages, "4181c500fcffff", "4181c500f8ffff"),
patch(0x04ef630d, Kind::pending_update_pages, "41b800600000", "41b800c00000"),
patch(0x04efbdf3, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04efbe1a, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efbe41, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efbe88, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efbeb6, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efbebe, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efbecd, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04efbf6c, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efbf8e, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efbfba, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efc035, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efc062, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efc08e, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efc0e9, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efc117, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efc11f, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efc12e, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04efc202, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efc221, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efc248, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efc2c2, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efc2e1, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efc308, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efc353, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efc358, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04efc399, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efc3a0, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04efc3bb, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04efc3c0, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04efc5ef, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04efc60e, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efc62d, Kind::pending_update_pages, "c1e60a", "c1e60b"),
patch(0x04efc78e, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04efc7ad, Kind::pending_update_pages, "ba00600000", "ba00c00000"),
patch(0x04efc7cc, Kind::pending_update_pages, "c1e60a", "c1e60b"),
patch(0x04efc96c, Kind::pending_update_pages, "418d8dff030000", "418d8dff070000"),
patch(0x04efc973, Kind::pending_update_pages, "48c1e90a", "48c1e90b"),
patch(0x04efc9b3, Kind::pending_update_pages, "b800040000", "b800080000"),
patch(0x04efca54, Kind::pending_update_pages, "4181c500fcffff", "4181c500f8ffff"),
patch(0x04efcad9, Kind::pending_update_pages, "41b800600000", "41b800c00000"),
patch(0x04f095de, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04f095e3, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04f0961e, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04f09625, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04f0963e, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04f09643, Kind::pending_update_pages, "c1e00a", "c1e00b"),
patch(0x04f09af2, Kind::pending_update_pages, "c1e90a", "c1e90b"),
patch(0x04f09af8, Kind::pending_update_pages, "c1e10a", "c1e10b"),
patch(0x04f0db17, Kind::pending_update_pages, "c1e80a", "c1e80b"),
patch(0x04f0db1f, Kind::pending_update_pages, "c1e10a", "c1e10b"),
};
} // namespace dingosdk::game::build::v20260929::pending_updates