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/__HELPERS/mobs.dm
code/game/objects/items/weapons/implants/implanter.dm
code/modules/mob/dead/observer/observer.dm
code/modules/mob/living/carbon/human/human_damage.dm
code/modules/mob/living/carbon/human/life.dm
code/modules/mob/living/living.dm
code/modules/mob/living/living_defines.dm
code/modules/mob/living/silicon/silicon.dm
code/modules/virus2/helpers.dm
code/setup.dm
icons/mob/hud.dmi
We no longer run auto_use_power() on every machine every tick.
We now have a global list of areas, and areas that have an APC in them (all_areas and active_areas) no more looping through world bullshit.
A bunch of snowflakey as fuck machines won't use_power() in their process, you get two options, active and idle, use them!
This means a lot of machines won't double dip on power as well so power usage for the station has dropped about 20%
Because everything is snowflakey as fuck we're going to have some machines that don't force an update on their power usage. Fuck them.
We should catch them with the root obj/machine/proc's forcing updates.
Conflicts:
code/modules/mob/mob.dm
code/modules/power/apc.dm
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.
Conflicts:
code/defines/obj.dm
runtime error: Cannot read null.len
proc name: scan atom (/obj/item/device/depth_scanner/proc/scan_atom)
source file: tools_depthscanner.dm,31
usr: Some Guy (/mob/living/carbon/human)
src: the depth analysis scanner (/obj/item/device/depth_scanner)
call stack:
the depth analysis scanner (/obj/item/device/depth_scanner): scan atom(Some Guy (/mob/living/carbon/human), Rock (155,169,5) (/turf/simulated/mineral))
Rock (155,169,5) (/turf/simulated/mineral): attackby(the depth analysis scanner (/obj/item/device/depth_scanner), Some Guy (/mob/living/carbon/human))
Some Guy (/mob/living/carbon/human): ClickOn(Rock (155,169,5) (/turf/simulated/mineral), "icon-x=23;icon-y=13;left=1;scr...")
Rock (155,169,5) (/turf/simulated/mineral): Click(Rock (155,169,5) (/turf/simulated/mineral), "mapwindow.map", "icon-x=23;icon-y=13;left=1;scr...")