`code/setup.dm`:
Fixed large amounts of indenting.
Fixed large numbers of comments and their clarity.
Added parentheses to macros using expressions.
Added FIXME for unused duplicated macros, without certainty of their requirement.
Removed some duplicate macros present. (`BRUTE`, `BURN`, etc.)
Removed macro `PI`, and replaced instances of its use with `var/const/Pi` from `maths.dm`
`code/global.dm`:
Fixed large amounts of indenting, added newlines to long single-lined list definitions.
Slightly clarified comments.
`maths.dm`:
Rewrite `Gcd(x)` to remove recursive behaviour.
Remove `RaiseToPower(x)` and its usage from `event_manager.dm`.
Rename `Lerp()` to `Interpolate()`.
Add `Square(x)`, which squares a number.
Rearrange most of the functions in the file. (trigonometric functions together, etc.)
`type2type.dm`:
Rewrite `num2hex()` and optimise `hex2num()` for superior clarity and a 100% speed improvement.
Correct indenting, spaces, make switches more concise.
`time.dm`:
Remove old, slanderous commented-out function `/proc/time_stamp()`
`lists.dm`:
Add the macros, `BITTEST(bitfield,index)`, `BITSET(...)`, `BITRESET(...)`
and `BITFLIP(...)` for bit-manipulation and use them where 20+ files
do it manually, for arguments of reader clarity and standardness.
So basically toxins are not processed like all other reagents - instead
that is handled to the liver. Since dionae/dionas have no liver, toxins
would never leave their system. There is a check for aliens to
forcefully call ..(), but due to a typo it was only called if the drug
had any toxpwr. Since mindbreaker (and several others) has toxpwr = 0,
such drugs would never leave a poor diona's... khm, system.
The question to how diona even get affected by those in the first place
stays open.
Fixes#6994.
- Fixes#5906
- Fixes#5939
- Fixes#6282
- Fixes#6634 (properly this time)
- Fixed a bug with updating train stats (causing trains to be super slow if hitched while running)
- Updated train verbs (start/stop/remove key) to only show up if you are in the same turf
- Moved all train specific verbs to their own verb category: "Vehicle"
Takes a pass at updating ATMOSPHERICS to take advantage of the new powernet changes.
Also removes var/on definitions from many atmos machines. Machines generally shouldn't
be doing "on" things if they aren't using power, and most players don't expect a machine
to use power if it isn't "on," so I guess this is fair game.
Also, further refactoring.
- RCON consoles ignored SMES I/O limits, meaning you could set SMES to charge/discharge at unlimited values.
- SMESs now properly trim the value when it is above maximal limit (or below 0)
- Also commented the code, while i was in it
- Completely reworks the powernet sensor system that i created.
- Code mostly refactored to nice properly commented one.
- Sensors now have (currently unused) proc for returning HTML encoded string (it's there if someone needs it) and (newly added) proc that returns assoc list of data.
- Thanks to previous, the console has been fully reworked to utilize NanoUI.
- This addresses most issues with old UI which was harder to use and somewhat buggy at specific situations (such as, showing lower load than suposed)
- This fixes bugged powernet warning system. Electrocution now properly triggers warning even when short-circuit is caused by gloved user
- However, there is small difference. Causing sparks but not taking damage triggers only 5 tick warning, instead of 20 tick one. 20 tick warning is triggered when injury is caused.
This modifies the APC NanoUI to show power usage during charging. This is done in form of Total Load: 1234W (+2500W Charging). Charging panel only shows when it's really charging.
APCs now track how much power is actually used for charging. This prevents APC charging from showing up as "Other Load" in power monitoring console.