* SSMetrics
* We were a bit too silly
* Forgot to commit this
* Logs CPU
* Removes global data from all ss
* And puts it on the metrics ss
* Update metrics.dm
* Logs profiler data
* Adds profile configs
* Update code/controllers/subsystem/metrics.dm
Co-authored-by: adamsong <adamsong@users.noreply.github.com>
* Log request errors
* Final fixes
* Rebuilds for 1.2.0-yogs1
* Apparnetly you can't split macro calls on multiple lines
* Org is called yogstation13 not yogstation
---------
Co-authored-by: alexkar598 <>
Co-authored-by: adamsong <adamsong@users.noreply.github.com>
* Turns lighting objects into a datum, makes all lighting be performed with an underlay. big maptick fix very good! (#58991)
credit to zewaka for the idea of using underlays
turns the lighting object movables that were unnecessary and increased maptick into a datum which then applies and removes an underlay in update(). also applies a lot of general lighting clean ups (mostly using as anything in loops and fixing single letter var names).
multiz is a little different by necessity, now only the bottom turf's lighting matters in the brightness of the top turf unlike master where the bottom turf's lighting object is hidden from the vis_contents of the top turf. there are still some kinks to iron out here though, since currently objects suspended in openspace (like tram platforms) look bad and glass floors look bad too
only thing i have left to do is make multiz work (well)
UPDATE: multiz now appears the same as far as i can tell, its possible there are other situations in which its different but datum mats work and it automatically updates if the turf below changes. now i just need to make the system less finnicky if at all possible (and possibly merge managed_turf_vis_content with managed_overlays maybe?)
new update: its basically equivalent to normal multiz as far as i can tell (visually at least, in the circumstances ive tested so far)
NEW NEW UPDATE: turfs no longer have the VIS_HIDE vis_flag and multiz works without stacking the lighting from the floor below! so this shouldnt have any overt drawbacks to master anymore
1 needless movable per tile is terrible for maptick. this is probably a larger improvement than my emissive blocker change in terms of maptick. im guessing we'd get around 0.6 average maptick per player after this where currently we get 0.85 or so
Edit: according to lemon, sybil reached 0.71 maptick per person when tm'd with this
if this is a big enough improvement i might finally be able to get rid of the Gone discord avatar
* Revert "Turns lighting objects into a datum, makes all lighting be performed with an underlay. big maptick fix very good! (#58991)"
This reverts commit ffbbeb64f4.
* port from another codebase
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Makes the HEY LISTEN dialog a bit quieter
Now it only prints to admins. It's still logged and everything, for those who want to shave off the <100 ms it takes the server to usually handle this atmos equalization stuff.
TBH this is such a, weird debug line, I don't really know why it was kept in as a big dumb to_chat(world) for so long.
* Makes the subsystem init dialog look nicer
Now, instead of displaying performance times to the whole `world`, an approximate loading % is printed to everyone (with admins getting the old dialog in span_notice style).
EDIT: Fixes some stuff Gamer complained about
EDIT EDIT: I don't get how SHOULD_CALL_PARENT works
* Update yogstation/code/controllers/subsystem/yogs.dm
Co-authored-by: nmajask <nmajask@gmail.com>
Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
Co-authored-by: nmajask <nmajask@gmail.com>
* asset cache cdn
* Fix cdn rsc (#52886)
I was converting this to use length so it didn't have to care if the list existed or not, and forgot to remove the .len. this broke cdn .rsc files because length(num) returns 0.
* Add warning about https to the external rsc config (#53367)
today in hostchat we discovered that most of the servers who tried to
do cdn the .rsc, had unknown issues because they had used https://
urls. Byond can't into https.
like 5 servers had failed to get this to work because of that pitfall,
so im gonna add a warning to the config.
* tchat
* tgchat compile
* fixes
* Merge pull request #53011 from stylemistake/tgui-chat-fix-asay
tgchat: Fix asay
* chat color
* logging
* webstorage
* compile TGUI
* actually like compiles on the DM side
* Update chat-dark.scss
* Update chat-light.scss
* Update resources.txt
* Update tgui-panel.bundle.css
* Colors
* compile
* s
* s
* Ports Gamers TGChat so we can edit it. - NOT LIVE TGCHAT BRANCH (#10226)
* asset cache cdn
* Fix cdn rsc (#52886)
I was converting this to use length so it didn't have to care if the list existed or not, and forgot to remove the .len. this broke cdn .rsc files because length(num) returns 0.
* Add warning about https to the external rsc config (#53367)
today in hostchat we discovered that most of the servers who tried to
do cdn the .rsc, had unknown issues because they had used https://
urls. Byond can't into https.
like 5 servers had failed to get this to work because of that pitfall,
so im gonna add a warning to the config.
* tchat
* tgchat compile
* fixes
* Merge pull request #53011 from stylemistake/tgui-chat-fix-asay
tgchat: Fix asay
* chat color
* logging
* webstorage
* compile TGUI
* actually like compiles on the DM side
* Update chat-dark.scss
* Update chat-light.scss
* Update resources.txt
* Update tgui-panel.bundle.css
* Colors
* compile
* s
* s
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com>
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
* Fixes Replay Chat
* Update to_chat.dm
* Update chat.dm
* Update demo.dm
* yarn berry
* yarn berry compile
* Update resources.txt
* Update config/resources.txt
* Update resources.txt
* Attempt at fixing reconnect.
* Lets try fix it again
* oops
* THROW THE SINK AT IT
* ree
* Makes Travis work again thank you jamie
* Fixes snowflake images
* Update security.dm
* Updates TGChat Test Merge (#10307)
* asset cache cdn
* Fix cdn rsc (#52886)
I was converting this to use length so it didn't have to care if the list existed or not, and forgot to remove the .len. this broke cdn .rsc files because length(num) returns 0.
* Add warning about https to the external rsc config (#53367)
today in hostchat we discovered that most of the servers who tried to
do cdn the .rsc, had unknown issues because they had used https://
urls. Byond can't into https.
like 5 servers had failed to get this to work because of that pitfall,
so im gonna add a warning to the config.
* tchat
* tgchat compile
* fixes
* Merge pull request #53011 from stylemistake/tgui-chat-fix-asay
tgchat: Fix asay
* chat color
* logging
* webstorage
* compile TGUI
* actually like compiles on the DM side
* Update chat-dark.scss
* Update chat-light.scss
* Update resources.txt
* Update tgui-panel.bundle.css
* Colors
* compile
* s
* s
* Ports Gamers TGChat so we can edit it. - NOT LIVE TGCHAT BRANCH (#10226)
* asset cache cdn
* Fix cdn rsc (#52886)
I was converting this to use length so it didn't have to care if the list existed or not, and forgot to remove the .len. this broke cdn .rsc files because length(num) returns 0.
* Add warning about https to the external rsc config (#53367)
today in hostchat we discovered that most of the servers who tried to
do cdn the .rsc, had unknown issues because they had used https://
urls. Byond can't into https.
like 5 servers had failed to get this to work because of that pitfall,
so im gonna add a warning to the config.
* tchat
* tgchat compile
* fixes
* Merge pull request #53011 from stylemistake/tgui-chat-fix-asay
tgchat: Fix asay
* chat color
* logging
* webstorage
* compile TGUI
* actually like compiles on the DM side
* Update chat-dark.scss
* Update chat-light.scss
* Update resources.txt
* Update tgui-panel.bundle.css
* Colors
* compile
* s
* s
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com>
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
* Fixes Replay Chat
* Update to_chat.dm
* Update chat.dm
* Update demo.dm
* yarn berry
* yarn berry compile
* Update resources.txt
* Update config/resources.txt
* Update resources.txt
* Attempt at fixing reconnect.
* Lets try fix it again
* oops
* THROW THE SINK AT IT
* ree
* Makes Travis work again thank you jamie
* Fixes snowflake images
* Update security.dm
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: TheGamerdk <5618080+TheGamerdk@users.noreply.github.com>
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
Co-authored-by: alexkar598 <25136265+alexkar598@users.noreply.github.com>
* Fixes
* Undo Kitchen Sink
* Fucking 7 Hours.
* status panel
* stat panel fixes
* fixes
* stat panel stuff
* Stat panel finish
* Compile, oops
* Update server_maint.dm
* Update world.dm
* Update interface.dm
* tgui compile
* Update subsystems.dm
* fix statpanel deleting whole admin tab (#54211)
fix: adminhelping no longer removes entire admin tab
fix: end of round no longer removes entire admin tab
* Update skin.dmf
* verbs?
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
Co-authored-by: TheSmallBlue <ilanmori@hotmail.com>
Co-authored-by: Jamie D <993128+JamieD1@users.noreply.github.com>
Co-authored-by: alexkar598 <25136265+alexkar598@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
Co-authored-by: Tad Hardesty <tad@platymuus.com>
Co-authored-by: Bobbahbrown <bobbahbrown@gmail.com>
* Fixes loading zlevels with static lighting.
* Actually this whole part is unnecessary now because change turf handles the change properly now.
* Correct
* Configuration datum refactor
* More WIP
* New easier on the eyes format
* More WIP
* Finished config.txt
* Fucktons more WIP
* The end of conversion draws near...
* Add all this shit
* Done converting entries finally
* Hunting down compile errors
* More WIP
* MORE CONVERSIONS
* More WIP
* More WIP
* Oh shit only 90 errors this time!
* IT COMPILES!!!
* Fixes world start runtimes
Rather then remove the light from all tiles, then re-add the light to all tiles, we just go thru each tile and diff the light level from the last value we added to it. (since this is tracked)
This cut the proc calls for updating lights in half.
Lighting objects now default to full brite rather then full dark so shuttles aren't as immersion breaking when they transit.
Made lighting more agressive about clearing empty lists.
* Add the system for managed global variables
* Travis ban old globals
* So you CAN inline proccall, that's neat
* Fix that
* master.dm
* Remove the hack procs
* Move InitGlobals to the proper spot
* configuration.dm
* Fix the missing pre-slash
* clockcult.dm
* This is probably for the best
* Doy
* Fix shit
* Rest of the DEFINES tree
* Fix
* Use global. for access
* Update find_references_in_globals
Always hated that proc
Whoever made it must've bee a r e a l idiot...
* __HELPERS tree
* Move global initialization to master.
Fix the declaration
* database.dm
* Dat newline
* I said DECLARATIVE order!
* Here's something you can chew on @Iamgoofball
* game_modes.dm
* Fix this
* genetics.dm
* flavor_misc.dm
* More stuff
* Do it mso's way. Keep the controllers as global
* Make master actually see it
* Fix
* Finish _globalvars/lists
* Finish the rest of the _globalvars tree
* This is weird
* Migrate the controllers
* SLOTH -> GLOB
* Lighting globals
* round_start_time -> ticker
* PAI card list -> pai SS
* record_id_num -> static
* Diseases list -> SSdisease
* More disease globals to the SS
* More disease stuff
* Emote list
* Better and better
* Bluh
* So much stuff
* Ahh
* Wires
* dview
* station_areas
* Teleportlocs
* blood_splatter_icons
* Stuff and such
* More stuff
* RAD IO
* More stuff and such
* Blob shit
* Changeling stuff
* Add "Balance" to changelogs
* Balance for changelog compiler + Auto Tagging
* Update the PR template
* hivemind_bank
* Bip
* sacrificed
* Good shit
* Better define
* More cult shit
* Devil shit
* Gang shit
* > borers
Fix shit
* Rename the define
* Nuke
* Objectives
* Sandbox
* Multiverse sword
* Announce systems
* Stuff and such
* TC con
* Airlock
* doppllllerrrrrr
* holopads
* Shut up byond you inconsistent fuck
* Sneaky fuck
* Burp
* Bip
* Fixnshit
* Port without regard
* askdlfjs;
* asdfjasoidojfi
* Protected globals and more
* SO MANY
* ajsimkvahsaoisd
* akfdsiaopwimfeoiwafaw
* gsdfigjosidjfgiosdg
* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!
* facerolll
* ASDFASDFASDF
* Removes the unused parts of dmm_suite
* WIP
* Fix quote
* asdfjauwfnkjs
* afwlunhskjfda
* asfjlaiwuefhaf
* SO CLOSE
* wwwweeeeeewwwww
* agdgmoewranwg
* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?
* Fix syntax errors
* 100 errors
* Another 100
* So many...
* Ugh
* More shit
* kilme
* Stuuuuuufffff
* ajrgmrlshio;djfa;sdkl
* jkbhkhjbmjvjmh
* soi soi soi
* butt
* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING
* lllllllllllllllllllllllllllllllllllllllllll
* afsdijfiawhnflnjhnwsdfs
* yugykihlugk,kj
* time to go
* STUFFF!!!
* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!
* ngoaijdjlfkamsdlkf
* Break time
* aufjsdklfalsjfi
* CONTROL KAY AND PRAY
* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* Goteem
* Fix testing mode
* This does not belong in this PR
* Convert it to a controller
* Eh, fuck this option
* Revert controllerization Ill do it some other time
* Fix
* Working controllerization
* FOR THE LOVE OF CHRIST PROTECT THE LOGS
* Protect admins and deadmins
* Use the inbuilt proc
* Revert "Lighting micro optimizations and fixes (#24939)"
This reverts commit 78bbbfe20a.
* vg refactor stage 1
* Fix runtime in get_turf_pixel
* fix lighting on turfs
* Fix certain things reading light levels wrong.
* Made SS faster/better by making it split its tick allotment up between it's 3 tasks
* istypeless loops @pjb3005
/proc/typed_loop 6.826 6.830 6.858 190761
/proc/typeless_loop 5.582 5.586 5.620 190435
* lazy init lists
This has the added benefit of making it more likely lighting moves when the person's tile glide has them at their new tile rather then before they get there.
* Ports paradise error handler, with in game runtime viewer!
* Changes to the old runtime error and removes inerror reference
* Oops
* Adds a wrapper for world.log so it displays both in the runtime diary and in DD window
Basically, they key difference between StonedMC and CarnMC is that when multiple ticks want to run at the same byond tick, we divvy up the tick between the subsystems, rather then allow one subsystem to hog it all.
The key difference between StonedMC and GoonPS is that we allow the subsystems to tell us how to divvy up the tick using flags and priority.
The new SS_ flags allows us to select behaviors that used to be piggybacked as side effects of dynamic wait or default but sometimes unneeded behavior.
Dynamic wait is 100% gone, lower priority and SS_BACKGROUND are better more refined ways of doing this when combined with MC_TICK_CHECK
I have by design never looked at the inners of goonPS, so this is all original code but I know it uses two loops because of comments by goon devs on reddit threads, that design didn't make sense before, but when I can tell a SS how much of a byond tick it is allowed to have, knowing how many need to run this tick is helpful I also know a bit more about how it works from piecing together comments in #vgstation.
Detailed list of changes:
Subsystems now have flags, allowing fine grain control over things like rather or not it processes, inits, rather it's wait is how long between runs (post run timing) or how long between starts, and rather or not late fires should cause the next fire to be earlier.
Mc now has two loops One loop handles queuing shit, one loop handles running shit.
MC now splits up tick allotment rather than first come first serve Subsystems can even request a bigger share using higher priorities. (It will even resume subsystems it paused if other subsystems hadn't used as much as it predicted they might need)
Default fps is now 20 This is related enough to the MC and it's a change that's really long since over due
All code oddities are most likely to be necessities to lower overhead on the mc since it runs every tick
lighting removed from dewait because lag checks are better for it and lag checked subsystems that are also dwait systems are given lower priority, we don't want that to happen to lighting.
This setup allows subsystems to pause themselves until next mc fire if they are about to go over a tick, and resume on the next mc tick
It also makes it so we prioritize running subsystems we skipped because there wasn't enough time in the current tick to run them based on their avg tick usage. (as well as subsystems paused mid way thru)
Adds a macro for adding this to non-mc procs. just drop it in the loop. There is a define version as well for if checks if you want to know if you just slept to avoid lag.
This is all inside #if DM_VERSION defines, so once i test that 509 still works to compile/test this should be good to merge