* Initial
* some more
* next few
* only light left
* fix things up
* some rmore fixes
* guh
* Update ai_vr.dm
* comment
* lets try something
* .
* hmm
* .
* .
* hmm
* push that here
* fix layout
* grrr
* Update settings
* Whitespace changes
* Comment out merger hooks in gitattributes
Corrupt maps would have to be resolved in repo before hooks could be updated
* Revert "Whitespace changes"
This reverts commit afbdd1d844.
* Whitespace again minus example
* Gitignore example changelog
* Restore changelog merge setting
* Keep older dmi hook attribute until hooks can be updated
* update vscode settings too
* Renormalize remaining
* Revert "Gitignore example changelog"
This reverts commit de22ad375d.
* Attempt to normalize example.yml (and another file I guess)
* Try again
So, I am not sure how much this will help or hurt.
We have noticed that, there is a lot of lag that happens under heavy radio use, and Ascian noted that the playsound proc was seriously overloaded during those times.
Notably, presently every radio in the game uses playsound to play the radio sound any time anything sends a radio message, even if the radio in question doesn't have the channel the message was sent to.
And if you are unaware, playsound figures out who's in range of every source of sound and their distance from its source to adjust the sounds so that it sounds like it's coming from the right place in the world.
Problem is, if the server's decently busy, that's possibly a hundred things doing that work every time any message comes over a radio.
I thought it would be better if, since the radio systems are ALREADY doing the work of figuring out who can see the radio message, that playsound doesn't actually need to do that work again for tons of different sources.
ADDITIONALLY, the thing to determine if the sound should be played based on preferences is also a part of playsound, meaning that it STILL RUNS PLAYSOUND EVEN IF THE PREFERENCE IS OFF
So! I used byond's direct sound thing which, I THINK just makes your client play the sound and ought to use next to no extra server resources for it.
The only downside is that we lose pitch shifting on the radio sounds, and we lose the sense of 'audio presence' for the sounds in the world.
In short, this means that the radio sound will just, always sound the same no matter where it is in relation to your character. If you receive a radio message, the sound will play on your client.
The sound should also only ever play once for you per message, rather than stacking like it does when lots of people/radios are in the same place.
ASSUMING THIS WORKS HOW I THINK IT DOES, this should reduce a lot of computer work for playsound on busy shifts. (And ideally, increase performance)
This change does also use and respect the same preference that already exists for radio sounds, so there will be no change in how that works.
* Yes, all of them.
* Also did a few corrections to redundant New() and broken Destroy() along the way
* Renamed the turf_initializer.initialize() proc to InitializeTurf to avoid confusion.
* Subsumed /area/proc/initialize into /atom/proc/initialize() - Made /area's LateInitialize to get same behavior as before.
- DJ Station APC turned off at default
- DJ Station one general intercom replaced with a syndicate intercom
- DJ Station headset no longer guaranteed to spawn, one in four chance to spawn in one of the rooms
- DJ Station Exterior tiles (around the generator) marked as outdoor tiles
- Advanced roller beds moved to SAR lockers
- Blood cabinet and IV stand in SAR room, two o- blood bags and two empty blood bags at round start
- Mining outpost now locked to IDs with maintenance access and research access
- Observation windows in xenobio are now electrified
- Extra sinks and a high capacity water tank added to xenobio
- Red flags in the caves to designate the 'border' between the regular caves and the more dangerous ones
- Xenoresearch first aid station door name fixed
Mostly because the old radio-enabled MMIs were almost never used. Changes all MMIs and their subtypes (posi and drone brains) to have a radio inside of them, which can only be used when the brain is outside of a body. This radio can be used to talk over the common channel, in case you get left on a table somewhere by an absent-minded roboticist. However, the radio can also be disabled, in case an antag has you and doesn't want to to scream for help.
Since this makes the old radio-enabled MMIs obsolete, they're no longer printable(although it's still defined in the code so I don't have to touch the map file). Also fixes a telecomms runtime with brains talking over the radio.
Adds toolspeed var, which is a multiplier on how 'fast' the tool works. 0.5 means it goes twice as fast.
Adds usesound var, which determines what sound is used when a tool is being used.
Changes a lot of code to use those two vars instead.
Adds 'ayyy' tools, which are ported from /tg/'s abductor gamemode. They're currently admin only but I might make them obtainable by xenoarch later.
Adds powertools, also from /tg/. CE starts with them in a new toolbelt that spawns in their locker, ported from (you guessed it) /tg/.
Changes welder sprites to look nicer, ported yet again from /tg/. Modified the blue welder slightly so it can be the electric welder sprite.
Adds various sounds from /tg/, for tools and welders.