Fix name reuse issues for actors, and make luprex IDs more readable

This commit is contained in:
2025-08-04 17:13:34 -04:00
parent 13f8d2669c
commit 9b304985e3
6 changed files with 46 additions and 39 deletions

View File

@@ -37,17 +37,19 @@
//
// THE NUMERIC RANGES
//
// The largest integer that can be stored losslessly in a lua_Number is:
// Any 53-bit number can be losslessly stored in a lua_Number. In other
// words, the largest integer that can be stored losslessly is:
//
// * 0x0020000000000000
// * 0x001FFFFFFFFFFFFF
//
// In other words, any 53-bit number can be stored. We subdivide the range as
// follows:
// As it turns out, that's just barely larger than 9 quadrillion. We are
// going to use IDs that are between 0 and 9 quadrillion. We divide the
// range of possible IDs into several subsections:
//
// * 0x0000+ : manually created IDs.
// * 0x0001+ : used by master model's IdGlobalPool to create batches.
// * 0x0010+ : used by master model's IdGlobalPool to create individual IDs.
// * 0x001E+ : used by sync model's IdGlobalPool to create individual IDs.
// 0 quadrillion + : manually created IDs.
// 1 quadrillion + : used by master model's IdGlobalPool to create batches.
// 5 quadrillion + : used by master model's IdGlobalPool to create individual IDs.
// 8 quadrillion + : used by sync model's IdGlobalPool to create individual IDs.
//
// If you exhaust the Master Model's invididual pool at a rate of 10,000,000 IDs
// per second, the individual pool will last for 12 years.