cl
add: Added support for a widescreen toggle, actual widescreen will require a config change.
tweak: Auto-fit view is now the default. This will only apply to new players.
/cl
About The Pull Request
VR sleepers now lead to the VR Hub, a place with a bunch of portals that lead you to other areas, or just has chill stuff like a bar. Includes portals to all the old vr maps, the megafauna training simulator map, a soon to be minecraft map, and my crappy game runner where you run away from falling tiles and fight to be the last person to survive. Merges murderdome and syndicate trainer into the vr hub map so they spawn every time with vr. Recall portals now can have multiple exits to support the old vr waypoint system from the hub. Also moves a lot of stuff around in the files to make it more organized. There's now also a ghost role that can access VR as well with infinite spawns.
VR NOW HAS A CONFIG OPTION SO ENABLE IT OR VR WILL NOT WORK.
Why It's Good For The Game
Being a ghost is boring for most people, it's nice to have a place for people to hang out rather than just leave the server. This is also a nice place where people can put gamemodes they're testing or other fun little minigames that can't be main gamemodes. VR currently is not used by really anyone so I don't see anyone getting bothered by this PR as well.
* Add a virus log, plus a log for facehuggers
Logs each infect event and contains detailed descriptions of the virus
I also added a log message for printing virus culture bottles including
who printed them
Finally i tacked on a change to adding a game log entry for facehuggers
because why not
* Further logging fixes and updates
Medbots now combat log
combat log no longer tries to run keyname on an object because that
doesn't make much sense
* Dead say no longer logs twice
* tabs to spaces
* Adds a length check for freeforms, 250 char cap
* added a define as requested.
* Actually it's better if it applies to all boards
* Now it's better good
Also added a max to the Asimov board that was missing it before.
* Better defined
* Undefining defines
* Config code
* Adding config line
* whoops
* Update AI_modules.dm
* disables the MMB exploit
* Adds a config option to set a minimum build, with the recommended minimum build for 512 users being 1421
* readds the post-block detection, and changes MMB -> Middle Mouse Button
* Makes it the standard, I guess
Co-Authored-By: nichlas0010 <nichlas00100@gmail.com>
* Update client_procs.dm
Spiritual successor and extension to #17798, an almost entire rebuild of the SQL ban system backend and interface.
Bantypes are removed per #8584 and #6174. All bans are now 'role bans', server bans are when a ban's role is server. Admin bans are a column, meaning it's possible to ban admins from jobs.
Bans now have only an expiry datetime, duration is calculated from this when queried.
unbanned column is removed as it's superfluous, checking unban status is now done through checking unban_datetime. unban_round_id column added. Each ip and computerid columns rearranged so ip is always first, like in other tables. Bans now permit a null ckey, ip and computerid.
Ban checking is split into two procs now is_banned_from() does a check if a ckey is banned from one or more roles and returns true or false. This effectively replaces jobban_isbanned() used in simple if() statements. If connected a client's ban cache is checked rather than querying the DB. This makes it possible for a client connected to two or more servers to ignore any bans made on one server until their ban cache is rebuilt on the others. Could be avoided with cross-server calls to update ban caches or just the removal of the ban cache but as is I've done neither since I think it's enough of an edge case to not be worth it.
The second proc is is_banned_from_with_details(), this queries the DB for a role ban on a player's ckey, ip or CID and returns the details. This replaces direct queries in IsBanned.dm and the preferences menu.
The legacy ban system is removed.
The interfaces for banning, unbanning and editing bans have been remade to require less clicking and easier simultaneous operations. The banning and jobban panel are combined. They also store player connection details when opened so a client disconnecting no longer stops a ban being placed.
New banning panel:
Key, IP and CID can all be toggled to allow excluding them from a ban.
Checking Use IP and CID from last connection lets you enter only a ckey and have the DB fill these fields in for you, if possible.
Temporary bans have a drop-menu which lets you select between seconds, minutes, hours, days, weeks, months and years so you don't need to calculate how many minutes a long ban would be. The ban is still converted into minutes on the DB however.
Checking any of the head roles will check both of the boxes for you.
The red role box indicates there is already a ban on that role for this ckey. You can apply additional role bans to stack them.
New unbanning panel:
Unbanning panel is now separate from the banning panel but otherwise functionally the same.
Ban editing panel:
Actually just a modified banning panel, all the features from it work the same here.
You can now edit almost all parameters of a ban instead of just the reason.
You can't edit severity as it's not really part of the ban.
The panels have been tested but I've not been able to get my local server to be accessible so ban functionality isn't properly confirmed. Plenty of testing will be required as I'd rather not break bans.
cl
admin: Ban interface rework. The banning and unbanning panels have received a new design which is easier to use and allows multiple role bans to be made at once.
prefix: Ban search and unbanning moved to unbanning panel, which is now a separate panel to the old banning panel.
/cl
* Allows floats on all config entries that have no valid reason to disallow them
Needed for run speed changes, but I'm allowing them on any config that has no bonafide reason to disallow them.
The criteria used was "Is there a technical reason why floats should not be allowed or is there a technical/logical reason why floats would never mean anything more compared to a integer".
For instance: The cloning timer was made to allow floats because 0.5 ds increments are valid at our current fps and more would be valid at other fpses. Yes, from a practical standpoint nobody would ever want to have cloning be valid for 30 minutes and 50 milliseconds after death, but from a technical standpoint there is no reason not to let them.
* Update general.dm
fixes#41106 since it'll have it's own fucking location.
cl ShizCalev
add: Admins can now personalize their asay message color on servers with the feature enabled.
tweak: Moved some admin only preference verbs out of the Preferences tab and to a new admin preferences tab to help unclutter it / prevent accidental toggling of fun things.
/cl
Note that the start of the admin message will still use the default formatting just so it can be quickly recognized as an admin message and not an OOC one.
* Overhaul mecha logging
Removes user access to the log, not needed and that log can get large
removes all the internal log vars and passes all logging through to a
new log file, the mecha log
* somehow this makes it compile
* add it to the config too
Return of #37112.
@Carbonhell from Hippie reported an SSminimap crash on 512.1440 due to accidentally leaving the config on.
Nothing uses this subsystem, its maps look terrible, and it still after all this time is prone to crashes. If someone actually wants to start using these maps again they can just add the SS back in when they do that.
In preparation of pixel movement, I want to refactor our slowdown system to something more modular, and something that doesn't require /quite/ as many proccalls/calculations a tick. The way this works is intended to only have things recalculate when it's necessary, rather than calling it every move.
However, I've left movement_delay() in, as without completely redoing a lot of code it's not /quite/ ready at this point to tear it out completely, but I'm hoping everything can be transitioned over to this system later.
* Photography Update
* Pictures logged in their own /data/picture_logs folder rather than normal logs
* Pictures logged in their own /data/picture_logs folder rather than normal logs
* Photos broke, retrying
* Persistence stuff
* I'm almost done I promise!
* Persistence mostly working, compile, etc etc
* Persistence mostly working, compile, etc etc
* Remove something really not needed from the PR
* Prevents duplication
* default to off
* removes check tick
* increase slots in albums to 21
* Allows for singular loading
* Update camera_image_capturing.dm
* Addresses review
* Anturk
* Update camera.dm
* Update misc.dm
* Update datum.dm
* Update camera.dm
* Add BSQL library v1.1.1.0
* Modify dbcore to use BSQL
* Add missing QDEL_NULL for connectOperation
* Moves BSQL_Shutdown() call to dbcore shutdown
* Fix passing the wrong argument to DBQuery/New()
* Darn it @Jordie0608. Fixes db calls without Connect check
No seriously please make sure I'm not breaking anything
* Queries with a null connection won't runtime
* Fix quoting
* Fix mistake
* Update BSQL to v1.1.2.0
* Update BSQL DMAPI to v1.0.1.0
* Fix connection instatiation
* Does the smart thing in regards to quoting
* Fix braces
* Update BSQL to 1.2.0.0. DMAPI to 1.1.0.0
* Execute/NextRow/MassInsert now have async parameter
* Build BSQL for tests
* Add missing apt source
* Def still need gcc-multilib
* Wut
* Revert "Wut"
This reverts commit d7c98a9a6b27f6db03e9f5cc534650d59d018048.
* Try this then
* Could it really be that simple?
* Literally running out of ideas here
* Update BSQL to v1.2.1.0 DMAPI to v1.1.1.0
* Update BSQL travis version
* Nothing about this makes sense tbqhwyfam
* Whoo boy
* No idea why this isn't working tbh
* Absolute madness
* Ahhhhhhhhhhhhh
* *deep breath*
* "though yet again i was frustrated by failure"
* Add BSQL to Dockerfile
* Pass through MassInsert async param
* BSQL to v1.3.0.0 DMAPI to 1.2.0.0
* Add timeout support
* Wait, something's fucky
* Wtf is this meme?
* Just get good lmao
* Just stop being shit lol
* Stupid verbose logging
* Remove verbosity
* Good god
* BSQL to v1.3.0.1 DMAPI to v1.2.0.1
* BSQL to v1.3.0.2
* Update BSQL travis version
* Update BSQL docker version
* Didn't mean to change that
* Strip connection information from debug logs and make it configgable
* Move this to where CONFIG_GET is defined
* fixed cyborgs not getting their names at round start
fixed cyborgs and A.Is being able to get around appearance bans
* Update job.dm
* Update silicon.dm
* goodbye unneeded config otpion
* Update game_options.txt