Unlock every emote in this build's Collections
The authored unlock data only marked a subset of emotes acquired, so most of
the 307 emote items in this build showed as locked and could not be assigned
to the wheel. This adds the 121 acquired-flag entries that were missing.
How the flags were identified, since none of it is public data:
- An emote's ownership is gated by the unlock expression on its own item
definition's plug rule (the "You do not own this emote" insertion/enabled
rule), at definition offset 720. It is not the collectible table's acquired
expression: only 94 of the 307 emote items have a collectible row at all,
which is why a collectible-driven pass cannot reach most of them.
- Decoding that expression for every bucket-41 item gives 291 gated emotes
across 288 distinct flag slots. The other 16 carry no expression and are
therefore always owned, which is why Yes/Nope/Cheer always worked.
- account_flag_runs is NOT indexed by flag slot. It fills the account object's
acquired-flag byte array, which the client addresses by row number in the
unlock flag mapping table (investment root slot 111, tag 81319322, 11923
rows of {u32 hash, i16 destination slot}). Translating the 288 slots through
that table yields the 282 row indices actually written here.
Emote ownership flag slots (288):
229, 237-239, 264, 271, 2218, 2222, 2232-2238, 2240, 2242-2259, 3813-3820,
3822-3836, 5200-5205, 5209-5220, 5228-5231, 5426-5427, 5429-5436, 6245-6264,
6896-6902, 7350-7371, 7373-7374, 8159-8165, 8167-8182, 8999-9010, 9012-9013,
9016-9021, 10408-10428, 10907-10932, 11431-11457, 11740-11770
Their mapping-table row indices, which is what this change writes (282):
807, 811, 821-827, 829, 831-848, 2090-2097, 2099-2113, 3080-3085, 3089-3100,
3107-3110, 3217-3218, 3220-3227, 3729-3748, 4195-4201, 4428-4449, 4451-4452,
5057-5063, 5065-5080, 5676-5687, 5689-5690, 5693-5698, 6353-6373, 6734-6759,
7148-7174, 7404-7434
161 of those indices were already set, which matches the 179 emotes that were
already owned (161 gated + 16 ungated + 2 duplicated flags). None of the 288
slots collides with any documented entitlement, platform, or pre-release slot,
and the Director, map and orbit were verified working after the change.