Tracking added for AI's and Observers
Instead of calling GetVoice() over and over for everyone that can hear you we're checking a variable that is updated with Life()
removed a bunch of my debug verbs.
Conflicts:
code/game/machinery/telecomms/broadcaster.dm
code/modules/mob/dead/observer/observer.dm
code/modules/mob/living/carbon/human/human_defines.dm
code/modules/mob/living/silicon/say.dm
Fueltanks now actually leak fuel when wrenched open. The leaking only occurs at the initial wrenching and when tank is moved.
Conflicts:
code/modules/reagents/reagent_dispenser.dm
removed del() calls for objects, now it sets loc to null and removes it from master_controller processing
Much quicker :)
Conflicts:
code/modules/power/singularity/singularity.dm
- Adds an if() check to reaction_mob for catching a very rare runtime related to mobs inhaling smoke reagents from just deleted smoke.
- Carbons reaction_turf proc now modifies a single dirt overlay layer, instead of just adding more decal objects to the turf.
- Added some checks to the radium and uranium reaction_turf proc so it doesn't stack multiple greenglow decals.
- Performed colon removal surgery on thermites reaction_turf proc, also tweaked it's overlay operation to correctly overlay a chemical puddle effect, instead of a melted wall effect.
- Removed space_cleaners overlays.Cut() code, since it was removing decals from turfs.
Conflicts:
code/modules/reagents/Chemistry-Reagents.dm
- Complete rewrite of the chemsmoke spawning code (everything that happens after the reaction to create the smoke).
- Moved it into it's own file since it's a little longer than the old one code-wise.
- Tweaked the smoke sprites; gave chemsmoke directions for more randomization, and tweaked the timing of their animations so they are smooth now.
Most of the code is documented, so you should be able to follow what's going on just reading through it. In short though:
- Chemsmoke now affects a circular area with a variable range depending on the total amount of chemsmoke created (no more 1-of-each-ingredient smoke grenades - sorry).
- The carried reagent volume in the cloud balances itself according to how big the affected area is (larger area, less carried reagent per turf).
- The carried reagent has more volume the closer you are to the centre of the cloud.
- The visual smoke effect scales with how big the affected area is.
Conflicts:
code/game/objects/effects/effect_system.dm
icons/effects/96x96.dmi
2 for loops is more expensive then what we're doing here.
Also we check to see if virus2 is populated before starting a for loop
Conflicts:
code/modules/mob/living/carbon/human/life.dm
code/modules/mob/living/carbon/monkey/life.dm
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.
Conflicts:
code/modules/mob/living/carbon/monkey/life.dm
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.
Conflicts:
code/modules/mob/living/carbon/human/life.dm
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.
Conflicts:
code/modules/mob/living/carbon/human/human_defines.dm
code/modules/mob/living/carbon/human/life.dm
code/modules/organs/organ.dm