1,028 Commits over 1,340 Days - 0.03cph!
Citizen/animgraph: added Roll_N animation + graph implementation
Speed controlled through a new, generic "speed_scale" float.
Citizen/animgraph: hooked up ledge grab idle/shimmies to "special_movement_states" enum
(This may change later)
Citizen: aligned ledge animations so that the character is centered (ledge isn't at X=0) + added rough pull up animation
Citizen: raised the ledge animations to 150cm (59in)
Citizen: added ledge grab idle pose + shimmy right/left animations
Humans: fixed Frank head using the wrong eyes material
Added a realistic human player model! Comes with two heads and a default outfit. This is a first draft, with a rough base set of animations, subject to change and further development. Added a realistic human player model! Comes with two heads and a default outfit. This is a first draft, with a rough base set of animations, subject to change and further development.
▉▉▍▇█▍▊▅
▉▄▄▍▉▉ ▌▉▌▇▅
▋▉▌▊▉ ▍▋▄▊▉▌▉, ▅▅▆▋▄▋▆ ▄▊▌▊▍█ ▄▄▆▍
▇▊▄▆▋▌▉▋▌ ██▊▍▍ ▉▋▉ ▌▋▆ ▋▋▋▉▆▉▍▍ ▍▆▉ ▌█▄▇
▍▋▆█▇▋▄ ▆▇▋▇▊▌▄
▆▍▅▆ ▄▆▊▍█▄▅▍ ▉▌▊▌▊▅▌▊▊▄▆
██▉▊▉▇ ▌▌▌▅▍▋▇ ▇▉█▋▊ ▍▆ ▆▆█ ▅▆▉▉▅ + ▅▌▅ ▇▅▊ + ▊▌█▊▅▊▊/▅▇▋▊▅ ▇█▄▊▄
▄▊▌▍▆▄ █▇▍▌▊▋
▄▄▉▉▊ ▋▋ /▄▅▉▇
▉▅▌▊█▅▅▄ ▅█▋▄▊▇ ▋█ ▌▄▆ ▅▌▍█▇▋▅▉▋:
▋▆▊▍▉▇ ▆▋▇▇▍▆▌▋▉▆▆▍▌▅▌▆▍▄▍▇▉▉▋▉▍▆▉█▆▌▌▌▉▇▅▄▄█▄▍
▇▄█▆▄▋: ▇█▍█▇ ▊▄▅▋ <▊▄▌▇▋.▊▇█▊@▇███▍▌▅█▍▍▄▉▅▉▉▆.▍▅█>
▌█▆▌: ▇▉█ ▍▆▅ ▇▇ ▍▉:▋▌:▉▆ ▌█▅▆ +▍▊▄▅
▆▉█▇▅ ▋▉▌▊▆▅▊ ▄▌▉▌▌▇▉▊▄▍█▋▍ ▍▄▊ ▇▉▉▉▋▅▇ ▍▉▍▄▉▋▄▍▉▊
▍▆▍▍▆▇ ▊▄█▅▇▄▋▇▅▋▍█▅▊▊▌▍▉▉▇▍▇▄▌▍▍▍▄▍▋▄▋▅▅▍█▇▄▍▍
▋▉▌▌▌▉: ▌▌▄▄▆ ▇▇▍█ <▇▄▉▅▇.▅▋██@▊▅▇▄▋▅▉▌▊▊▊▇█▅▄█.▅▄▄>
▌█▊▇: ▅▊▊ █▋▍ ▊▋ ▍▅:█▆:▊▆ ▋▅▌▉ +█▋▊▇
▅▌▌▉▋▅▄▋▊▍▍▌▅▇▄▋▌▍(▄▌▊, ▅▄▍) ▇▆▇▍▅▇▄▍
▊▌█▋▉▆ ▅█▋▆▉█▆▌▄█▄▅▋█▋▌▋▍▋▍▅▉▋▅▊▆▍▄▅▇▌▆▅▉▋▉▅▇▊▊
▋▉▅▍▌▍: ▊▉▅▌▄ ▉▄▊▄ <▊▊▉▊▆.█▆▋▊@▉▋▍▅▊▆▊█▇▅▅▊▇▋▇▊.▊▇▌>
▆▆▇▆: ▉▉▅ ▌▉▊ █▅ ▉▋:▉█:▄▍ █▌▍▆ +▊▅▌█
█▆▍▆▄ ▉▅▇▉▇▅▉█▉▉▇▅▋ ▍▍▊▌ ▌▇▆▊▅█▍ ▄▉▅ ▇▅▅▌▍ ▆▊ ▌▄▅▆
▅▇▉▉▍▇ ▊▄▍▆▍▋▉█▉▄▇█▊██▌▍▅▆█▊▇▌▅▅▍▉▊▋▄▋▄▆▅▇▍▊▍█▇
▊▇█▆▆▇: ▇▋▋▇▇ ▇▇█▊ <▆▆▋▅▍.▆▍▋▉@▇▇▅▉▄▉▅▄▊▍▌▇▍▊▌▋.▊▋▌>
█▊▇▋: ▋█▄ ▋▌▋ ▉▄ ▊▊:▌▌:▌▆ ▋▊▆▅ +▇▊▇▊
▇▆▉▍█▆▉▄▇ ▌▍▉ █▅▍▋▆▆▅▌▅▊ ▄▋▍▉▌▄▉▆ ▇▊▇▅▄▋▅▍▆▆ ▉▉▇▄▍
▇▌▊▊▉▌ ▄▉▉█▊▆▋▍▍██▉▄█▇▆▆▄▅▉▇▍▍▆▉▇▄▌▊▋▆▇▄▇▆▅▌▊▇▉
█▄▇▌▄▄: ▆▉▉▄▉ ▊▉▍▉ <▄▊▆▍▇.▅▍▆▆@▆▅▉▋▆▆▇▊▊▊▅▆▊▅▅▉.▅█▇>
▊▅▉▌: ▄▌▆ ▉▉▋ ▄▇ █▌:▅▉:▍█ ▉▇▇▋ +▌▍▌▋
▆██▄█ ▆▋▊▊▄▊▆ █▍▍▋▋▍▉ ▆▋█▉▉▆▄▉ ▅▍▌▇
▉▍▆▉▋▄ ▉▇▌▊▌▅▄▍▊▄▊▇▉▍▍█▊▄▋▍▍▌▇▊▉▊▋▋▄▇▆▇▆▋▆▊▋▉▌▇
█▊▉▄▍▋: █▍▇▅▆ ▅▋▌▄ <▊▍▆▄▅.█▆▌▇@▋▆▅▌▊▇▊▅▆██▇▇▇▊▌.▅▋▇>
▌▄▄▊: ▇▊▉ ▊▉█ ▊ ▌▅:▋▆:▆▋ ▊▊▆▄ +▉▅▍▆
█▋▇▊▉▆▍▊▍▄ ▆▋▊▌▅▄▊▅▋▉▉
▆▉▄ ▄▍▆▉▉▆▇ ▍▄▇▌ ▌▆ ▄▍▅▊ ▆ ▆▋▍█▅▋█▅█▇██ ▊▆▅▆▉▊'▄ █▅ ▊▊▆▋▆
▍▆▌▉▆▉ ▌▇▍▌▄▊▋█▅▇▌▍▉▉▊▊▋▍▉▆▅▆▅▉▄▋▋▌▌▅▇▌▅▍▉▇▆▇▅▍
▌▉▆▌▌▊: ▊▅▉▆▉ ▍▄▍▇ <▉▆▇▋▇.▌▌▉▄@▄▍▌▊▍▇█▇▋▉█▉▄▆▋▇.▄▉▇>
▊▉▇▌: ▆▉▍ ▄▌▉ ▌ ▄▍:▄▅:▌▌ ▌▄▅▆ +▌▆▅█
█▋▉ ▍▊▇▆▇▉▍█▊ ▅▊▄▄▆▉ ▋▍▉█▉▌█ ▍▉▄▇▅ ▋▇▆▇▋▌█▅▆ ▅▉▋█ ▄▊▆ ▋▆▍▅▍ ▇█ ▆▍▄ ▅▋█▊
▌▆▍█▆▅ ▇▌▍▆▉▅▆▉▇▌▄▉▅▆▆▇▅▆▅█▍▄▇▋▊▋▊▉▇▆▋▄▌▉▌▌▇▊▉▌
▄▌▌▅▍▉: ▉▆██▅ ▋▆▋▆ <▇▉▅▉▌.█▊▆▄@▄▄▋▊█▇▄█▊▇█▅▅▅▋▄.▅▇▅>
▍▅▄▌: ▄▆█ ▇▅▄ ▋ ▇▇:▉▋:▄▌ ▌▍▌▅ +█▊▅▌
▇▅▆▇█ █▊▄▉▇▍▄▆▊▇▍▄▍() ▇▌▄▄ ▉ ▇▅▌▆▆▉ ▍██▌▍▋▅▆▄▋▊ ▄▆▋
▆▌▄▊▅▉ ▍▄▉▇▆▌▆▉▌▅▉▆█▉▉▌█▅▆▍▅▊▍▅▋▌▋▇▆▉▅▆▄▊▊▍▍▅▊▅
█▉█▌▅▇: ▊▋▅██ ▌▇▅█ <▆▄▇▉█.▄▌▇▇@▄▇▅▋▍▊▍▆█▅█▉▅▅▄▇.▅▄▆>
▌▄▆▌: ▌▅▇ ▌▉▊ ▆ ▄▉:▆▅:▋▌ ▅▌▋█ +█▆▇▅
▊▍▅▍▇ ▅▆▄▊█▆▌█▆▊▉▌▇▊(▆▅▍▆▄█▅, ▅▇▆▋) ▇▌▍▊ ▅▆▆▌▆█ ▄▄▌▋▌
▍▇▍▆▆▉ ▅▊▅▄▋▊▄█▅▍▌▋▍▅█▌▌▄▇▇▍▄▅▅▅▄█▆▉▌▆▅▄▅▆▅▌▊▇▊
▅█▅█▆▆: ▍▊▇▄▉ ▌▍▌▉ <▄█▍▍▋.▅▋▍▆@▋▊▋▋▌▇▄▅▊▊▅▉▍▋▍▌.▄▋▍>
█▆█▆: ▆▊▆ ▋▍▊ ▊ ▉▇:█▌:▋▉ ▉▆▌▄ +▍▇▅▆
▊▍▅▋ ▍▄▋▇▌▉▄▆█ ▉▅▊▊▅ ▉▄▅▌▅▄ ▄█ ▇▌▍▍ ▉ ▍▇▍▉▊ ▄▍▍▉▌▅█
▍▌█▄▄▄ ▆█▋▌▄▅▌▌▄▋█▋▍█▍▍▅▍█▍█▉▊▅▍▆▍▇▆▅▉▇▇▋▊▉▋▄▆▌
▋▌▄▆▉▌: ▍▋▉▍▋ ▉▊▄▊ <▋▋▉▍▌.▆█▉▌@▅▄█▅▋█▆▄▊▊▅▊█▇▊▄.▆▅▌>
▇█▄▋: ▆▅▍ ▋▅▅ █ ▉▆:▇▅:▅█ █▋▄▄ +▊▊▌▍
▌▍▆█▍ ▌▉▄▊▆█▄ ▆▅▄▋▋ ▄▌▅▄▍▇ ▇▆▅▊█▅▋▊ ▋▅ ▌▇▅▋▆▆ ▇▌▉▉▄▋▄▅▆▋▆▇
▊▌▋▌▍▊ ▌▆▋▅▅▌▍▉▊▍█▌▌▄█▌█▆█▇▆▊▅▍█▊▍█▄▍█▄▇▉▌▄█▆▋▋
▊▉▄▅▋▇: ▍▆▌▋▇ █▇▊▇ <▆▄▋▋█.▍▉▉▋@███▆▅█▇▆▉▋▊▋▉▄▆▄.▋▊▉>
▆▉▍▊: ▋▅▊ ▍▋▉ ▇ ▌▅:▄▇:▊▇ ▌▊▅█ +▇▄▍▊
▍▊▊▄▉▊▋ ▆▍▆▅▉▋▋ ▄▉█▊▋ ▅▍█ ▊▆█▌▅▄▉ ▅▍ ▉▄▄▋▉▍ ▍▅▌▉▉▆▋▅▅▉▅▉
▊▄▊▆▋▊ ▉▍█▉▊█▊▋▋▆▊█▋▄▉▉█▉▌▊▇▆▍▄▇▆▄▉▍▅▆▆▇▇▆▉█▇██
▍▋██▉▊: ▌▅▄▄▉ ▅▇▅▇ <▆▄█▆▇.█▅▌▊@▄▇▅▇▋▄▄▄▄█▊▉▌██▊.█▌█>
▌▉▄▌: ▅▄▍ █▄▅ ▅ ▄▌:▍▌:█▅ ▉█▇▍ +▍▉▅▍
█▋█▊▍▊▍
▉▊▄▄▍█ ▍▇▌▉▄▍▍▇▌▊▄▍▆▅▍▉▉▌▄▍▍▊▆▉▌▄█▅▉▅▍▋█▋▉▄▉█▌▉
▆▉▊▅█▋: ▋▉▍▍▅ ▅▍▄▉ <▇▄▆▋▄.█▋▌▊@▊▆█▉▉▍▄▄▍█▊█▄▅▅▅.▆▍▆>
▊▄▋▋: █▅▆ ▍▇▋ ▌ ▅▉:▊▍:█▅ ▆▅▍▄ +▍▄▅▉
▇▅▆▍▄▊▋▉█▆▊ ▍ ▉▄▇▇▍▋ ▇▅▇▅▋▄▋▄ ▌▄▍▅▊▍▊▆ ▄▄▍ ▄▆▅▄▊
▄█▇▉▊▅ ▌▉▅▆▋▄▅ ▆▇ ▆▅▄▋ ▊▉▆▉ ▊▆▆▍▆ █▌█▆▄▋▅▆▊▆▇▋▆
█▄█▆▊▄ ▌▊▋▌▅▇▇▄▋▌▋▆▇▅▉▅▆▋▉▍▇▅▄▉▍▊▄█▄▆▅▇▊▆▅▉▋▄▇▌
▋▊▇█▌▍: ▄▉▋▇ ▌▋▋▊▊▋▊ <▅▌█▇@▍▍▉▋▇▉▅▄▍▇▅.▇▋.▆▋>
▋▊▊▍: ▊█▋ ▋▇▇ ▊▍ ▉▇:▍▊:▅▌ █▋▊▋ +▊██▍
█▋▍ -▊▇▄█▍▍ ▍█▌▌▌▆▆ ▅█▋▉ ▊▊▍▋▄▉▆█▄ ▍▍▆ ▉▋▄▍▌▋▍
▊▉▉▇▄▅ ▆▄▉▉█▊▆▋▌▆▋▋▅▊▌▋▄▍▄▍▆▇▄▌▆▇██▄▄▅▇▍▉▋█▊▍▉▇
▋█▊█▆: ▆▊▄▅▍▉▉▇▄▍ ▍▍▊▆▅▅▌▋▌▅
█▋▉▌█▄: ▄█▊▆▋▊▉▊ <▄▊▇▆▅█@▉▍▍▊▋█▍▊▇▆▌▋▌▇▋█.▄▅▊>
▌█▄▋: ▋▅▇ ▇▄▆ █▋ ▉▉:▇▊:▉▋ ▍▅▍▄ +█▄█▇
▄▋▆▍▉ ▉▅▊▇▄█ '▆▆██▄▍' █▍ █▇▅█
▋▆▋▅▄▋ ▋▄▄▆█▅▉▅▅▊▌▊▍▆▇▅▇▉▉▊▍▅▍▅▄▄▍▇▉▊▌█▄▌▊▍█▍▋▇
▍▍▌▋▄▋: █▍▅▉▍▅▉█ <▋▉▄▌▆▇@▅▆▉█▌▇▉▄▊▇▊▇▋▆▋▍.▆▆▄>
▆▊▄▅: ▍▋▊ ▍▊▅ ▄▌ ▉▋:█▅:▋▇ █▌▋▆ +▇▆▌▍
▉▇▆▊▋ ▇▌▌▍▋▅▄
- ▉▊▅█▌▍▊█▄ ▊▇▄▄▊▌ ▇▇▄▆▋ ▇▄ ▅▇▊▄ ▇▋▄▋▋ ▊▍ ▊▌▋ ▋▇▇█▊▇▌
- ▍▄▅▊▅ ██▉▍▉█ ▋▉█ ▌▋▌▉▌ █▇▍ ▋▄▇▋▅▊▄▊▌ ▄▄▅▆▆ █▇ ▅▆▉▅▋, ▅▉▍▇▆▌▉▉ ▌▋▍▉▄▇▄▇█/▇▌▉▇▋ █▋ ▇▆▉ ▆▉█▊
- ▌▅▅▉ ▉██▌ ▋█ ▄▍▆▅ ▊▆▍ ▇▄▋▍ ▊▊██/▅▆▍▄▇▆▄█
- ▅▄▇▌▋▉▍▍/ █▅▄ ▆▋▅▊▊▍▉▌█▋
▋▆█▋▅▇ ▅█▌▇▅▄▉▄▄▇▇▆▌▅▋██▊▆▊▍▊▇▄▋▇▉▊█▌▌▅▉▅▋█▊▌▌▅
▅▅▉▇▊▇: ▄▇▍▆▋▌ ███▉▅▋ <▉▋.█▌▊▆█▅▊▊@▇▆▋▊▋.▄█▌>
▄▄▇█: ▇▅▋ ▅▄▄ ▊▅ ▋▅:▇▌:▆▄ ▊▇█▆ +▍█▊▇
▍▊▉▄▅█▍▊█▄ ▇▄█▆▄▉▅ ▇█▉▍▆ /▍▍▇▊▇▅/▇▋▅▌▌▍▆/
▅▊▄▍▆▅ ▅▊▆█▅▊▇▆▍▅▉▄▄█▋▋▉▊█▅▌▆▋▍▉▆█▄▍▍▅█▆█▌▊▊█▆▍
▍▌█▊▉▌: ▋█▉█ ▄▇█▅▆▌▍ <▇▍▍▅@▇▇▍▍▅▋▉▊▄▅▄.██.▅▍>
▌▄▇▊: █▄▉ ▉▌▌ ▍▄ ▅▍:▊▆:▉▆ ▌▊▉█ +▊█▄▆
▌█▆▍▌▄ "▄▇▄▌ ▍▇▉▅▋▋ ▅▅▅▋█▋▇▌ ▉▆▊█▇██▍▉▆ ▅▅ ▆▍▄▍▄▌▍ .▌▇▅▋ ▊▌ ▌▇ █▆▇▌▅▄"
█▇▉▇ ▉▍▉█▄▋▇ ▍▊▉▅▅▆ ▊▉▋▉█▇▉▄▉▉▅▍▊▅█▄▄▋▉█▉▉▍▇█▇█▇▊▆▆▅▇▄▋▆▇█▄▍.
▄▇▍▇██ ▇▉▌▍▉▋▊▋▊▄▉▇▅▅▍▅▇▇▇▄▊▊█▅▋▉▋▉▇▆▉▊▍▍▍▌▉▋▊▉
█▉▇▋▋▍: ▇▍▄▍ ▍▊▍█▌▋▅ <▋▅▍▄@▅▇▇█▌█▆▅▅▊▉.▊▋.▉▄>
▆▋▇▋: ▆▌▉ █▇▍ ▊█ ▄▆:▋▋:▉▊ ▉▇▅▄ +▆▍▉▄
▋▍▆▇ ▍▆▍▌▉█ ▇█▋▆▉▍▄▉ ▅▄▅▍█▌▄▄▆▅ ▌▅ ██▅▅▄▊▅ .▍▄█▉ ▆▊ ▆▇ ▄▍▆▋▆▍
▋▋▉▍▌█ █▇▌▍▋▍▇▍▍▆▉▆▍▋▅▉▋█▍▆▅█▍▅▍█▊▆▋▋▊▆▅▅▋▉▅▉▌▇
▆▇█▋▇▄: ▌█▌▅▄▄ ▄▊▇▍█▋ <▍▇.▆▅▅▅▊▆▄▌@▄▉▇▅▊.▉▍▌>
▄▅▋▍: ▉▅▇ ▉▋▊ ▆▉ ▋▋:▅▇:▉▉ ▄▅▅▆ +▅▄▄▄
▇▆▌▌▇ █▊▉▌▆▍▄▋ ▅▋ ▊█▍▄▉.
▄▆█▄▊▅ ▉▌▊▋▍▋▍▉▋▅▋▌▆▌▍▆▍▌█▉▋▍▇▉▋▆▄█▍▅▋▌▆▆▌▋▌▅▇▆
▄▅▇▊▌▊: ▋▅▉▋▇ ▉▉▄▇▊▉ <▅▄▋▊█▉▊▇▍▊▍@▍▅▇▌▉.▆█▊▉▊▊▅.█▌▌▆▋▆.▆▅▍>
▆▆▋▄: ▉▉▊ ▊▊▆ ▌▍ ▋▆:█▇:▉▄ ▇▉▋▄ +▌█▌▆
▋▉▇▌▅▋█▄▊▍ ▊▋▄▊▌ ▍▍█ ▋▆▋▊█ ▌▆ ▆▌▊ ▆▆▇▆ ▆▆▋▅▇▌▅▅█ ▋▉█▋▌▍▋
▋▋▅█▋▊ ▉▅▄█▊▍▌▌▌▇▉██▋▌▊▊▄▆▉▋▍▄▄▅▇▆▅▌█▅▍█▊▋▊▄▌▅▆
▇▊▍▅▌▆: ▇▆▌▄▅ ▄▆▅▌▉▄ <▄▇▆▊▋▍▇▆▊▍▌@▍▆▉▌▍.▍▆▄▄▌▅▌.▍▍▆▌▇▅.▋▇▋>
▅▉▄█: ▌▉▊ ▋▉▍ ▆▆ ▉▆:▊█:▆▅ ▆▌▋▉ +▆▌▉▆
▋█▅▄▄▌▊▅▌▋▉ █▄█▊▇▉▍
▍▉█▊▉▇ ▄▄▉█▍▊▇▅▌▉▌▅▉█▌▇▊▇█▍▍▌▄▌▆▇▄▆▍▍▌▄▌▌▍▄▇▆▅▆
▇▇▉█▉█: ▌▄▄▉▍ ▄▆▊▇▆▍ <▊▅▉▊▄▆▍▋▋▇▋@▉▌▍█▆.▆▉▊▆▊▆▌.▉▍▆▇▍▋.▌▆▉>
▊▅▋▄: ▉▉▇ ▅▊▊ ▌▅ ▄█:▆▊:▉▌ ▍▄▋▄ +▆█▇▍
▊▌▌▍▄▌▄ ▆▌ ▊▆▇▊▊▆▉▊▍▇▊▉
▉▄▋▇▌▍ ▆▋▊▌▆▊▊▍▉▆▊▊▄▅▌▉▉▇▅▆▇▌▅▇▇▄▋█▅▌▅▉▆▍▌█▆▌▍▋
▄▊▊▆▄▇: ▇▉▊▍█▇▆▊ <▊█▊▆▉▅@▍▅▌▋▅▄█▅▆▇▇▊██▅▊.▅▍▇>
▄▋▅▋: ▆▇▋ ▇▉▆ █▌ ▍▇:▋▋:▌▌ ▍▅▍▍ +▆▆▆▉
▌▍▋█▄▆▊▍██▋ ▇▊ █▇▊▌▌▌▉▇ ▇▊
▊▆▋▆▌▇ ▄▉▌▉ ▊▉▌▊ ▅▆▅▅ ▄▌▇▍▉▆▉▋▇ ▄▇▇ ▋▆ █▆ ▅▅▆ ▄▌▉█▍▍▌▍ ▍█▄▋▉▋ ▇▆ █▆▊ ▋█ ▊▄▄▍▅ ▉▋ █▄▉█ ▍▍▄▇ ▉██▄▊▆ ▉▆ ▆▇▋▊ ▇▍▄▄██▌▇ ▋▉█▋▇▄.
▉▌▍▉▌ ▉▋▄ ▋▄▌▉ ▄▅▅▋▋▊▇▍█.
▉▄▉▄█▅ ▊▉▍▍▋▊▉▋▋▇▊▉▆▌▆▅▍▅▌▇▊▆▍▋▌▇█▊▍▌▇▉▇█▄▉▋▄▅▌
█▇▇█▅▄: ▅▄▆▇▄ ▇▅▅▉█▉ <▆▅▇▆▍▌▌▄▅▆▌@▌▋▇▍▄.▄▌▆▌▉▊▋.▆█▇▉▌▍.▇▅▌>
▉▍▉▌: ▋▊█ ▉▉▇ ▍▌ ▇▅:█▄:▄▇ ▅▆▇▉ +▍▊▇▅
▋▊▆ ▄▄▋▄▍▆▋ ▌▄▆▇ ▇▊ ▇▅▊▍▌▇, ▍▉▋ ▊▆▌▉▄▍ ▌▉▊▌▌/▇▉▇▆▋▇▌▋ ▅▄▄▋▍▊▅ ▋▄
█▆█▊▋://▆██▅█.▆▋▄▉▊▉█▇▌.▌▇▅/██▆▇▊/▉▉▍▌▌▆▌▄-▇▇▆▉-▆▌▋▉-▍▊▍▅-▉▇▆█▆▇▌▊▆▌▄█.▇▉▍
▍▆▉▇▉▆ █▇▅▆▋▉▄▉▉█▌▆▆▅▅▆█▊█▇▅▋▉▇▋▆▊▍▌▇█▆▇▍▄▄▅▆█▌
▌▄▋▇▆▅: ▄█▋▋▌ ▍▍▆▄▋▌ <▋▉▉▌▅▋▆▄▉▍▇@▅▅▅▅▅.▊█▄▄▅▅▉.▅▆▆▅▉▉.▇▅▌>
▇▆▇▋: ▍▍▋ ▇█▇ ▊▆ ▋▇:▊▉:▊▌ ▆▋▍▊ +▊▊▄█
▊▌▊ ▋▉▆▌█ ▌▌▋ █▅▋▋▋ ▉▌█▆▇▍▉ ▉▌▋▄▇▌▊▉ ▋▋ ▉▆▌ ▋▋▋██▇█▋▌
▅▊▉▄▆▄ ▌▆▋▄▋▇▄▌▌▅█▉▆▇▄▋▊█▌▄▌▄▄▌▄█▌▋▋▄▉▆▊▉▋█▍█▉▉
▊▌▍▆▍▋: ▆█▋▇▍ ▅▅▆▅▌▅ <▌▄▆█▇▅▋▊▆▌▊@▉▉▌▅▌.▇█▄▄▋▍▆.▅▇▍█▅█.▄█▇>
▌▇▄█: ▆▄▆ ▋▆▊ ▋▌ ▊▌:▆▉:▋▆ ▌▌▅▋ +█▍▋▅
▄█▋▉▆▅█▇▋▆▋▊▊ ▆▅▇▋ ▄▆▇▉▉▋ ▌▇▅ ▆▊▅▄▌▅▊ ▄▄▋▄▊█▉ █▆ ▅▍▋▄▊▊▊▌▍ █▋█ ▊▉▋▌▆▄▍▌ ▅ ▊█▊ ▍▉▆
▇▇▅▊▊▍ ▆█▋▄▆▉▉▍▇▄█▇▆██▄▅█▇▊▊▄█▉▅▄▄█▆▉▌▋▅▉▇▅▍▋▍▉
▇▌▌▉▍▆: ▋▄▋▆▅ ▋▆▍▆▅▍ <▆▌▅█▅▊▌▆▊▆▋@▄▇▄██.▌▇▋▆▌▉▍.▇▄▊▄▇▅.█▅▆>
▅▅▋▌: ▋▄▆ ▅▍▇ ▇▍ ▍▍:█▆:▊▆ █▊▉▍ +▄▊▍▌
██▊█▄▅▅.▉▍▅▇▊▊ ▋▅▉▇█'▆ ▄▇▄▆▌ ▋▌▄▉ ▊▆▅▅▍ ▍▊▋▉█ ▆▅▌█, ▄▆▌ ▄▊▊▉▍▉ ▉█▌ █▇▅▌▋ ▆▄▊ ▌▊▄▆, ▊▊▅▇ ▄▌▆▄▆▌▍▍ ▍▊▅ █▄▋▊▉ ▋▄█▇▊▊▋ ▄▄ ▅▊█▆ ▊▇▍▉▅▌▋▇ ▇▊▊ ▇▅▍▄▄ ▊▉▄
▍▉█▉▆▋ ▋█▅▅▄▄▅▉▋▆▇▆▌▌▌▍▅▇█▌▍█▋▊▍█▊▊█▋▅▋▋▋██▉▅▇▊
█▌█▊▋▌: ▋▋▆▍▇ ▅▅▇▌▇▊ <█▆▊█▉▅▍▄▉▉▅@█▇▇▍▄.▌█▄▍▄▍▅.▊▌▇█▇▄.▊▇▌>
▅▌▅▍: ▊▅▌ ▋█▊ ▅▇ ▊▇:▌▊:█▄ ▇▌▋▇ +▊▉▅▍
▉▅▊▉▄▍ ▅▆▇ ▉▆▄▇ ▊▊ ▇██ ▋▋▍ ▉▉▌▍
▄▆▉▄▋▅ ▊▌▊▊▊▄▌▊▆▆▇▄▇▇█▊▋▆█▌▆▋▇▄▄▊▋▊▄▋▉▅▉█▊▅▋▍▄▆
▉▌▉▉▉▉: ▆▉▉▇█ ▇▊▌▍▌█ <▊▉▍▆▆▉▉▊▆█▌@▊▆▍▋▆.▅▆█▅▌█▉.█▆▄▊▆▆.█▊█>
▋▋▄█: ▄▄▇ ▆▍▍ ▇▄ ▇▌:▇█:▋▅ ▉▊▉▋ +▊▆▄▉
▄▆▍▇▇▋ ▌█▌ █▌▇▅
▅▍▅▅▍▄ █▄▇▊▆█▅▌▄▍▄▅▌▇█▍▄▇▊▉▉▆▍▍▌▉▇▍█▊▇▉▋▅▉█▊▉▊▌
▆▌▋█▌▇: ▄▍▋▅ ▌▌▉▇█▆▅█ <▋▋▄▆██▉@▉█▋▌▍.▇▉▊>
▌▇▋█: █▅▉ ▉█▅ ▇▋ █▄:▇▊:▆▇ ▆▋▍▋ +▍█▇▌
▆▍▇▅ ▌▌▇▆▊▄▋▌▋▆.▆▆▊▄ ▄▊▅▉▄▄
▉▊▄▌▊▅▇ ▆▅▉ & ▌▉▅▇ ▇▉█▆▇▆▌
█▉▍█▋▄▌ ▇▋▋ ▋▌▆▉ ▅▋▉ ▉▉▊▉▋▆ ▇▊▄▆▋
▉▆▌▅▌▆▅ ▄▄▇▍▄█▌▇▋▅▋▍▌▅
▋▍▊▌ ▉▆▋▇▊▌ ▊▌▅▌▉▍▉▄▄█▅
▊▆▊▉▅
▋▇█▆ ▍▅█▉▋▇▆▇▆▍▇ & ▋██▆▆ ▇▄▌▌▉▊▍ ▇▄▅▊▄▆▇
▉█-▌▇▌▉▇▉, ▄▆▋▆▌▄▅, █▅▋ █▇▌▋█ ▊▋▆▆▅▉▊ ▊▅▄▌▇▌
▌▄▊▊▌▌▍ ▊▅▆▌▌▆▊ ▍▍▉▍▉▌, ▄▆▊▊▇ ▅▄▇▉▉▆▄▋▆▉▅
! ▅▋█▄ ▋▋▉██▇▌▌▋▊ & ▉▄▆█▌▊▇ ▍▆▋▋
! ▊▄▊▄▌ ▄▄ ▄▌▌▌ & ▉▉▅▇▊ ▆▆▍▇
! ▅▊▍▍ ▅▋▆▇▍▋▅ ▉▋▆▄▊▍▇
! ▊▇▌ ▌▍▋▋ █▊▇▉▍
! ▅▋▆▇▊▄▅ ▊▍▄▌ ▊▄▅▊▇▌▆▄▊▋, ▌▊▊▉ ▇/▋, ▅▅▊▅▌ ▌▄▉█▆▇▊ ▄█▆█ ▉█▅▋▌▄█▊▇ ▆▌▅▆▅▊▌ ▆▇▍▉▆▍ ▄▌▄▉ ▆▅▉▊▍▆▉█▄▆ ▇▉▌▅▊▄▋▉
! ▄/▍ ▆▇▉█▇
! ▋▉▊ ▅/▊/█
! ▇▋▆ ▌ + ▇▄▋▇▊ ▉▌▄▇ █▋█▌▌▆▅
! █▌▅ ▆ + ▍▉▅▆▆▊▌▆▇▌ ▄/▋/▊
! ▆▇▍▍, ▆█▇█▆▆ ▍▊▇▋▋, ▍█▄▉ ▊▍▌▌▍█▄▍▊ ▉▊▉█▍▋, ▉▉▆▅▅▇▋▌
! ▊▇▅▊▍▍ ▄▇ ▍▋▉▅▊█▉▄▉▅█ & ▊▌▉▊ ▉▊▉▅▆▊▆▌▅
! ▌▅▆▉▌ ▌▅▄▉▆-▋▋
! ▌▋▄▅▍▆▊▍▍▄ ▍▄▊▊▄▇ ▋▌▊▊▍█▆▉▅
! ▄▆▋▄█ ▄▊ ▌▌▊▌█▄ ▆█▊▌▅▌▅▅▌▅ ▋▌▆▋▉ ▅▌▇▉▉▍▍ (▄▍▍█▍ ▇▆▌▍▅ ▌▋▉ ▆▍ ▄▆█▇▄▆ ▄▍▅▅▇▅▊▍▆▇ ▌▅▇ ▇▊▍)
! ▊▌▌ ▍▍▆▊▍▉ ▆▆▅▌▅ ▄▆▌ ▋▄▄▋-▇▊▆▉ ▌▊▌▍▉▆▍▇
! ▄▉▊█▅ ▆▋ ▇▆▊▅▌ (█▅▅▆)
! ▊▆▉▇▉▆▇ ▅▊▇▄▊ ▋▍▍▍ ▇▌ ▋▉█▌ ▋█▆▋█▋▉ ▇▄▊█▉▇
! ▇▊▉▋ ▌▆█▋ ▋▅▄▉▆▊▅
! █▊█▊▌▌ █▄▄ ▌▋▊▊▆▆▇ ▅▅▊▊▇▌ ▄▌▇▍ ▄▍▇▅ ▆▆▄ █▌█▆ ▌▋▉▍ ▊█ ▍▅▉▌█▉▌▌▇ ▊ (▄ = ▋▊▊▊▆, ▍ = ▋█▋▌ ▊█▉)
▆▇▌▅▇ █ ▄▋▋▇▅▋▋▅▉ ██▆▌▊ ▄▊▆▋▊▉ ▌▋█▌▉! ▆▊▍▉▄ ▋▊▉▌ ▉▆▄ ▇█▌█▋ ▆▄▆ ▉ ▋▌▉▉▅▄▉ ▌▊▇▆▌▋. ▌▅▌▉ █▊ ▌ ▋▍▄▋▉ ▍▇▋▄▄, █▇▉▍ ▉ ▋█▄▍▊ ▅▋▆▅▍ ▆▉▉ ▋▊ ▆▌▇█▌▋▌▋▄▆, ▊▋▋▉▌▍▆ ▌▇ ▇█▉▉▍▊ ▄▋▌ ▋▇█▋▍▇▌ ▊▍▅▅▋▍▊▍▊▍▇.
▄▆▆▅▄▄▆▊
█▊▆▅▌▍ ▅▌▇▊▅
▇█▊█▅ ▌▅▅▄▆▍▅, ▌▋▆█▄▍▉ ▌▄▄▇▇▇ █▅▍▍
▆▉▍▌▄▊▇█▋ ▄▇▌▍▅ ▇█▉ █▇▊ ▉▄▍▌▋▄▇▄ ▆▅▋ ▊▅▆▋
▋▄▇▌▅▍▍ ▆▍▅▄▅▌▄
▍▋▄▋ ▇█▆▊▅▄▍▇ ▆▆▊▇▋▊▊▇▉▇▅
▉▆▋▉▋▄ ▊▋▍█▄▆▇ ▊▌▌▋▉ ▅▍ ▇▍▌ ▊▋▊▉█ + ▇██ █▉▊ + ▉▉▊▌█▉█/▆▍▌▅▍ ▆▋▌▌▍
▌██▋▉█ ▄▋▄█▅█
█▍▊▋▊ ▄▇ /▆▍▅▉
█▅▍▍▉▌█▌ ▊▉▉▊▍▄ ▍▍ ▄▉▅ ▇▅▆▋█▌█▅▉:
▊█▉▄▊▌ ▄▉▉█▉▌▊▉▉▍▍▇▊▊▋▄▆▋▋▋█▅██▅▄▊▍▆▅▍▉▍▅▄▇█▉▄▆
▊▉▋▋▉▉: ▋▉▋▉▆ ▌▆▌█ <▌▅▅▇▉.▆▋▇▇@▄█▇▉▊█▊▊▋▉▄▌█▊▍▊.▆▅▅>
▊▍▅▇: ▄▋▅ ▅▆▆ █▍ ▍▅:▇▋:▄▅ ▆▍▆▌ +▉▅▊▋
▉█▉▅▋ ▆▅▉▋█▌▅ ▆▌█▇▇█▆▉▅▊▄▍▌ █▄▅ ▍▋█▄▊▆▅ ▋▊▅█▆▌▇█▍▌
▍▌▇▉▍▉ ▄▌▄▊▍▇▊▆▇▅▍▊▍▍▌█▍▋▊▋▆▄▍▊▋▅▅▄▍▉▊▊▍▆▇▅▉▊▅▇
▄▌▅▄▍▋: █▍▍█▌ ▊▌▆▆ <▄▍█▍▋.▆▉▇▋@█▆▊▋▊▋▍▇▉▇▊▇▌▌▋▄.▋▆▄>
▉▊▄▌: ▋▍▇ ▅▅▋ █▅ █▉:█▉:▋▄ ▊▇▆█ +█▅▉▉
▍▅▄▋▌▄▄▉▌▄██▍▌▆▉▌▊(▄▅▆, ▋█▇) ▍▍▄▌▌▄▅▌
▇▆▄▅▅█ ▌█▅▌▋▇▅▇▅▌▄▊▊▌▅▇▆▅▋▋▋▍▍▅▋▋▌▉▄▊▌▅██▌▉▍▇▍▄
▅▊▌▅▌▅: ▇▇▋▍▄ ▌▇█▊ <▌█▄▅▍.█▉▆█@▄▍▆▆▍▉█▍▅▊▉▄▄▋▆▉.█▉▌>
▄▊▍▋: ▍▋▍ ▅▍▅ ▄▉ ▊█:▇▅:▍▍ ▄█▆▉ +▄▊▊▍
▊▌▋▋▉ ▉▍▋▅▌▄▅▆▉▍▇▉▋ ▅▄▍▉ ▋▊▇▊█▅▉ ▉▉▆ ▄▄▄▅█ ▅▊ ▉▊▌▆
▉▄▋▊██ ▌▄▇▉▉▍▄▅▄▇▍▄▌▆▊▆▋▄▆█▌▍▇▄▊█▄▇▅▉▊▄▍▊▊▉▅▋█▄
▄▄▇▋▋█: ▋▊▊▆▇ ▊█▍▊ <▍▊▇▌▅.▍▋▍▉@▋▌▅▆▉▄▅▍▉▅█▋▊▉▇▆.▋▇▊>
▍▅▍▊: ▍▄▋ ▍▌▍ ▇▅ ▆▅:▋▄:▌▇ ▉▄▊▅ +▇▄▇█
▌▆▄▍▊▇▉▄▄ ▇▌▆ ▅▅▌▅▆▄▆▍▆▊ ▌▉▉▍▆▇▄▋ ▌▌▆▉▆█▌▍▇▍ ▉▅▅█▆
▊▆▇▅█▌ ▆▌▇▆▆█▉█▋▅▆▄▆█▍▍▊▍█▇▇▋▆▇▄██▇▍▋▌▅▊▌▉▍▍▆▍▍
▇█▊▌▇▅: ▍▍▆▊▉ █▋▅▉ <▉▊▍▆▋.▄▅▉▄@▇▅█▇▍▍▄▇▍█▍▌▅█▄▌.▉█▄>
▆▅▇█: █▇▍ ▇▍▍ ▆▍ ▅▍:▊█:▆▋ ▉▍▇▉ +▆▉▆▅
▊█▆▍▇ ▅▉▅▆▍▄▋ ▍▍▍▉▄█▋ ▉▌▌▉▍▌▅▄ █▋▊▌
▌▅▇▊▉▅ ▄▉▄█▍▋▋█▉▋▉▄▋▉▋▋▋▆▌▍▆▄▆▅▄█▉▄▆▉▉▇██▍▌▋▄▌▅
▌▉▇▇██: ▍▅▄▄█ ▄▌▊▍ <▄▇▌▇▉.▆▊▅▍@▅▆▊▇▉▍▄▊█▊▅▋▋▌▋▉.██▍>
▆▅▉█: ▌▉▍ ▉▌▋ ▇ ▍▅:▇▇:▅▆ ▌▊▉▅ +▍▋▊▅
█▅▆█▅▌▄▌▋▍ ▌▊▋▌▌▊█▆▍▄▋
▍▇▇ ▊▉▋▌▌▋▆ ▇▌▇▇ ▇▊ ▄▋▌▆ ▅ ▇▇▉▉█▄▋▍▋▋▌▊ ▇▉▌▌▋▉'▄ ▅▍ ▄▊█▌▇
█▉▍▇█▄ ▋▊▊▍▌▅▄▊▄▍▄▉█▆▍▌▉▋▆▅▋▅▅▇▋▄▊▅▉▆▍▇▆▌▌▋▌▌▄▊
▉█▄▄▍▅: ▍▊▇▊▄ ▅▄▇▆ <▊█▇▆▋.█▍▅▌@▍▋▇▊▇▆▍▊▋▊▉▇▄▅▇▉.▄▄▋>
▌▆▋▆: ▍▉▅ ▆▉▉ ▆ ▅▊:▇▆:▄▆ ▋▇▆▅ +▋▇██
▋▌▊ ▇▍▋▊█▅▆▉▆ █▇▄▆▄█ ▅█▉▍▄▋▅ ▅▋▋▌▊ ▅▍▇▌▆▊▉▌▉ ▌▊▋█ ▅▋▌ ▋█▆▍▄ ▆▅ ▄▌▋ ▌▍▅▌
▍▍▊▉▄▊ ▌▊▅█▋▅▍▇▌▌▉▍▄▇▇▇▉▌▉▍▋▇▍█▌▉▋▊▍▊▄▌▄▄▍▅▆▌▆▌
▆▌▅▄▆▌: ▌▌▉▉█ ▋▍▄▍ <▉▊▊▉▅.█▇▇▅@▋▊▌▍█▅▄▊▉▋▊▌▅▌▅▍.▊▌▄>
▇▆▇▌: ▍▅▇ ▉▊▆ ▅ █▍:█▄:▇▊ ▍▍█▇ +█▋▆▆
█▄▇▌█ ▉█▉▆▄▍█▋▌▌▄▊█() ██▆▊ ▇ ▅█▉▍▋█ ▋▍█▄▊▉▄▍▋▅▋ ▊▌▋
█▅▍▍▅▅ ▇▋▍▇▋▍▋▋▆▇▍▉▋▅▉▄█▇▅▇▋▄▍▇▊▌█▌▌▄▉▊▌▊▄▍▍▅▇▊
▌▇▋▇▅▅: ▍▋▆█▊ ▊▌▌▇ <▇▌▉▊▍.▉▌▌▆@▋▇▊▄▄▉▅▇▍██▇▇▉▆▉.▍▊▉>
█▇▌▌: ▄▆▋ ▅▇█ █ ▄▍:▉█:▊▌ █▌▋▋ +▇▇▋▇
▇▍▍▆▇ ▅▄▍▆▇▌▌█▉▌▆█▋▌(▉█▉▌▌▍▇, ▄▄▍▌) ▅▄▅█ ▋▆▌▌▍▇ █▅▊▅▉
▋▇▍▍▉▇ ▉█▅▍▋▅▅▇▄▄▍▍█▅▌▋▄▌▊█▉▋▉▄▆▍▊▆▆▄▅▅█▉▉▉▍▉▄▄
▋▉▍▆█▅: ▆▄▋▍▇ ▄▇▄▌ <▌▍▅▊▌.█▌▄▍@▍▌▉▍▊▆▋█▋▉▋▍▋▆▉▄.▋▊▉>
▆▊▄▋: ▇▋▋ ▉▌▌ ▅ ▊▌:█▍:▆▊ ▊▇▇█ +▆▌▇▋
▇▍▄▋ ▉▉▅▌▇▌▇▍▄ ▆▆▌▋▍ ▉▊▍▌█▌ ▍▍ ██▆▄ ▍ ▌▋▍▍▋ ▋▌▆▇▄▋▉
▊▊▆▊▇▄ ▉▋▇▇▊▌▉█▆▋▊▅▋▉▆▌█▆▄▇█▄▍▊▆▉▅▇▌▅▊▇▄▇▋▇▊█▄▅
▇▇▉▄▊▅: ▇▆▆▋▅ ▄▉▄▊ <█▌▋▄▅.▋▆▊▄@▄▇▄▇▌▍▆▄▆▍▍▅▉▌▍▄.▆▍▄>
▄▍▊▋: ▍▊▆ ▉▍█ ▍ █▅:▊█:▄▆ ▄▍▇▆ +█▅▌▉
▅▉▌▍▋ ▍▍▋▅▉▄█ ▉▅▋▊█ ▆▉▇▉▋█ ▄▋▋▄▆▉▋▊ ▌▌ ▆▋▄▇▉▆ █▄▊▍▄▇▊▋▍▅▋▌
▅▉▉▍▇▅ ▌▅▄▍▊▅█▍▆▉▇▇▋▆▍▄▅▆▍▌▇▊▅▄▅▄▌▌█▆▆▆█▍▉▇▆█▇█
▉▅▅▄▇▉: ██▍▅█ ▆▄▉▋ <▅▄▄▌▉.▇▉▉▄@▇▅▍▋▋▉▌▊▍█▇▆▉▅▊▉.▉▇▍>
▇▌▄▅: ▌▅█ ▇▆▊ ▌ ▅▍:▊▅:▋▆ ▊▋▋█ +▆▋▇▊
▆▉▉▍▇▇▍ ▍▊▆▅▆▍▄ ▊▆▆▊▄ ▅▆▇ ▊█▇▇▌▌▉ ▉▄ ▅▋█▊▉▍ ▇▌▆▌▅▇▇▍█▆▉▄
▉▅▊▊▅▇ ▍▍▄▉▍█▄█▄▅▄▉▉█▄▇▌▋▋▆▄▍▆▉▍▅▆▌▄▇██▉▄▋▊▌▌▌▌
▋▋▇▆▌▍: ▋▅▄▅▆ ▌▌▍▇ <▍▋▉▊▌.▅▆█▊@▋▊▍█▊█▉▄▌▍▉▇▊▄▋▍.▇▅▌>
▌▄▉▉: ▊▋▋ ▍▇▆ ▄ ▊█:▇▊:█▆ ▍▇█▉ +▊▆▍▍
▇▄▇▊▌▊█
▄█▉▊▆▄ ▇▊▍█▆▋▌▆▄▍▄▉█▍▄▊▆▅▌▉▊▆▋█▆▉▉▊▊▍▋▍▆▅▊▊▉▄██
▅▊▆▄▇▅: ▇▊▇█▆ ▇▌▊█ <▄▌█▆▋.▅▅▊▅@▅▄▇▇▇▇▄▅▋▇▇▍▄▋▅▅.▅▍▆>
▅▋▇▅: ▉▋▊ ▋▄▌ ▋ ▇▄:▄▅:▌▆ ▋▍▇▍ +▇▅▊▉
▇▉▄▅▇▅▉▆▍█▇ ▋ ▌▌▊▋▊▄ ▇▍▍▇▌▌▌▌ ▇▆▊▆▌▊▋▊ ▆▅▊ ▉▊▊▆▄
▄▉▋▅█▍ ▇▉▇▇▋▊▉ ▍▊ ▅▇█▋ ▇▉▊▊ ▋▄▆▉█ ▄▄▇▊▋▌▆▇▄▊██▌
▄▍▉▌▄▅ ▆▉█▆▅▍▍▉█▍▄▄▆▇▍▉▇▍▅▍▊▊▆▄▊▄▆██▋▅▌▄▄▇▌▊▌▅▊
▌▇▌█▍▊: ▆▅▍▉ ▉▉▋▅▉▊▆ <▇▉▅▊@█▄▋▌▅▄▅▄▄▌▉.▌█.▄▆>
▌▌▅▄: ▌▄▉ ▍▅▉ ▅▍ ▉▊:▊▆:▆▄ ▍▇▇▄ +▊▋▉▄
▅▌▊ -▄▋▆▄▆▌ █▆█▇▊▍▄ ▉▆▄▅ ▉▇█▉▆▌█▊▍ ▋▆▇ █▋▍▊▆▄▌
▍▌▇▌▆▄ ▌▊▇█▆▉▇▋█▉▌█▅▌▍▋▇▆▄▅▍▍▊▋▆▌██▅▆▆█▆▉▇▅▅▅▋▆
▌▉▄▅▄: ▅▅▆▍▅▉▄▋▄▄ ▌▄▊▆▇▄▍▊▅▆
▇▆▉█▋▊: ▅▉▌▇▇▍█▊ <▄▋▆▉▄▋@▆▊▅█▉▅█▍▇▅▌▍▌▍▊▍.▉▌▅>
█▇█▍: ▊▊▌ ▊▍▅ ▊▌ █▉:█▄:▊▄ ▄▌▊▅ +▆▆▊█
█▅█▍▅ ▅▇▇▉▇▋ '▋▉▋▊▉█' ▋▊ ▇█▇█
▍▄▌█▍▉ ▆▅▆▆▆▆▋▅▄▄▉█▄▄▄▆▍▉▆▆▅▊█▊▆▍▅▋▉▍▆▊▇▌▆▆▉█▆▉
▌██▊▄▍: ▇▇▇▊▄▇▆▋ <█▉▊▊▍▆@▅▄▉▄▌▍▄▆▋▌▋█▆▋▇▋.▆▋▉>
▇▊▋▇: ▍▌▌ █▊▇ ▊▉ ▍█:▄█:▌▌ ▇▌▅▌ +▄▉▉▌
▉▄██▋ ▇▌▄▊▉▇▋
- ▊▅▍▉▇▍▄▆▌ ▍▆▇▉▌▌ ▌▇█▉▆ ▌▄ ▆▌▍▆ ▊▇▋▌▌ █▄ ▅▆▆ ▍▊█▅█▆▄
- ▊▌▅▌▌ ▉▍▋▅▄▅ ▌▉▍ ▅▉▅▆▋ ▉▍▅ ▋▆█▉▊▍▋▍█ ▋▉▍▊▍ ▋▇ ▋▋▋▅▊, █▍▆▋▇▌▄▇ ▍▊▋▅█▄▍█▇/▌▄▄▆▉ ▇▆ ▊▆▅ ▋▋█▍
- ▌▌▉▇ ▆▅▌▇ ▄▊ ▊▉▄▌ ▌▆▌ ▌▌█▌ ▊▅█▌/▊▍▄▄▊▇▉█
- ▋▍▆▍▋▊▇█/ ▉▍▇ ▉▄▆█▋▍▆▌▍▄
▄▅▋▅█▉ ▅▋▆█▆▄▄▇▍▉▇▅▅▉▄▇▊▋▌▋█▉▇▅██▊█▊▋█▋▆▄▆▊▇▉▄█
▄▌▉▅▊▄: ▊█▍▋█▄ ▆▊▅▊█▅ <▍▌.█▉▋▅▅▉▍▅@▇▇▄▅▊.▇▋▉>
▍▅█▇: ▋▆█ ▍▆█ ▉▉ ▍▊:▆▅:▉▆ ▄█▅▇ +▄▄▅▉
▅▉▋▇█▌▍▊▊▆ ▊▊▄▆▄▌▌ ▊▄█▆▊ /▅▌▊▇▇▇/▇▊▅▇▆▅▅/
▍▅▍▄▊▊ ▆▄▍▉▌▅▋▇▇█▇▄▋▇█▇▌▋▄▉▊▆▍▅▆█▌▅▅▊▍▊▇▌▍▊▆▇▋▅
▉▍▄▅▋▇: █▌▋▉ ▆▆▍▅▍▄▄ <▋▆█▇@▊▅▊▉▋▋▍█▋▅▉.▍▍.▍▊>
▅▌█▍: ▍▄█ ▊▇▋ ▊▆ ▌▍:▊█:▄▇ ▌▍▌▇ +▉▍▉▉
▇▄▇▊▆▄ "▅▇▌▅ ▇▇█▆▆█ ▇▌▄█▅▉▄▊ ▉▊▄▄▋▋▆█▇█ ▊█ ▆▊█▊▅█▄ .▉▅▋▌ ▉▊ ▇▄ ▋▍▅█▌▍"
▋▅▉▍ ▄▉▄▌▌▍▄ ▉▌▆▊▇█ ▇▊███▋▌█▇█▋▉▉▆▄▌█▉▉▌▊▄▌▄▋▇▌▌▄▌▅█▇▉▋▋▇▉▆▇.
▋▉▋▅▇▇ ▇▊▄▊█▊▅▉▋▆▋█▋▅▍▍█▉▆▆▅▄▉▆█▍▆▅▄▅▇▋▊▇▍▅▌▇██
▇▌▋█▍▌: ▋▅▇▌ ▅▅▌▄▅▆▅ <▋▆██@▍█▊▍▄▋▇▅▋▄▄.▄▌.▍▆>
▇▄▆▉: ▅▄▋ ▆▍▅ ▍▊ ▆▋:▄▄:▅▍ ▄█▇▄ +▉▍▄▇
▄▊▋▄ ▅▍▄▌▍▄ ▉▊▇▇▅▆▊▋ ▅▅▅█▊▄▍▅▌▉ ▌▆ ▉▇▉▋▄▅█ .▍▄▍▉ ▇▋ ▄▉ ▉▊▊▆▅▇
▋▌▍▆▉▍ ▋▅▄▅▉▄▋█▆▅▉▆▍▋▋▋▅▉▌▊▊█▇█▅▆▋▌▌█▉▉█▆▋▋▄▋▄▇
▍▉▇█▅▇: ▇▇▊▍▊█ █▌▇▆▋▉ <▄▆.▆▌▊▋▉▍▌▋@▄▍▋██.█▋▄>
▄▍▇▋: ▍▇▆ ▌▌▅ ▅▉ ▍█:▄█:▊▌ ▄▅▌▊ +▌▅▉▊
▇▊▆▆▍ ▍▅▆▆▌▆▆▇ ▌▊ ▌▍█▌▆.
▋▉▍▇▋▊ █▉▅█▄▆▆▇▄▉▊▊▆▆█▊▆▅▆██▅█▄▊█▆▇▌▋▊▌█▆▉▊▄▋▋▄
▄▍▌▄▅▇: ▆▊▌▄▇ ▋▅▇▅▆▅ <▅▋▊▍▍█▇▍▋▅▍@▊▋▊██.▆▇▉▇█▌▇.▆▊█▋▇▌.▋▄▄>
▆▉▍▄: ▄▄▅ ▉▉▅ █▅ ▆▍:▄█:▍▇ ▍▄▊▌ +▊▇▇█
▇█▋▍▄▍▄▍█▆ ▋█▇▅▆ ▍▌▆ █▆▍▊█ ▆█ ▉▌▄ ▇▇▌▉ ▊▊▋▋▌▉▅█▄ ▇▉▋▋█▍▋
▌▋▄█▌▅ █▊▍███▅▄▉▄█▅▌▋▇█▅▆▅▍▅▊▅▋▉▄▊▄▆▊▇▇▋█▅▄▋▇▅▊
▆▄▋▉▆▊: ▊▅█▇▉ ▋▇▌▍▋▉ <▆▌█▌▄▋▌▊▄█▇@▊▆▋▋▅.█▋▅▌▊█▍.██▊▍▅▉.▄▌▉>
█▉▉▉: ▊▌▆ ▆▍▌ ▅▅ ▆▉:▅▉:▋▊ ▌▅▋▌ +▍▋▍▄
██▌▊▅▄▊▌▆▋▆ ▆█▊█▍▍▌
▆▋▅▌▉▇ ▇▍▅▊▋▉▊▋▉▊█▌▇▆▋▅▉█▇█▇▉▅▆▋▌▍▅█▆▌▉▌█▇▅▌▄▄▊
▅█▋▌▆▊: ▉▋▄▅▅ ▋▉▅▄▌▋ <▌▌▍▊▉▆▇▋▌▍▍@▍▉▆▉▇.▊▇▌▋▆▄▄.▆▅▄▇▄▅.▍▋█>
█▇▄▅: ▅▄▊ ▆▇▅ ▇▊ ▊▌:▉▍:▊▇ ▌▌▅▄ +▉▌▋▊
██▍▇▉▍▅ ██ ▅▆█▆▊▊▊█▅▋▇▉
▇███▌▄ ▍▇▇▌▅▇█▉▅▆▄▉▇▉▆▇█▊▅▄▆▅█▊▇▅█▅▄▄▉▌▋▌▆▄▅▆▄▅
▌▄▉█▇▉: ▇▌▇▄▄▋▆▌ <▌▌▍▋▉▄@▍▇▉▅▋▅▌▉▇▅▆▅▊▄▆▆.▉▍▆>
▋▋▉▋: ▄▍▋ ▊▌▍ ▇▅ █▋:▍▅:█▉ █▊▅▋ +▋▉▆▌
▌▄▅▊▊▇▍█▋▆█ ▉█ ▅▍▉▍▉▍▄▌ █▊
▍▋▊▄▇▅ ▄▍▍▉ ▆▅▋█ ▆▇▄▅ ▍▄▋▋▍▄▇▋▊ ▋▆▊ ▅▍ ██ ▆▌▍ ▆▊▇▊▆█▄▆ ▍▆▅▊▅▌ ▌▌ █▍▅ ▌▊ ▋▉█▆▋ ▇▇ ▆▋▆▅ ██▌▉ ▊▇█▇▌▌ ▇█ ▉▄▄▋ ▇▅▄█▅▄▆█ ▄▌▇▉▅▋.
▍▆▍▍▆ ▋▄▆ ▅▄▉▌ ▍▌█▄▍▆▊▉▍.
▄▊▋▄▇▅ ▇█▌▍▌▅▅▌▄█▉▋▆▊▄▄▍▍▇▄█▄▍▌▅▌▉▋▍▊▆▍▍▊▊▌▆▅▊▊
▌▄█▊██: ▇▍▌▄▋ ▌▋▆▋▇█ <▍▋▄▉▇▌█▆▊▌▊@▍▆▋▋▆.▊▆▇▊▇█▊.█▊▌▍▌█.▅▊▍>
▇▇▆▇: ▊▄█ ▅▍▇ ▋▊ ▋▍:▊▆:▍▉ ▅▄▇▋ +▅▉▄▉
▍▉▍ ▉▌█▅▋▊▍ ██▊▉ ▋▆ ▊▄▊▄▋▋, ▆▊▌ ▍▄▊▉▉▆ ▋▆▅▅▍/▅▇▉▇█▍▆▋ ▌▉▍▉▆▄▅ ▄▍
▍▌▆▆▇://▋▍▇▉▅.▅▊▋▅██▌▄▆.█▇▊/▋█▉▌▇/▍▉█▉▇▅▋▆-▆▌▊▌-▊▊▍▍-▋▅▄▄-▇█▅▇▍▌▊▊▇▄▋▋.▉▇▍
▌▄▊▋█▍ ▍▆▉▆▆▉▌▇▋▄▇█▋▄▉▇▄▉▉▉▅▍▆▄▍▆▇▋▄▌▅▇▉▅█▆▉▅▊▇
▋▆▉▄█▆: ▌▆▇▉▄ ▅▆▍▋▍▍ <█▆▍▆▄▇▍▌▍▍▉@▊▇▋▍▌.▅▋▍▇▅▊▊.█▄▇▉▌▄.▅▊▇>
█▆▅▌: ▋▄▋ ▍▊▅ █▇ ▆▊:▍▋:▄▆ ▄▅▌▊ +▋▌▉▉
▅▋▋ ▅▌▌▆▆ ▆▅▊ ▄▅▄▄▄ ▊▄▅▇▅▇█ ▌▋▋▄██▋█ ▆▇ ▅▍▍ ▅▉▆▊▄▄█▌▄
▄▅▍▅▌▍ ▋▋▅▇▋▆▍▇▅▌▌▋█▊▇▋▍▅▄▌▅▋▉▇▅▍▉▋▋▊▄▆▊▋▊▉▅▌▅▊
▆▅▅▋▅▇: ▄▅▋▆▅ ▌▅▍▌▄▅ <▌▆▌▋▆▊▉▋▉▄▊@▄▌▊▅▍.▇▊▍▉▋▅▌.▍▇▍▉█▆.▅▊▍>
▉▇▆▊: ▇▍▍ ▉▊▄ ▉▆ ▇▅:▍▊:▍▌ ▋▇▍█ +█▋█▌
█▆▅▄▉██▋██▇▉▉ █▊▇▍ ▋▉▉▊▅▄ ▌▉▇ █▇▍▄▍▉▅ █▉▋█▊█▅ ▌▉ ▋▉▆█▆▇▊▉▉ ▊▅▌ ▆▆▅▆▉▅▄▅ ▋ ▇█▌ ▇▄▌
▌▌▇▆▇▋ ▄█▉▊▄▅▄▊▇▉▇█▇▆▆▊▆▅▇▅▊▋▇▄▇▄▅█▋▋▆█▋▅▆▌▊▉█▄
▍▉▇▋▅█: ▄▌▊▆▉ ▆▌▆▄▆▄ <▉▆▄▍▊▌▊▇▍▊▅@▄█▄▋▋.▇▆▅▇▊▍▍.▄▇▌▉▅▄.▉█▅>
▍▋▄▆: ▇▄▇ ▊▋█ ▆▋ ▌▌:▅▆:▌█ ▉▄▌▌ +█▊▇▍
▊▋▇█▆█▅.▄▄▊▍█▇ ▆▌▉▊▅'▊ ▅▅█▊▆ ▇▉▍█ ▆▅▇█▍ ▇█▉▇▇ ▅▌▊▋, ▌█▇ █▅▇▅▇▆ ▇▍▅ ▋▅▅▅▅ ▋█▋ ▋▍▇█, █▍▋▇ ▅▆▍▌▉█▊▅ ▌▌▇ ▊▆▍▌▄ ▉▌▉▆█▆▅ █▇ ▌▄▌▅ ▍▄▆▉▌▅▍▇ ▄▉▇ ▉▍▆▆▇ ▋█▋
▄▇▍▉▇█ ▌▍▄██▊▇▋▄▍▌▅▅▇▌▌▊█▇▅▋▉▍▍▄▊█▆▋▌▄█▌▄▄▆▌▌▊▌
▍▌▌▇█▆: ▊▄▍▆▊ █▆▅▋▇▍ <▅█▌▆▅▍▆▍▇▆▄@▇▉▄▋▌.█▅▍▊▊█▌.▍█▆▉▅▉.▆▊▇>
▊▇▊█: ▋▊▌ ▌▊█ ▅▍ ▊▊:█▅:▌▊ ▋▍▌▊ +▆▊▊▍
▌▌▇▄▇▄ ▊▊▊ ▅▇▇▄ ▋▇ ▄▄▆ ▇▌▆ ▋▌█▇
▍█▋▉▍▅ ▍▋▌▌▍▉▉▄▄▇▍▍▆▌█▊▄▊▋▊▍▇▋▊▄▄▍▋█▉▌▅▋▄▇▉▅▍▇█
▉▆▆▉▆▋: ▉▉▌▆█ ▄▋▇▅▊▍ <▅▋▍▊▋▉██▌▆▅@▉▍█▅▆.▆▅▋▄▆█▇.█▇▍▅▅▋.▇▇▍>
▊▉▍▅: █▌▋ ▊▌▄ ▇█ █▄:▌▋:▇▌ █▆▇▊ +▋▋██
▆▋█▆▊▉ ▍▆▌ ▇█▍▌
█▇▅▅▆▄ ▌▄▇▄█▌▍▌▄▉▄▌▆▋▍▉▄▆▉▇▌▉▆▅▉▆▇▄▄▍▆██▋▉█▍▊▍█
▋▋▌▊▌█: ▆▆▌▌ ▇▍▊▌▆▇▌▅ <█▅█▍▋▅▆@▊█▉▆█.▊▇▆>
▄▊▄▊: ▉▇▅ ▄▅▅ ▆▉ ▇▋:▉▉:▅▊ ▋▅▌▄ +▌▍▊▇
▅▍▋▄ █▅▄▊▉▆▅▊▆▌.▇▅▆▋ ▉▊▍▌▌▍
▄▌▍▅▇▄▌ ▅▍▅ & ▅▆▆▅ ▋▄▉▊▅▇▇
█▇▍▌▋▋▄ █▄█ ▇▅▋▍ ▉▅▌ ▆██▍▋▅ ▊▅▌▅▄
█▄▆▊▉▉▉ █▄▆▊▇▌▋▍▋▌▅█▅▅
▌▊█▊ ▍█▋▆▆▋ ▌▉▍▍▄▅▊▉▅█▅
▅▊▊▅▊
▆▌▇▋ ▄█▍▍▉▇▌▍▊▅▋ & ▅▋▉▌▋ ▌▋▌▉▆▉▆ ▋▍▋▄▌▉▇
▅▍-▍▉▋▇▉▄, ▇▊▇▊▍▍▊, ▄█▄ ▋▇▋█▍ ▌▉█▅▆▍▌ ▆▄█▆▄▋
▆▆▌█▅▋█ ▅▆▊▉▆▄▍ ▇▍▄▅▉▊, ▄▅▍▆▆ ▇▅██▆▆▊▍▌▌▅
! ▆▆▅▍ ▄▋▉▍▌▍▆▍▉▆ & ▍▆▋▇▋▅▆ ▉▆▌▊
! ▍▋▍▇▍ ▇▅ ▅▅▋▋ & ▄▉▊▆▉ ▄▇▇▄
! ▅▍▅▇ ▍▍▊▅▋▍▋ ▄▇▇▄▄▊▉
! ▍▉▅ ▌▇▉▆ ▆▅▋▉▉
! ▅▅▍▌█▄▊ ▊█▄▋ ▄█▆▍▋▊▆▉▆▍, ▉█▋▍ ▇/▉, ▉▄▋▋▌ ▉▅▋▉▄▉▌ ▄█▄▄ ▍▌▅█▅▉█▉▍ ▅▇▊▉▋▆▌ ▅▉▄▉▋▆ ▌█▆▉ █▊▅▇▉▋▍██▌ ▋▍▇▄▊▅▋▋
! ▆/▉ ▅▋▌▊▋
! ▉▇█ ▇/▊/▄
! ▋▅▊ ▅ + ▌▇▊▊▉ ▋▄▆█ ▅▆▅▄▍▉▉
! ▄▆▋ ▇ + ▋▌▉▉▍██▅▌▋ ▄/▌/▋
! ▌▋▋▅, ▄▊▋▄█▇ █▉█▇▉, ▋▅▄█ ▇▇█▄▌▄▊▅▆ ▍█▋▄▇▇, ▅▅▌▇▄▉▍▆
! ▆█▄▍▉▄ ▌▇ ▋▋▉███▋▍▄▇▉ & █▅▄▊ █▅▄▆▇▍▋▄▍
! ▇▄▅▉▋ ▄▅▄▇▉-▊▄
! ▉▍▍▊█▍▆▊▄▉ ▅▅▋▊▌▉ ▌▉▇▄▋▊▄▇▇
! ▅▅▍▆█ ▄▉ ▇▊▌▆▄▉ ▍▄█▇▍▌▍▍▌▅ ▆▉▅▌▆ ▊▆▍▌▉▇▆ (▋▇▇▉█ ▉▋▄▋▊ █▆▉ ▇▉ ▇▊▆█▇▇ ▍▋▊▆▆▇▋▇▍▇ ▉▆▋ ▆▅▄)
! ▇█▇ ▆▋▇▊▅▍ ▇▌▄▍▆ ▊▄▄ ▍▌▉▋-▆▆▆▄ ▊▋▆▍▄▋▄█
! ▆▆▌▅▄ ▉▊ ▄▉▇▌█ (▊█▋▋)
! █▆▌█▉▇▅ ▆▄▅▅▉ █▅▌▉ ▋▊ ▊▍▋▍ ▍█▅█▅▌▇ ▋▇▆▄█▉
! ▌▍▊▌ ▍▅▉▄ ▍▇▄▊▇█▆
! ▊▍▋▌▍█ ▆█▆ ▄▅▆▌▆▌▌ ▉▍▊▄▊▅ ▌▊▋▆ ▌▄▄▅ ▌▌▇ ▅▅▇▉ ▅█▄▉ ▉▇ ▋▌▌▋▋▄▉█▊ ▊ (█ = ▊▉▅▄▅, ▋ = ▊▆▇▅ ▆▇▍)
▉▍▉▍▉▆ ▋▅▆ ▇▉▇▆██▆ ▍▄▄▍▇▇ ▆▌▋▉ ▇█▄▅ ▌▊▇ ▆▄▄▅ ▌▋█▆ ▄▌ ▅▍▆▊▍▅▇▌▇ ▆ (█ = ▅▅▊▋▆, ▄ = ▌▇▅▄ ▉▍▄)
You hear a noise from inside the crate...
▌▌▊ ██▅▊▊█ ▋▇▍▇▌ ▉▌▄ ▋▌▆█-▊▅▇▄ ▄▇▅▄▉▆▋▉
▇▉▍▆▍ ▆▅ ▅▆▇▊▅▋ ▇▌▆▊▅▌▌▆█▍ ▄▍▇██ ▌▋▌▉▅▄▆ (▊▉▇▇▍ ▅▌▆▆▋ ▆▌▌ ▇▇ ▍▋█▌▉▍ ▊▍▇▊▋▋▇▉▉▅ ▍▊▄ ▅▋▆)
▌▆▆▄▉▇▋▊▅▄ ▍▇▄▋▅▊ ▅█▌▉▅▅▋▊▌
▋▊▌▉▊▊ ▌▊ ▍▆█▌▊▋▋▇▇▆▋ & ▋▌▊█ ▍▊█▌▊▍▇▋▋
▆█▅▇, ▅▋█▅▌▌ ▋▄▍▆▄, ▋▍▊▋ ▇▋█▆▊▉▋▄▄ ▋▉▇█▉▍, ▍█▅▊▊▊▄▋
▍▋▍ ▍ + ▍▋▆▅▌ ▍▍▉▍ ▌▌▋▅▋▇▅
Add SceneObject.Batchable, for situations where dynamic attributes affect rendering
Delete unused shit from lightinglib
Add SceneSunLight.SkyColor for ambient light color outside of light probes
Compute ambient light spherical harmonics when there's no sunlight using scene camera ambient color (this allows cubemaps to show up without sunlight)
Add SceneCubemap, allows cubemaps to be applied in scene worlds
Add a default cubemap texture
Add cubemaps to menu scenes so metallics have a bit of reflection
Remove some unused functions from IPrediction
Remove create_flashlight native command
Fix nav_edit, grab eye pos and angles from pawn aimray
Remove some unused player netvars
Add MorphCollection.Get to get override morph values
Remove vwrlt and vwenvmap asset types, these don't exist
Recompile old maps toolscene_lighting_studio and error to fix compiler missing warnings
ModelDoc: Don't allow base model to be set as itself
Animgraph: Basic support for anim event preview (only playsound and stopsound)
Merge branch 'master' into sausageman-sucks
▍▇▊▄▍▄█ ▄▊▉▍ ▋▄▄█▉▉▊▅▌▄, ▅█▇▌ █/▅, ▄▊▌▍▅ ▆█▊▍▅▅▋ ▋▉▊▋ ▆▄▊▋▌▇▅▋▌ █▅▅▋▍▆▅ █▌▇▇▌▉ ▋▉▊▇ █▇▇▍█▇▇█▅▇ ▆▊▆▋▉▄▅▋
Editor: Fixed not being able to upload maps to asset.party
Merge branch 'master' into sausageman-sucks
▄▆▍▉█ ▊▄ ▉▄▋▉ & ▇▊▅▋█ ▋▊▊▋
▅▆▄▌ ▌▌▇▍▍█▍▄▍▆ & ▌▌▉▅▅▅▍ ▌▄▅▅
Updated default outfit, added weightlists
Re-rigged, renamed, and moved default outfit
updates props
- disabled baking light on some models in prefabs
- tweaked lods
- fixed normal on some textures
- added missing dirt/gloss on dead end texture
- tweakes glow on some light textures
Merge branch 'master' into sausageman-sucks
Anim constraints & other various updates
Make a copy of an Entity's components before clearing them out, fixes collection modified error from deleting a component from within another component.
New Hair! - Goatee
New Goatee including morphs - LODs coming soon
https://files.facepunch.com/daniel/1b1511b1/sbox-dev_9jZfUNzaCg.jpg
Pass depth buffer to translucent pass for glass
Add Tex2DMaxMSAA
Fix ghosting on glass when something is in-front of blurred glass
Roll back support for SpawnMotionDisabled prop data
Delete SpawnMotionDisabled altogether, prop data should never be deciding this
Fixed uploading runtime addons not working
Don't destroy model strong handle on reload for now
Better fix for model reloads
Failing test involving resolving method with namespaceless parameter
Fixed resolving methods with namespaceless parameter types
Use namespace alias operator in hotload tests
Goatee small adjustments + colour variations
Added Prop SetStatic input
Hammer: Asset Spray tool colors
https://files.facepunch.com/rubat/1b1511b1/sbox-dev_DJuBUU3yWI.mp4
Merge branch 'master' into sausageman-sucks
This is faster without the parallel
Add benchmark project
Induce a tools hotload swap after game hotload - for the sakes of consistency
This was happening anyway, just at a random point
Make matt's amsi patch default (-amsi to disable)
vacuum => vacuum cleaner
Added ISet/HashSet property editor
Clean up visuals of Dictionary property editor
Rubikon: capsule vs hull/mesh improvements from Dirk
Cleanup coreclr patch a bit
Strip xbox code from filesystem
Strip all this whitelist bullshit from basefilesystem
Fix strong handle leak in Model.Get( IModel ) - you could get ref counts on a model resource over a million from 5 minutes of gameplay
Fix strong handle leak on Material.Get( IMaterial ), ParticleSystem.Get( HParticleSystemDefinition ), AnimationGraph.Get( HAnimationGraph )
Model.Loaded uses WeakReference to not keep models that have no references loaded
New Outfit Piece! - Flat Shoes
Simple nice flat shoes - https://files.facepunch.com/daniel/1b1411b1/sbox-dev_I8fdIZ9f6K.jpg
Adjustments + Reskins coming asap.
Sorted out some XML documentation warnings
UI2: Fixed length parse fail for ending parenthesis, fixes "lighten/darken(#fff, 20%)"
Added more ColorParse tests, darken without spaces, and darken( mix )
Balaclava Morphs added
Police Hat LODs
Game keeps recompiling these surface_c files on my end
Added RangedFloat editor that respects MinMaxAttribute
FloatSliderProperty.HighlightColor now has an effect on the slider
Improve DecibelsSlider behavior with tiny sizes
Failing async method test
Better support for parsing generated names with generic parameter count
Hotload generated name refactor, fixing async state machine types
Fixed VarClass sometimes getting stuck rebuilding every frame
NeedsRebuild was getting set to true during the rebuild, so it'd keep doing it every tick
"What's all this, then?"
Merge branch 'master' of sbox
UI2: Fixed bug introduced by my length parse fix, where border-image style would fail
Add SetBorderImage test so that can't fall through the cracks again
Merge branch 'master' into sausageman-sucks
"What's all this, then?"
Merge branch 'master' of sbox
Game keeps recompiling these surface_c files on my end
This leafiest asset stuff isn't used anymore
When registering custom asset type assets, register the compiled version too - which stops it thinking they're not compiled
If imported GameResource isn't compiled then compile it
Fixed passing in wrong name to RegisterResourceReference (might not be a bug but it looks like one)
Don't group identical console messages with different loggers
Failing test for lambdas declared in non-swapped generic methods
But with swapped type parameters
Fixed test in 8a2bb255285d1e47c1314b70cd47f5ef92a2b21d
Log error when encountering unhandled generated types
Merge branch 'master' into sausageman-sucks
Merge branch 'master' into sausageman-sucks
Updated rig with new helper bones
Made DamageInfo.Tags public
Remove log tags
Remove the rest of the log tags
Texture.Update doesn't crash with wrong sized data, can update the first mip only, will generate the other mipmaps if only updating the first mip
SkiaTextBlock will update the texture instead of disposing and creating a new one
Add names for other runtime textures to aid debugging
Add logging menu to editor, can switch Trace/Detailed logging on
https://files.facepunch.com/garry/88a623bf-7fcd-4245-bf05-13ae6da6f5d9.png
Adjustments to Clothing AO
Pretty much just been adjusting the ao in the material editor so the AO shows up abit more nicely on some clothing pieces.
Crate has been delivered.
Logging in CompileGroup
TypeLibrary logging
Diagnostic event for start to end code iteration timings
Taken delivery of crate.
Only create resource dependency on texture .meta if it exists
Revert "Only create resource dependency on texture .meta if it exists"
This reverts commit 55e57df69e0f6335962a5923ef956b658e9e7393.
Recompiled content under /addons/citizen/
props updates
- disabling baking light on some asset in the prefabs
- moved aircon and trash bin breakable piece to embed, adjusted placement/pivot of the gibs
- dirt pass on dead end road sign/material
- collider/ Lod adjustment
Merge branch 'master' of sbox
Add -noamsi command line parameter for testing
Implemented a simple assembly resolver for Tools
Allows hotload to make more valid substitutions
Cleanup
Failing hotload tests for lambdas in static constructors
Fixed finding scope method ordinals of static constructors
Stop expecting every method to have a scope ordinal
Fixed IsMatchingType(typeRef, type) with nested types
Fixed ResolveMethod() with a static constructor ref
Fix upgrading lambda display class instances that are found in the wild
GetNewType consistency
Now returns null to mean a substitution couldn't be found
Added failing generic delegate test
Organised and documented delegate hotloading tests
Fixed AreEqualTypes when exactly one param is null
AreEquivalentTypes(old, new) refactor
Fixed finding substitutions for generic parameters
Only add events on retail
Don't hotload/etc compiled assemblies that we've already hotloaded
Client only reload assemblies that have changed
No need to re-verify assemblies that we've already verified
Parallel thread .cs reads
Cleaner Generators
Clean compilegroup/compiler thread stuff
Entity.FindByIndex<T> just return null if can't cast to right type
Fix test
TypeLibrary hunch speedups
Don't do GC during server addon loading
Include editor sounds so everyone gets annoying compile sounds
Hotload manager use its own logger
Include compiled shaders on server
Disable AC optimization (it's not filling the resolver in propertly)
Fix package selector property not saving or updating
Don't pass #local packages to GameSupport
optimized shader build
Fix crash when fetching object bounds too early
Fix water reflections renderbounds so it doesn't take the size of the entire map
Switch @visibility to @internal - because afaik it's the only visibility that makes sense + add unit tests
Merge branch 'master' into iteration-speed-sucks
Order the syntaxtrees before giving them to the compiler, because hotloading is going to want the names of things to be as close as deterministic as possible
Fix compile notifications popping up on boot
Fix compile notifications appearing on the top left of the screen for no reason
Not using it, but can at least fix SetWindowNoActivate
Merge pull request #688 from Facepunch/iteration-speed-sucks
Speed up code iteration time
Aggressively clip water reflections to prepare for SSR
Merge branch 'master' into sausageman-sucks
Various rig & VMDL updates
Squashed commit of the following:
commit abde76e295233d5016231a15e3eae7d17e50a79a
Author: James King <james.king@facepunchstudios.com>
Date: Mon Dec 12 16:39:43 2022 +0000
Fixed finding substitutions for generic parameters
commit 44dd2550bcc88feff936ea770e8ed78a0f930599
Author: James King <james.king@facepunchstudios.com>
Date: Mon Dec 12 14:16:08 2022 +0000
AreEquivalentTypes(old, new) refactor
commit 3d50bd934dac1a96962c5bdc4571bc2959e73f8e
Author: James King <james.king@facepunchstudios.com>
Date: Mon Dec 12 14:15:44 2022 +0000
Fixed AreEqualTypes when exactly one param is null
commit 4aa2e90f38ca7c5a31ffbd426e68468c33613328
Author: James King <james.king@facepunchstudios.com>
Date: Mon Dec 12 14:02:15 2022 +0000
Organised and documented delegate hotloading tests
commit f0ecfff2f59fbe84d67542077e60dccdd6cbdb2e
Author: James King <james.king@facepunchstudios.com>
Date: Mon Dec 12 12:34:34 2022 +0000
Added failing generic delegate test
commit 9813c1b43ec3aa0400071c5597f5494f9809bcad
Author: James King <james.king@facepunchstudios.com>
Date: Fri Dec 9 12:07:16 2022 +0000
GetNewType consistency
Now returns null to mean a substitution couldn't be found
commit bd4602be39855f0726d67fbca3455b53f4ea1a7f
Author: James King <james.king@facepunchstudios.com>
Date: Fri Dec 9 11:37:46 2022 +0000
Fix upgrading lambda display class instances that are found in the wild
commit a39847fea77570d4c6651ca22b03484e386b83f2
Author: James King <james.king@facepunchstudios.com>
Date: Thu Dec 8 19:25:10 2022 +0000
Fixed ResolveMethod() with a static constructor ref
commit 34e54eab8089083f03c013d1133c1395bf97ee4d
Author: James King <james.king@facepunchstudios.com>
Date: Thu Dec 8 19:24:13 2022 +0000
Fixed IsMatchingType(typeRef, type) with nested types
commit 5a0725c233052d8a1941bb7bd724340557fba534
Author: James King <james.king@facepunchstudios.com>
Date: Thu Dec 8 19:22:47 2022 +0000
Stop expecting every method to have a scope ordinal
commit e806ebdfc172436ad22395be5633188fe6e7aeb6
Author: James King <james.king@facepunchstudios.com>
Date: Thu Dec 8 18:54:26 2022 +0000
Fixed finding scope method ordinals of static constructors
commit a23782634226ac1965db29d6e0ecf79431a982ee
Author: James King <james.king@facepunchstudios.com>
Date: Thu Dec 8 18:49:21 2022 +0000
Failing hotload tests for lambdas in static constructors
commit f4bf0f1db69a284939f5c89e98fa9e633a4d0bb1
Author: James King <james.king@facepunchstudios.com>
Date: Thu Dec 8 17:26:30 2022 +0000
Cleanup
commit 65193611b12b547bf794893bbd9128fa369de58b
Author: James King <james.king@facepunchstudios.com>
Date: Thu Dec 8 17:25:30 2022 +0000
Implemented a simple assembly resolver for Tools
Allows hotload to make more valid substitutions
commit 585bcbe6ee4dc7069704698cd64640f3e239744a
Author: Matt Stevens <matt@mattstevens.co.uk>
Date: Mon Dec 12 18:40:06 2022 +0000
Add -noamsi command line parameter for testing
commit 0403c9883f16ecf9bb4cce413c8ed98643f6f1ec
Merge: 7471387c3f 16cbcf8ec4
Author: EzMeowFP <ezmeow@facepunchstudios.com>
Date: Tue Dec 13 02:29:15 2022 +0900
Merge branch 'master' of sbox
commit 7471387c3f43448c4691ba4402d8bd90d32f3d43
Author: EzMeowFP <ezmeow@facepunchstudios.com>
Date: Tue Dec 13 02:29:08 2022 +0900
props updates
- disabling baking light on some asset in the prefabs
- moved aircon and trash bin breakable piece to embed, adjusted placement/pivot of the gibs
- dirt pass on dead end road sign/material
- collider/ Lod adjustment
commit 16cbcf8ec40c2e738e3c257b599dbc5c5500b97c
Author: Maxime Lebled <ml.maxofs2d@gmail.com>
Date: Mon Dec 12 17:07:17 2022 +0100
Recompiled content under /addons/citizen/
commit fc407123ec9fb3a6349d2defff3d3cccfb5b4f96
Author: Matt Stevens <matt@mattstevens.co.uk>
Date: Mon Dec 12 15:18:07 2022 +0000
Revert "Only create resource dependency on texture .meta if it exists"
This reverts commit 55e57df69e0f6335962a5923ef956b658e9e7393.
commit 55e57df69e0f6335962a5923ef956b658e9e7393
Author: Matt Stevens <matt@mattstevens.co.uk>
Date: Mon Dec 12 15:09:28 2022 +0000
Only create resource dependency on texture .meta if it exists
commit ab33d75d66d1940b796952e196832a627670f294
Author: Maxime Lebled <ml.maxofs2d@gmail.com>
Date: Mon Dec 12 15:53:50 2022 +0100
Taken delivery of crate.
commit 50ed28d7a4e956aa73b82ce2216e468d0967046d
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 14:22:27 2022 +0000
Diagnostic event for start to end code iteration timings
commit d85cf33d5baffad2a7fad0c742ae9d2614756799
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 13:32:01 2022 +0000
TypeLibrary logging
commit e8d624c100f114a2aee43a3ab751a6a8f08677c4
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 13:14:48 2022 +0000
Logging in CompileGroup
commit 937e1bd03110d606c6864f6e6a5b161fad738e64
Author: DanduwFP <daniel@facepunchstudios.com>
Date: Mon Dec 12 14:18:57 2022 +0000
Adjustments to Clothing AO
Pretty much just been adjusting the ao in the material editor so the AO shows up abit more nicely on some clothing pieces.
Crate has been delivered.
commit 44079b86d852692fbeef7cef1af27a876bfc20fc
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 12:26:50 2022 +0000
Add logging menu to editor, can switch Trace/Detailed logging on
https://files.facepunch.com/garry/88a623bf-7fcd-4245-bf05-13ae6da6f5d9.png
commit f997317d22ca3cbab92561201bd19ed0f243a170
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 12:24:26 2022 +0000
Add names for other runtime textures to aid debugging
commit 618c92339120f9bd933f76bcd2e936e92b1bdc6b
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 12:23:46 2022 +0000
SkiaTextBlock will update the texture instead of disposing and creating a new one
commit 397dc8b7469c62edc5ba9ffe4716197c110238c3
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 12:20:41 2022 +0000
Texture.Update doesn't crash with wrong sized data, can update the first mip only, will generate the other mipmaps if only updating the first mip
commit 7b447de6ed76adb7252cab9ffa6d31861182e1c9
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 09:57:28 2022 +0000
Remove the rest of the log tags
commit 2f2a2b867e6aecda3797f1042b63b7a53938be71
Author: Garry Newman <garrynewman@users.noreply.github.com>
Date: Mon Dec 12 09:32:04 2022 +0000
Remove log tags
commit fc42fd0f0a8378eb3cbcfb950156ee6e358fb7e0
Author: Tony Ferguson <devultj@gmail.com>
Date: Sun Dec 11 23:36:45 2022 +0000
Made DamageInfo.Tags public
Recompiled content under /addons/citizen/