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.
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.
Renames the variables of the DBConnection object to make differentiating them easier.
Reworks the `DBConnection/New()` and `Connect()` methods to allow for the automatic creation of the dbi handler string. Adds a con_database variable to DBConnection to enable this. DBConnection objects now also house the current database they're using for this purpose.
Moves the constructor for dbcon under `/hook/startup/proc/connectDB()`, as it needs to be called after the SQL config has been read by `datum/global_init/New()`
Because of the limitations of BYOND's bitwise operators (which affect both the old and new implementations of num2hex()), you cannot use numbers larger than 2^16 with that proc.
Manual port of https://github.com/PolarisSS13/Polaris/pull/430.
Replaces two procs:
proc/sql_poll_admins()
proc/sql_poll_players()
With the proc:
proc/sql_poll_population()
Which does the same thing, except fixes and issue with sql logging, where player counts and admin counts would be placed in different rows:
Pictures for comparison:
Before: https://i.imgur.com/As4hAV8.png
After: http://i.imgur.com/ssm20IQ.png
Announcements are no longer parsed twice, avoiding messages such as "T's nice".
Fixes the strip_html_properly proc, to avoid out of memory runtimes.
- Fixes bug causing AI's and borgs with medical sensor augmentation set
to not see med huds
- Status icon displayed if suit sensors set to binary or higher
- Health bar displayed if suit sensors set to vitals or higher
- Wearable med huds will always display all info, including mounted borg
huds
When machinery checks security records they now only check for explicitly set arrest status.
Previously they would check for either missing security records or arrest status.