3,435 Commits over 792 Days - 0.18cph!
Bugfix(editor): fix net id desync after reloadmap
Tests: threw a rock after reloadmap - no desync errors
Bugfix: don't preserve RustNavigation across reload as it'll be created by GameSetup
Tests: reloadmap didn't generate errors
Bugfix: avoid local client player being destroyed during scene switch
also trying scene loading to happen if already in the same scene, but breaks a bunch of stuff
Tests: reloadmap, no longer seeing one of breadcrumb errors, can see legs and move
Bugfix: fix invalid isLoading state when reloading map
Copy paste mistake
Tests: able to control camera after reloadmap
Bugfix: avoid RustNavigation NRE spam on reload
- move RustNAvigation to Server scene
- LoadLevelAsync can preserve server scene in C+S setup
- add missing player states on the server to facilitate connect-lite flow
Tests: ran reloadlevel - no NRE spam, but camera is detached
Update: initial prototype alongside Approved hack
Tests: tried both, it's megaborked in C+S
Merge: from playermovement_connect_nre
- Bugfix for out of order snapshots on player connect triggering NRE
Tests: booted into craggy
Bugfix: fix playermovement NRE when initializing a parented player
Can happen if snapshots arrive out of order on connect
Tests: booted into craggy
Merge: from poolanalyzer_validatepooledlist
- 4 bugfixes for invalid object recycling
Tests: booted unity editor, no errors. booted to craggy
Update: PoolAnalyzer now stop from assigning PooledList to List fields in ProtoBufs
- fixed errors found in our code
- release bin from 9bf2cc09
This causes recycling back to wrong pool(List) once protobuf is done with the object
Tests: unit tests + editor compiles
Merge: from poolanalyzer_ifempty_support
- Bugfix for analysis NREs in editor
- Allows to write "if(isEmpty) free" patterns
Tests: removed workaround, editor code compiles
Update(editor): Rust.CodeAnalyzer - support "if(obj.IsEmpty or obj.Count == 0) Free" patterns
- bugfix variable scope search throwing NREs for out param declarations
- release binary from 57e96efa
Tests: removed my workaround and it no longer trips up analyzer. editor boots
Merge: from mt_snapshot_saving
- Clean: removal of old MutexPool, hasn't been in use for 2months
Tests: booted craggy, ran print_memory
Clean: remove MutexPool
- ran codegen
Tests: booted craggy, ran print_memory
Merge: from ui_store_slim_ram
- Optim to stop loading store atlases, saves up to 250MB
- Bugfix for missing images in workshop tab
Tests: produced a build and inspected memory snapshots. navigated to workshop tab in inventory
▇ ▆▋▊▉▇▅▆ ▄▋▄▇▅▌ ▋▅▊▊▌ ▌▌█▍▉▅▊▊▇ ▅▌▉▉ ▆▍▆▇█▉▋▉ ▅▅ ▊▍▌▌▉▉▊▌▇▆▋▅▋▍▇ ▅█▌▊▋▅▅▆ ▉▄▅▊ ▇▋▄▍ ▇▊▊▋▄▋▆ ▄▅▋▆▉▆▋▄▆▇▄▆▄▌ ▌▇▄▉▊▆▌█▍ ▆▅ ▆▆██▄▅▇█ ▅▌▉▍▌ ▊▍▌ ▍▌▆▇█▄
Cherrypick of
165805 from mt_snapshot_saving
Optim: defer loading of small atlases, and pack them into ui dynamic bundle
Prevents loading of ~30 atlases (original and small), which saves another ~250MB
Tests: booted stnadalone build and compared snapshots. navigated to store with failloads and made sure small atlas versions are picked up
Merge: from mt_snapshot_saving
- Bugfix for accessing null buffer on non-main thread
Tests: booted to Craggy
Bugfix: ensure thread-static buffer is initialized on all threads
Tests: booted into craggy
Merge: from ui_store_slim_ram
- Bugfix for Glowing Wallpaper page flashlight not working
Tests: navigated to page with delay and fail loads on and off
Bugfix: bring back original flashlight blend shader
Fixes ugly light gradient in glowing wallpaper page
Tests: navigated to glowing wallpaper pack page
Clean: get rid of dead props on StoreFlashlightReveal
Tests: none, trivial change
Merge: from mt_snapshot_saving
- Bugfix for string serialization sending wrong data in Jobs 4 (and potentially inflating memory)
Tests: spawned a bunch of cows on Craggy with jobs 4
Bugfix: make NetWrite.String thread safe by marking buffer ThreadStatic
Tests: with jobs 4 spawned 20 cows on craggy
Update: make StoreFlashlightReveal support dynamic refs and httpimage
- OverlayPage now controls flashlight reveal
- ran update image urls
Tests: opened glowing wallpaper page, works with blur hashes and fallback loads, but doesn't look exactly as before
Bugfix(editor): StoreBundleTool - update stale blurhashes when using an already uploaded image
Tests: ran Update Image Urls for a prefab where I setup some new fields
Update: HttpImage now calls OnLoad callback with resulting texture/sprite
Needed for upcoming flashlight effect
Tests: naveigated through store
Merge: from ui_store_slim_ram
- Bugfix: carousel buttons no longer have garbage textures when opening an store overlay page
Tests: opened an overlay page
Bugfix: HttpImage - when picking nearest mip, use a cpu-side copy
Doing gpu side copy seems to cause garbage if mip isn't streamed in
Tests: made a standalone build and navigated to pack page, carousel buttons were okay
Merge: from ui_store_slim_ram
- Update: store assets are taken from the backend
- Optim: store assets are loaded and unloaded dynamically
Tests: navigated through various store pages with various debug overrides
Bugfix: fix invalid takeover data for crystal ak
Accidentally copied pack even though it hasn't one when manually resolving
Tests: navigated to page, crystal ak displays as intended
Bugfix: store.refresh now restarts the tab
Fixes tab having only default-initialized tiles
Tests: ran refresh while on general tab
█▇▌▊▇▉▅▊ ▋▋▄ █▇▉▊▇▉█ ▋▆▇▇▆▇▇ ▍▅▊▇▍▄▇█▇ ▅▇▇▄▆ ▄▆█▍ ▉▄▌█▇ ▅▅▆ ▄▍▄▌▄▅▉ ▇▇ ▇▉▇▋▋▊▄▄▇▇▄█ ▅▊▄▍█▋▆█▉ ▋█ ▅▊▍███▅▅▌ ▋▍▋ ▊▄▅▋▇ ▌█▄ ▌▅▌▌▇ ▄▍▉█▆▌▋
Update: HttpImage - permit multiple requests for same url
Fixes clurred images for overlay pages where first button shares sprite with full screen image but has different settings
Tests: navigated to coconut underwear page - loaded both
Update: HttpImage - pick a higher mip, seems to look better when downsampled
Tests: navigated to pack overlay page
Update: reimplement shop.unloadAssets convar
Tests: set it to 0, navigated to shop and out, confirmed bundle was still loaded via listdynamic, set to 1, confirmed it was gone via listdynamic
Clean: get rid of icon precaching from store bundle
All bundle assets are now loaded on demand, so this code was both useless and harmful
Tests: navigated through store with failloads 1 - all images present
Clean: remove unnecessary extra unload when DLC tab closes/becomes hidden
Tests: navigated to DLC tab with delay and failloads convars
Optim: lazy load fallback sprite for DLC item view
Tests: opened DLC tab of store with failloads 0 and 1
Update: HttpImage - add support for different configured images from 1 url
Fixes overlay page using downsampled mip for full screen image because 2 httpimage comps share an url
Tests: navigated to crossbow pack overlay and clicked 2nd button
Bugfix: StoreItemOverlayPage - fix invalid refcounting
- also get rid of gallery sprite fallback when loading from url
Tests: inspected refcounts during opening and closing of overlay
Bugfix: HttpImage - avoid duplication of refcount
Tests: inspected refcounts of textures after opening pack overlays