No longer uses animate() when unneeded, because animate() is slow.
Also turns Clamp() into a macro to reduce proccall overhead.
The whitespace changes in atmos are needed because of the way the
preprocessor handles macros.
Thank you MrPerson for helping with this.
adds GetInitDirections() from my other PR
redoes atmosinit
atmosinit now works if called without an argument (it builds the node_connects list on its own, without care for order)
adds can_be_node; this proc is overridden by h/e pipes and junctions
minor change to atmosinit
changes heat exchanging pipes to be a subtype of atmospherics/pipe
eventually this will allow us to make h/e manifolds (even 4-way)
removes a bunch of comments
makes simple pipes more OOP
adjusts defines; puts them in __DEFINES/atmospherics.dm
adds DEVICE_TYPE_LOOP define, which is used in a bunch of the for loops
- TOUCH no longer transfer reagent by default, it's now only used for touch based effect like being flammable when touched by fuel or you and your stuff being acided when touched by acid).
- PATCH does no transfer of its own (but actual patches code do make a transfer) but is used for touch effect that ignore clothes and protection (blob attacks, patches effect going through hardsuits)
- VAPOR does reagent transfer but it takes into account clothing protection
Fixes a typo in humanoid/get_permeability_prot
Fixes acid splashing on objects not destroying it. Fixes acid splashing on turf not destroying objects on the turf.
Changed damp rag smothering code a bit.
Blob Smoke now doesn't do anything.
This requires a 508 beta version to use. If Travis fails this he's a bitch
Exceptions will generate a stack trace, which is way easier to see and more helpful in actually solving this kind of crap. Also logs all the arguments, src, line, and file automatically.
Removed any dubiously helpful information in the exception names so the runtime condenser won't see each one as a different runtime. If the information is critical to solve these bugs (camera one maybe?), then I'll just make these warnings.
Thrown exceptions crash the currently running proc. Yes that means there's useless returns in a bunch of these, sue me. spawn()'s are to let the proc continue.
Almost all of these are difficult to trigger, but I did test playsound. And frankly even if they do cause bugs by crashing procs, big whoop