Removed client check from mob so that if a pAI is being held by a SSD client it can still hear.
Removed 3rd deep .loc check 2 is plenty, and was making the proc rather expensive
(if you shove a pAI in a bag and toss the bag into a locker, the pAI will be deaf, you jerk).
Before: Everytime you say something. This proc is ran. Along with it, recurses through EVERY /obj/ & /mob/ in view's contents, and EVERY /obj/ & /mob/ in that contents...and once again.
After: Fuck recursion, we're going to loop through clients and see if they are within any obj's or mobs within one iteration. MUCH cheaper, and probably less buggy.
If someone can't hear everyone and they are within an object and it's not catching? add it to the list commented for it of type checks.
* Add dynamic loading of poster designs (untick group in DM to remove, no more toggles)
* Fixes wirecutters duping posters
* Fixes dropped posters not being placeable.
Also fixed some grammar in the station blueprint code.
Conflicts:
code/game/objects/items/blueprints.dm
code/game/objects/items/devices/uplinks.dm
code/modules/admin/verbs/debug.dm
code/modules/clothing/masks/gasmask.dm
code/modules/detectivework/scanner.dm
code/modules/flufftext/TextFilters.dm
code/modules/mob/living/carbon/human/say.dm
code/modules/mob/living/silicon/ai/say.dm
Current hooks are "startup", "roundstart", and "roundend".
Most stuff in world/New() has been moved over to the startup hook.
Roundstart and roundend have no hooks yet.
Removed the unused "newbanjob.dm" file and associated verbs/topics.
Bumped RECOMMENDED_VERSION up to 501.
Signed-off-by: Mloc-Argent <colmohici@gmail.com>
Source-code for the dll can be found here under LGPL license:
https://github.com/Carn/bygex
It is merely an interface to boost::regex. It uses perl syntax (non-recursive).
Guidelines for use:
var/datum/regex/Rgx = regex_findall(haystack, regex_expression)
for(var/i=1, i<=Rgx.matches.len, ++i)
world << Rgx.str(i)
The implementation is different to the one other regex-in-byond library I found. This implementation only returns a string containing the position and length of each match and submatch. This uses far less memory than also passing back the matched strings (especially in large files like dream-maker maps).
Note: Regex indexes begin at 1 (since byond lists begin at 1), unlike traditional regex. If we are using a procedure such as regex_findall(), with 3 sub-expressions, match 1 will be the overall match. Match 2 will be subexpression 1, match 3 will be subexpression 2.... Match 5 will be the overall match of the next match...and so on. To ease use, there is /datum/regex/var/anchors which is a numerical value which can be used inside loops like so:
for(var/i=1, i<=Rgx.matches.len, i+=Rgx.anchors)
world << Rgx.str(i+1)
This will print the first submatch of each match to world.
- creating the mask entity
- modifying the code for cult icons
- updating the camera net
- adding visibility network updates to all mobs
- unifying the culting and deculting process
- adding "Make Mask" function to Player Panel
Also changed weird condition that amputated leg must not be splinted.
Removed checks for haslimbs, since movement while downed is not possible anyway.
Moved some special effects for broken limbs after check for such, so healthy ones wont bother.
Fixed a derp in populating the global list of sideffects.
Makes them process only every 15 ticks, to cut down on the calls.
Removes damage because it was supposed to be gone, no idea why I didn't delete the lines.