Added the check to see what you clicked in the inventory when clicking on pockets and added a message for it. Now it won't just be a line break.
Fixes#4601
pretty much the same effeciencies from human/life()
no need to updatehealth() over and over and over
no need to process environment if everything is normal
etc.
Before: We process a whole lot of bullshit for no real reason most of the time because temperatures are perfect.
Now: We check if our temperatures and environment are within normal bounds and get the hell out of the proc.
Also: Mobs that are long dead or just dead mobs spawned at round start won't process Life(), those 3 clowns don't need Life(), those jerks.
We do a bit of pre-processing to see if we want to do checks on all the organs.
First we don't even do preprocessing unless we have damage of some kind
afterwards we process what is hurt until it gets better or overall we get worse
when we go ahead and check everything else out again.
Can add a safety check in life every 30 ticks or so go ahead and check every organ again but I don't think it's needed.
Will fix#4600 and the problem with drinks not knowing when they are open/closed.
Hopefully I didn't miss a string of code again,I don't think so,though.
Before: The stacker and processor used del(item) to get rid of the items causing /obj/movable/del() to spike up and cause fun amounts of lag. Also we have seperate variables for if a certain ore type is selected in the processing machine and the cooking portion of process() uses a huge string of if()'s which check 8 or so variables and is terrible and probably a pain in the ass should someone decide to later add ore types and recipes.
After: We just set item.loc = null when it goes in the stacker of processor and garbage collection takes care of it within a tick. Those different variables for ore selection are now just one variable which is a bitfield, much easier to read, much easier to expand upon.
Before: Every tick each HUD item would recalculate and redo images for every mob in view. For items like the secHUD where we're transversing implants and the various records this gets very expensive.
After: Mobs use their hud_list variable to store varius huditem images, when conditions change for those specific huditem images it updates the specific ones on demand. As a backup every 30 ticks or so the mob will update all of their hud_list.
Also: moved proc/RoundHealth() from 2 seperate locations into __HELPERS/mobs.dm
Conflicts:
code/modules/mob/living/living.dm
Had to do a hacky fix. there was no real way around it.
Also, a couple balances with IPCs
And a totally silly death animation (Which has been commented out for now)
Before: If you turned off the breaker and fiddled with on/off states and turned on the breaker it wouldn't update the overlay because the check_updates wasn't doing an if(operating) check and would think it didn't need to update the overlays once you turned on the breaker.
After: Check_update() is doing a check for the breaker being on or off and taking that into account with the update_overlay flags and will update the overlays properly.
Thanks Razharas from /tg/ #coderbus for bringing this to my attention.
This allows for more secure and stable transmission on Linux, but you might see some improvements on Windows too.
Code lies in (confusingly) lib/src.
nudge.c should be compiled to lib/nudge.[dll/so] and be linked against netutil.c.
There's some horribly hacky code in nudge.c to assemble pickled data, but it's probably the fastest way that's still safe.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
We won't regenerate the list for Manifests every tick while viewing the manifest, instead we have a global variable for it PDA_Manifest that we Cut() if there is a change to the manifest then when the next player goes to view the manifest on their PDA it will recreate the list that one time.
Some sections of the PDA will no longer auto-refresh every tick because...well that's dumb.
Modes that will no longer autoupdate at all: Viewing medical/sec records, viewing notes (will update when you change them of course), and the station alert menu.
Modes that will only autoupdate every 5 ticks: APC list (Because it's a huge fuck off list), the manifest, mulebots and secbots screens, supply requests/orders, and janitor supply locator)
Some other things that I just can't remember right now.