Why do we have a robot that literally does the entire job. Basically people leave it and it becomes a lag generator forever. Removes farmbot harvesting and removal of dead plants, plus adds an idle timer for 150 process cycles without a target causing it to turn itself off. So basically it will tend the plants and keep them alive, but you need to come harvest them sometimes.
-If prey 1 is too small to show up, ya get no visible bulge.
-But if you eat another prey also too small to show up, but take enough space together with the first one, ya get bulge.
-Also if you eat a small person, and then a big person, ya now get bulge too. (unlike before)
OwO
-Makes digestion modes "finish" once everything unprotected is gone.
-This also means your guts will no longer permagurgle fruitlessly while nothing but a shitty ID in there.
-Okay so. The dismemberment related crashing has decreased in the mob icon cache related cases, but another circumstance has been revealed pointing towards the severed limbs themselves.
-(Someone got splattered yesterday downstream and nuked half server into chain crashing)
-Anyhow. I personally had completely forgotten to update my client last year from an awfully outdated pre-PIXEL_SCALING version, but I happened to do it way after people began crashing and cannot remember encountering a single crash from the before time.
-Which led to a theory that our poor little Byond simply has trouble adjusting to fresh features and occasionally gets overwhelmed by the task of tossing around a bunch of severed limbs inheriting their owner's visual properties while also having to randomly rotate each one.
-This thing just disables pixel scaling from severed limbs upon dismemberment.
-Because of the evil nature of the bug unpredictably manifesting in action and often leaves some witnesses un-crashed, I have no proof if this helps anything but I'll just toss it up and see if it sticks.
* MouseDrop()'s over_object may be null if dropping over a stat panel or over other empty space. Fix runtimes from assuming it is not null.
* Fixes Runtime in clothing_accessories.dm,54: Cannot read null.name
* Fixes Runtime in evidencebag.dm,21: Cannot read null.loc
* This is PHASE 1 of a multi-phase conversion. In this first phase we implement the subsystem, but leave it processing the existing global list variables. In the next phase we will switch to use datum variables in the subsystem. The main reason for splitting into two phases is ease of code review; change the meaningful code without the hundreds of machines -> SSmachines.machinery substitutions.
* We did declare macros for adding/removing things to the processing lists, and convert everywhere to use the macros.
* Added var/is_processing to /datum to keep track of whether an instance is already in a processing list (prevents it being in the list twice!) and also debugging, making sure its not in two lists etc.
* NOTE: The global machines list is **no longer sorted** for performance reasons. As far as I know, the only module that actually ever cared was cameras. Our camera system already handles its own sorting in the cameranets anyway, so it should no longer be needed.