Updates the TravisCI config to use the latest stable BYOND release.
Adds client version control taken from /TG/station.
Updates the recommended version for hosting.
Updates code to be 510 compile compatible.
Also introduces the new updates to the GOON processScheduler, which should make for better gameplay and less lag. Specially on high population.
Rewrite's Mahzel's SQL character and preference saving.
Introduces easy config switching between the new and old system, with no troubles at all.
Also introduces better logging for DBQuery/proc/parseArguments(), should something go wrong. And classes SQL query errors as full on error snow, as opposed to debug data.
Transfer vote delay is counted from vote end, so it doesn't conflict with invalid or cancelled votes. Or other votes.
TRANSFER_TIMEOUT added as a config option, default value is 2 hours. No transfer votes before 2 hours.
Transfer votes before 3 hour mark require 2/3rds majority to pass again. Credit to SoundScopes for the original snippet.
webint shall be the common word used now, replaced all instances of webinterface or webAPI with that one phrase. Should make it easier to read and search.
sqllogging depracted in favour of config.sql_enabled. Database loading is done through /hook/startup/proc/load_databases, with initialize_database_object() being a generalized proc to read any generic database config file. (TODO: config examples in relaiton to last remark.)
Both procs are now generalized, and accept a DBConnection object as an argument. Due to this generalization, all instances of `establish_db_connection()` must be renamed to `establish_db_connection(dbcon)`.
Also added variable `failed_connections` to the definition of DBConnection.
Pulls over the SQL based controller for automatically publishing news articles, and ties it to the process-scheduler. Also refractored it a little from the initial implementation in oldcode.
- Better implementation of #10714
- This fix corrects the issue by merging pipenet process to machinery process to ensure order of execution doesn't change randomly. This shouldn't have any performance effect as pipenet process doesn't have much work anyway (not to be confused with air process that runs ZAS, this one only called process() on each pipenet). Screenshot of profiler (pipenet process highlighted, idle server with one player, engine set up) http://i.imgur.com/ecCg6rS.png
- Unlike previous fix, this does not come with various game-affecting side effects, players shouldn't see a change (except for the fact that odd fluctuations introduced by devmerge disappear). Previous fix buffed engine output as side effect, and caused one TEG to generate considerably more than second TEG, which caused TEGs to begin sparking despite overall output being below 1MW.