* Removes a few cameras in storage areas.
* Bolted vault doors now have a proper instance.
* Updates a few access issues noted during testing as well as fixes#7925.
* Restores baystation12.int.
It got changed somewhere along the line in my giant mess. This should
make it the same as it was before. It's not the best way to do it, but
it works and hopefully won't hurt anything long-term.
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.
Var is fine in one line, null in next one. Cannot feasibly prevent that without slapping nullcheck before EVERY mention on that var, so going to just add some sanity checks and call it a day