1,042 Commits over 1,004 Days - 0.04cph!
▇ ▆▇▌▇▌▊▌ ▋▊▉▌▉▌▋▍▌█▊▊▋▌▊▌▊▌▍▊▊██▉▄▆▍▌ ▉█▋▊ ▍▉▆▌█▇▌▆▊▉▆
merge from rpctool_generic_fix
merge from useplayerupdatejobs4
█ ▅▆▌ █ █▅▆▆▆▅▇▅▉ ▊▉▉ ▊█▌▋ ▄▅ ▌▇ █▄▍ ▅▍▌▉▉▍█ ▊▍▍▉ ▉▉▆ ▅▄▅▋▅▆▇ ▊▇▋▄ ▊▅▇ ▄█▉▄█▆ ▄▇█▊▌▆▅▄▉▊ ▄▌▆▉▍▄▊▉▆▌ ▊█ ▉ ▅█▌▌▄▊ ▉▇█ ▄▇▅▋▊▉▍▍ ▄▆ ▅▋▊▆▇▉█▍ ▋▄▌▊▊▉▌▆▅ ▍█▅▇ ▍▇ ▊▋▌ ▇▅█▅▉▇▋ ▇▇ ▌█▆ █▆▊▊▋ ▆▊█▋▉ ▍▇▇ ▍▉ ▍▍▅▇▄█▉▆▆
▍ ▌▉▊▄▊ ▋▋▅▌ █▉█▄▍▍▅▍▇█▊▌▍█▆▋▅▇▍▅█▆▅
▋ ▉▊▇▌▆▍ ▊▋▍▋█ ▋▄▍█▄▍▊▋▇▇▄▉██▆▇▆▉▉▍▌▇
▊ ▍▆▍▍█ ▄▉▉▆ ▆▍▇▍▉▆▆▋▊▍▄▌▋▌▆▅█▅▋▍▌█▄
▅ ▊▉▋▉▊▉▄█▌▉▅▊ █▌▉▌▅▉ ▉▍▉▉█▅▉▊██ ▅█▅▊▇
▋ ▄▌▇▅▅ ▇▄▋▋ █▉▍▌▌▅█▆▄▌▄▍▌▅▉█▅▋▍▌▅▅▋█▌▌██
▊ ██▍ ▆▇█▍█▍▄▄▉▋ █▌▊ ▄▍▅ ▋█▉█▇▅█▉ █▆▇▊▍█▅▋▋▄▍ ▍▆▋▉ ▅▅▉ ▍▄█▄▄▌▉▅▅ ▅▍ ▍▊▄▍▍▉▆▊▇▄ ▅▊▊▅▉▅▄▌▄▍█ ▇▋▅ ▇▄▇▆▉ ▅▌▆▍▌▌█▌▍ ▆▅▆▉▋█▌
Modify unit tests to use pooling for collections to remove some GC we wouldn't see in a live scenario
- consistency tests pass
▄ ▉▋▆▋█ ▉▋ █▍▆▇▅▄ ▇▍▅▅▋▋▉ ▇▍ ▆▍ ▌▍▌ ▆█▅▇▋▄ ▍▅▉▇ ▇▋█▌ ▇▌ ▇ ▊▌▍▆▅█ ▊▆▌█▊▉ ▉▇▍▉▊█▄▋▍▉▅▅▅ █▌▌▄▆▋ ▄▅▍▆▍▄▊ ▅▄█▄▍ ▉▆▉▍▄█▅ ▋█▇▄▇▄▋ ▋▄▋▊▌▆ ▉▋▊█ ▊▄▍▉ ▄▇▄▇▍▊ ▉▌▉█
Add unitask branch to run server occlusion pair gathering in parallel with useplayerupdatejobs >= 4, add tests
- initial perf tests suggest ~40-50% faster execution in a 400-player scenario
- consistency tests pass
▋ ▋▆▅▄▆ ▄▊▉▍ ▊█▊▉█▆▇▄▇▇█▆▇▍▍▊▉▌█▍▄▍▆▇
▆ █▉▍▊▇▊▅▇▊ ▌▊▍▄ ▋▊▌█▆▍ ▇▍▅▊▌ ▄▋▆▅▅▊▊▌▇█ ▄▆ ▆▋▅
▅ ▇▍▋▍█▄▄ █▍▉▅ ▍▄▅▊▋▊▍▇▍▅▄ ▌▅▅██▌▉▍▍▉ ▅▊ ▍▉▉ ▉▌█ ▌▋▄
▉ █▌▄▊▌▋ ▉▄▌▇▌ ▌▉▄ ▋█▋▍ ▆▉█▉▌▌ ▅▌▊▄▄▌▆▇▄ ▊▌ ▄█▄ ▅▅ ▄▄▊▍▆▅ ▊▆█▄▌▇▉▊▅▍▄▆ █▍▅█ ▍▍▅ ▉▌ ▌▅▋▄▋ ▋▄▉ █▌▌▉ ▄▆▇▊▄
▋ ▊▋▆▋█ ▍▄█▄ ▋▊▍▋▍▊▍▋▉▅▌▆▇▆▉▌▋▉█▊▄▋▄▋
▆ ▋▊▊▇▌▉▉▅▍ ▉▇▌▅▌▌▋▌█▄█ ▉▌▆ ▆▍▅▋▊ ▆▍▍▌▊▄▅▋▉▆ ▄▌▉▌▌▉▅ ▊█▊▆▆▊ ▊▆▇▊▍███ ▊▌▌ ▌▍▉█▆ ▅▊ ▄▅▉█▅▌▊▍▋▄ ▆▋▄▇▍▆▇ ▊▆▇▆ ▇▅▌▇▍▊▍▍▍ ▋█▆▄▆▄▄▆▅▉▄ ▍▋▇▆▍▌▉ ▍▊▆▌ ▍▋█▋▄▋▄▅▅▊▄▋▇▋█▄▄▍▆▄█▋▇▆▉▌▉▇▅ ▅▄▆▋▌█▉▉▉ ▄▆▆ ▍▇ ▇▍▍▍█▉ ▌█▍█ ▅▇▆ █▆▅▅ ▆▊▄▄▉▌
▅ ▋▅█▋▌ ▄█▅▆ ▅▌▌▆▆▌▉▅▅█▄▋▋█▉▄▌▍▇▉▆▇▉█▆▄▄
▋ ▊█▊▅▄ ▋▌▄▄ ▍▌ ▋▌▉▆▇▊ ▄▉▊▋▌▅▉ ▊▊▉▄▉▄▉▅█▍▇ ▄▍▄▉▉▌▍▌▉▋ █▄▍▉▌ ▉▄▅▉▄▌▇ ▅▉█▅▌ ▉▄█▋▆▍▆ ▅█ ▊▉▄▋▋▍ ▉▋▆▉▉▉▊▉▉▍ ▌▍█▋▋▉▅▇▄█ ▋▅▄▅ ▅ ▋▇█▌ █▅▌▆▌ ▋▇ ▆▌▉ ▆▍█▌ ▌█▍▋█▊▅█▊▋ ▇▆▇ ▋▅█▌▅▆▊ ▄▌▄ ▊ ▉▍▇▆ ▆▌ ▋▉▇▇▆▊▅▍▍▋ ▋▄▉▄ ▍▊█▊▅▇ ▋▅▊ ▋▋▄█▆▆ ▉▆ ▍▅▌▍▌ ▌▄██▇▌▆█▍
▊ ▉▄▌▍▇ ▍▊▉▄ █▌█▇▇▄▇▋▊▇█▄▋▄▇▅▄▍▇▌▋▍▅█▍▆▍▍█▍▌▍▇▋
▅ ▆▇▊██ █▅▇▊▋▄ ▌▌▊█▍▅ ▊▍▇ ▋▊▊▆▉▅▇ ▄▄▇ ▊▋█▊▆▅▆▆█ ▄▊▋ ▊▉▇ █▋▍▋ ▉▇▍▄▄
▄ ▊▇▍▍▋ ▄▄▆▆ ▌▄█▌▊▆▍▅▇▉▋▉▅▅▇▇▅▇▆▌▍▉▊▅▅▄▋▅▊▄▋▋▅▄
█ ▇▊▋█ ▌▊▉▄ ▌▅▆▋ ▇▍▉█▉▆ ▅▉▆ ▄▌▆▋▇▋▍▄▉ ▆▆▅▋ ▄▌▉▉█▍█▉▌▊ █▅▍▍ ▄▊▇▌ ▊▌ ▆▇▌█▋▉▌▊ ▄▇▌▍▉ ▉▍▋▍▄▌ ▆▄▋▅ ▅▌▉ ▇▋▍▇ ▅█▉▇▉▋▄▄▋▌ ▄▌█▉▋█▉█▄▇▊▇ ▄█▋ █▆▊▊▅ ▆▅▋▊▅██ ▆▍▆▊ ▍▆▍▅▆▆▉█▇▄ ▌▋ ▉▋▋▇ ▅▊▅██▇▉ ▊▌▄▌▇▆ ▄▇ ▉▋ ▊▋▅ ▅▆█ ▆▊▆▇ ▅█ █▅▍▇▅▇▉▌▋ ▆▉ ▊▇▆▅█▅▅▇ ▋▇▍▍ ▍▊▆▌▅▌ ▌▅▄█▆█ ▍▌▍▅▋▋▊▄█ ▅█▋▍▆▌█▅▄
▋ ▍▍▆█▉ ▄▇▋▅ ▋██▌▅▅▇▊▍▅▅▌▄▉▅▍▋▌▊▅▋▉█▄▉▊
▊ ▇▉▌ ▉ ▋▅▇██ ▇▍▅▋▋▌▉█▌ ▇▌ ▇▋▌▍▊▍▊▅▉▄▄▊▄▌▉ ▉▊▍▍▆ ██▊▆ █▆▄▊▇▄▊ ▆▄▉▆▊▋▍▍▌▉▆ ▍▇▆▆ ▅▍ ▅▇▌ █▍▅▇ ▌▄▉██▍ ▍▋▉█▋▉█▉ ▍▋▋▄▅ ▋▆▉▆▍▆ ▅▄█▍▅ ▅▇▌▆▇▉▅▉█▌▉ ██▍█▋ ▊█▆▊▅█ ▌█▅▇▌▊▆▆▍▉ ▋█ ▆█▋▆▅▇▉▅ ▉▆▅▋▅▆▉ ██▉ ▅▇▍▊▉▇ ▅▄▋▉▇▆ ▍▍▋▄▊▄
merge from analytics_remove_uploader
Remove legacy analytics upload flow and any related code
- v2 is and has been the default uploader method for a while now without issue
▋ ▍▆▅▉▊ ▅▌▇▌ ██▇▉▅▉▄█▉▅▍▌▊▆▋▉▅▋▄
▆ ▊▉▌▄▋▊ ▇▆█▊▊▋▄ █▍▊▌▉ ▋▋ ▉█▌ ▊▍▇ ▅▋ ▊▍▊▇▆▍▅ ▉ ▄▄█▍▊▊▊▇
▉ ▄▇▍▍▌▊▌▅▅ ▄▊▉▇▅▆ ▌▆▆▆ ▉▇▍▋▋▅▉ ▉▆ █▊▇▋▄ ▋▋▄▍█▇▄▅
▇ ▆▅▊▆▊ ▍▌█▍ ▊▍▇▆▍▉▇▉▅▍▋▌▍▊▅▆█▌▊▊█▋
▌ █▄▄▍▄▊▇ ▄▌█▊▇▊▌▊▄▊ ▄▋▇▅█▉▌▇▌▄▌▅▇ ▍▅▌ ▊▇▊▋▍ ▆▅▊▇▊▌▉ ▍▌▊▅▄ ▆▊ █▄▊ ▍█▅▉▅▊▉▌ ▉██▉▄█▄ ▆▋▋▉▋ ▋▌ ▋▇▇▍▇▊ ▅▄▆▋▋▍█ ▆▊▇▄▉▅▉▅▇ ▄█▌ ▆▅▋█▌▌▇ ▍▅▊▌▆▆▆ ▌▊█▅▋▌▄▄ ▌▊▇▊ ▄▊▆▋ █▇▌▄▅▉█▉ █▌▇▄▆▉▋▄▌▆▆ ▌▊▅▆ ▊▋▅▆▄▅▅ ▋▋▊█▆ ▉▇▅▅▇▆▌▋ ▍█▄▋▆▌▆▌ ▋▇ ▇▄▆▄▆▇▍▆▇ █▆▅▊ ▇▌▆▆▋▊▅▍▊▌
▊ ▅▅▄▋▍ ▆█▋▉ ▄▄█▄▋▊▋▌▅▌▋▄▊▆▄▊▇▆▍█▍▆▇█▆█▄▇▊▉
▅ ▌█▌▆▄▌▍ ▊▅▆▇▋▉▄▄▆▅▅█▊▌ ▉▌▍▍█ ▊▊▊▉▄▍█▍▇▆
▍ ▄▋▇▌▌ ▊▌▍▆ █▅▉█▆▇▉▋▊▉█▉▇▍▊▆
Only enforce additional parent validation if an AreaCheck socket mod is present on a deployable, otherwise revert to original behaviour
▍ ▋▇▉█ ▌▊▄▄▉▇▉ ▇ ██▄▍█▊▉█▊▇ ▌▅▊▆ ▄ ▅▉▊▌▋▍ ▄▋▋▇ ▅▆▌ ▋▅▉▇▆▅ ▅▆▋▊▆ ▅▆ ▉▇▇█ ▇▋▉ ▊▍█ ▌▉▋█▇▊ ▇▊▆▇▋▋▉▌▉ ▌▉▅▌▇ ▍▇▋▉ █▋▇▆▍ █▋▆▋▊ ▊ ▌█▋▋▉█ ▍▄▋█▋ ▋▉ ▍█▆▇▋▊ ▉█▋▆▍▊ ▆▅▋ ▌▊█▄ ▌▅ ▋▇▋ █▇▌▍▇▄ ▄▊ ▍▌▆█ ▅▇█▅ ▅▆ ▄▆▋ ▄▆▇▆ ▅▄▄▋▍█ ▆▅█▍
▋ ▆▌▍▊▊▆▍ ▅▌▆▇▇▄▉▇▆█▅▋ ▄▋ ▍▊▆▋▉▆▆ ▌▌▍▄▆
▊ ▇▆▋▊▊█▆ ▇▊▍▍▉ ▅▌ ▄██▆▆▊▆▍ ▌▆▄▉▆▉▋▊
▄ ▍▋▋ ▇▆▆▋▋▌ ▆▄▄▉▇▌ ▇▇▅ ▇▍▄▅▅▋ ▌▆ ▅▆▊▋▌ ▉▇▇▋ ▅▋▌▇█▄
█ ▅▋▇ ▌▄▌▋▄▋▅ ▊█▍▇▅ ▋▋▇▋▍▋▄ ▊▌▉ █▊▍▉▊▍█▉ ▌█▇▇▋ ▇▇▋▄▋█
▊ ▋██ ▇▄█▊▄▍▊ ▊█▆▍▅▆ ▍█▇▋▌▊ █▋▍▍ ▋▄▋ ▌▉▉▋▋▄▌▉ ▆▅▌▌▋▅▉
▌ ▉▊▅▄▉▉▍ ▌▋▇▌▇▌ ▅▇ █▋█▇▅▋ ▋▅▇█▉▊█▇▊▌█▅
█ ▆▄▆ ▌▌▉▍ ▊▅▄▌▄█▉ ▅▍▊▍█▋▇▋▌▉ ▌▄▉▉ ▌▍▄▆ ▊▅▌▅▄▍ █▅▄ ▇█ ▉▊▇▇▌▉█▇▊▊▇▅▉▆▋▄▌▍▇▋ ▅▍▉▇▇▊ ▍▌▊▉ ▆▋▄ ▆▆▌█
▍ ▌▊▉ ▍ ▊▊▌▍▍ ▌▊ ▌▍▅▇▊▍▇ ▍▌▍▄▅▇▋▅▍█ ▅▌▇█▅█▍▍▄▆ ▍▆▍▋ ▍▍▆▍▍▊▊ ▍█▊▅▍▄▌