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.
This is primarily a compatibility layer that enables both forward and backward compatibility for all past and future APIs based on the detected running TGS version. It also bundles all it's includes to make future upgrades not have to modify the dme, heck, could even use a submodule if it wanted (not happening). No other changes necessary.
There's an upcoming event system and new chat management functions. Check them out here: 303448457e/DMAPI/tgs.dm
Also added /datum/proc/CanProcCall()
* wip
* wip2
* makes code actually compile on 511 + fixes
* versioning
* s
* adds python conversion script, schema change and removes 'force ' from item_used_for_combat
* fix to compile
* forgot to actually commit this
* New API for service communication
* Safer this way
* Gives the game the ability to kill itself
* tick_lag
* Sanity check
* Updates comment
* Formalization of the server tools API
* Fixes, finishes, and cleanup
* Remove unecessary scoping
* Compile fixes
* Didn't Ctrl+S
* Reimplement chat commands
* Fixup
* Required parameters
* Fax
* Testing
* Fix ON_TOPIC
* The more defines the more better
* That's bass ackwards
* Fix tgs2
* Fuck it, call him pichael
* Do this
* No, we only use the modern methods now
* Remove tgs2 relay support
* Remove kebab
* Kill kill kill
* This is back baby
* Missed a GLOB
* Remove DownloadPRDetails()
* Cache custom commands by name
* Adds "notify" chat command
* Use the official API
* Fix API misuse
* Readme licensing memes
* Fix API
* Moves chat new game announcement to when the API is confirmed compatible
* Add TGS3.json
* Fix the input options
* Removes notify command
* Configuration datum refactor
* More WIP
* New easier on the eyes format
* More WIP
* Finished config.txt
* Fucktons more WIP
* The end of conversion draws near...
* Add all this shit
* Done converting entries finally
* Hunting down compile errors
* More WIP
* MORE CONVERSIONS
* More WIP
* More WIP
* Oh shit only 90 errors this time!
* IT COMPILES!!!
* Fixes world start runtimes
* TGS3
* Fix line endings
* Enable 16-bit long topics
* Cleans up topic socket usage
* Reduces and refines the IRC status throttle
* Increase the CP status delay to a reasonable amount
* Fixes the testmerge command not having a keyword
* Clean up rebooting a bit
* Get error codes from windows when symlinking fails
* Clean up world announces
* Aborting compilation will kill the DD process
* Add support for changing the project name
* Removes the log page
* Add support for compile cancellation
* Version bumps and docs
* Add merge-pr repo CL command
* Fixes DM cancel command's help message
* Refactor command line to show better formatted help text
* Corrects a typo
* Multi-key game options must be manually edited
* Moving of the server installation from the control panel
* Fix a bug with server moving
* Corrects webclient disposal syntax
* Service now handles the PR Json the game uses properly
* PR listing command for CL
* Fixes reversed testmerge and update help entries
* Windows scheduling to help avoid reboot crashes
* Generalization of chat infastructure
* Brings a file name in line with everything else
* Shutdown exceptions no longer keep the service online
* Enable provider switching on the backend. More thread safety
* Support for switching, password encryption and defaults.
* Removes boilerplate on log writing
* Discord integration
* Update the installer dependencies
* Version bump
* Adds support for getting the latest byond version
* Fixes issue with not being able to set discord channels
* Fix being able to reconnect if chat is disabled
* Extra validation for interface types
* Add the Chat page for the control panel
* Various cleanup
* Set read ACL on the data directory
* Remove redundant namespace usage
* Fixes some buttons not updating the server page
* Future proof against upcoming removal of repo data directory
* Normalize Main declaration
* Update the IRC library
* Enables CTCP
* Removes useless hack
* Logging + enable IRC private messages
* Jobs config
* And finally the maps config
* Save the last config panel visited
* Not gonna use these
* Minor formatting cleanup
* Fixes the chat page not refereshing after clicking reconnect
* Fixes server page not initializing correctly
* Repo now defaults to tgstation github when not found
* Revert "Set read ACL on the data directory"
This reverts commit 15b0021ec51532bca14690a884caa81e811fbc46.
* Design the admin config page
* Prep format the repo's admin_ranks.txt
* Add a negative permissions field
* IRC now RFC quits before disconnecting
* Turns out that fixed the disconnect lag
* Updates the admin ranks config api to work for us
* Done with this config shit
* @optimumtact
* Fix this
* Fix the .wxs
* Try to get md5/sha1 working.
* Add FCIV to appveyor
* Generalize the command class
* Revert "Generalize the command class"
This reverts commit 5c61f6df58d66f0fea4170c8aee0cd5beaa99b5d.
* ITS THE FUCKING SEX NUMBER!!!!
* Final touches
* No THESE are the final touches
* Do not advertise
* Revert "Do not advertise"
This reverts commit f64281d486f9ca27e39f19635ab4deacb2d7e1ac.
* Hopefully the last version bump for long time
* Fix line endings
* Fix default dbconfig.txt
* Fix Discord not checking the right admin channel
* Fix discord listening on ALL channels instead of configured ones
* Package the discord fixes for @JamieH
* Format the testmerge data a little better
* Apply 7 character clamping of commit strings
* Fold admin hard reboot into regular reboot list
* Backward ahelp compatibility with the adminbus bot
* Removes an unecessary semicolon
* Fix stray merge conflict in the config
* Fix Newtonsoft being included by the commandline
* Improve byond update logging
* Chat cleanup
* Fixes some setup non-errors from being displayed
* Repository no longer counts being busy as being valid
* Repository no longer valid while cloning
* Fixes a nudge socket change issue
* Frontend cleanup
* Fixes CanStart race condition
* Fixes compile cancel delays
* Various fixes
* More fixes
* Better readme
* More readme
* Fix a config command description
* Add missing repo status command
* Never delete the backups
* Log the compiles
* More logging
* Stuff
* A thing happened, but I'm not sure what
* Tiny
* INB4 second squash
* Version bump
* Shallow clones should speed things up
* Regular clones
* This is how it's set on travis
* Fix this dupe
* Add backup tag support to backend and command line
* Add some missing repo commands, fix GetHead. Fix reset on branches
* Remove the interfaces for commit and push
* Remove that generate changelog checkbox
* Yeah, that's a misunderstanding
* Make changelog pushing a config, with no way to enable for now
* Add Reset and Recompile option
* Update readme
* Repo page cleanup
* Fixed NudgePort message possible repeating
Fixed Reset and Recompile option always being visible
* Fixed compilation copy not overwriting files
Fixed compiler trying to unecessarily delete the whole A/B folder
Improved game folder initialization speed
* Selectively stage the html folder
* Make the restriction a config
* Switch to using LibGit2Sharp+SSH
* WIP SSH support
* Removes some success chat messages
* Make repo authentication purely file based
* Quick IRC fix
* Should all work in theory...
* More fine grained
* Remove the username thing
* Use the right default email for tgstation-server
* Update the readme
* That's worthy of a version bump
* Speling
* Makes it do as the readme says
* Fix testmerge list not having a scrollbar
* Trying out commit message based deployment [TGSDeploy]
* Whoops
* Testing
* Better
* Version Bump [TGSDeploy]
* Need to set the var at parent scope [TGSDeploy]
* Use the commit message
* Try this [TGSDeploy]
* Try just this
* This maybe? [TGSDeploy]
* >like [TGSDeploy]
* Wildcard, bitches [TGSDeploy]
* Saner title [TGSDeploy]
* Readme update
* This should loin ya
* Fix it [TGSDeploy]
* Readme, cleanup, and doc updates
* Improve DD crash handling
* Version bump [TGSDeploy]
* TGS3 Config Changes
* Line endings
* Map config code change
* Missed a few
* Security and Visibility selectors for the Server page
* Fixes OCD
* Fax it
* Fixes
* Version bump [TGSDeploy]
* eh
* The word comment has lost it's meaning to me
* This is a terrible name but whatever
* Support config changes
* This is part of the code so it belongs with the code
* ExportService now has a return value
* Copying of the logs dir during compile for #27674
* Version bump [TGSDeploy]
* Removes some uneedful
* Moves daemon config to BYOND folder, much safer
* Fix a config comment translation miss
* Fix project settings issue
* Fix config apply button not showing up after repo clone
* Fix anchoring for Backup Tags: label
* Version Bump [TGSDeploy]
* Nudge port only listens while server is running
* Fix some instances of the control panel crashing when the service stops
* Add start menu shortcuts
* Remove the actual server
* Remove appveyor
* Fix gitignore
* And this
* Readd HTTPS_Get for now
* Readd legacy support
* Fix
* Fix this stuff
* Last thing
* Line endings
* Final touches
* Dat newline
* More stuff
* Where'd that go?
* Real final touches
* Add the system for managed global variables
* Travis ban old globals
* So you CAN inline proccall, that's neat
* Fix that
* master.dm
* Remove the hack procs
* Move InitGlobals to the proper spot
* configuration.dm
* Fix the missing pre-slash
* clockcult.dm
* This is probably for the best
* Doy
* Fix shit
* Rest of the DEFINES tree
* Fix
* Use global. for access
* Update find_references_in_globals
Always hated that proc
Whoever made it must've bee a r e a l idiot...
* __HELPERS tree
* Move global initialization to master.
Fix the declaration
* database.dm
* Dat newline
* I said DECLARATIVE order!
* Here's something you can chew on @Iamgoofball
* game_modes.dm
* Fix this
* genetics.dm
* flavor_misc.dm
* More stuff
* Do it mso's way. Keep the controllers as global
* Make master actually see it
* Fix
* Finish _globalvars/lists
* Finish the rest of the _globalvars tree
* This is weird
* Migrate the controllers
* SLOTH -> GLOB
* Lighting globals
* round_start_time -> ticker
* PAI card list -> pai SS
* record_id_num -> static
* Diseases list -> SSdisease
* More disease globals to the SS
* More disease stuff
* Emote list
* Better and better
* Bluh
* So much stuff
* Ahh
* Wires
* dview
* station_areas
* Teleportlocs
* blood_splatter_icons
* Stuff and such
* More stuff
* RAD IO
* More stuff and such
* Blob shit
* Changeling stuff
* Add "Balance" to changelogs
* Balance for changelog compiler + Auto Tagging
* Update the PR template
* hivemind_bank
* Bip
* sacrificed
* Good shit
* Better define
* More cult shit
* Devil shit
* Gang shit
* > borers
Fix shit
* Rename the define
* Nuke
* Objectives
* Sandbox
* Multiverse sword
* Announce systems
* Stuff and such
* TC con
* Airlock
* doppllllerrrrrr
* holopads
* Shut up byond you inconsistent fuck
* Sneaky fuck
* Burp
* Bip
* Fixnshit
* Port without regard
* askdlfjs;
* asdfjasoidojfi
* Protected globals and more
* SO MANY
* ajsimkvahsaoisd
* akfdsiaopwimfeoiwafaw
* gsdfigjosidjfgiosdg
* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!
* facerolll
* ASDFASDFASDF
* Removes the unused parts of dmm_suite
* WIP
* Fix quote
* asdfjauwfnkjs
* afwlunhskjfda
* asfjlaiwuefhaf
* SO CLOSE
* wwwweeeeeewwwww
* agdgmoewranwg
* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?
* Fix syntax errors
* 100 errors
* Another 100
* So many...
* Ugh
* More shit
* kilme
* Stuuuuuufffff
* ajrgmrlshio;djfa;sdkl
* jkbhkhjbmjvjmh
* soi soi soi
* butt
* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING
* lllllllllllllllllllllllllllllllllllllllllll
* afsdijfiawhnflnjhnwsdfs
* yugykihlugk,kj
* time to go
* STUFFF!!!
* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!
* ngoaijdjlfkamsdlkf
* Break time
* aufjsdklfalsjfi
* CONTROL KAY AND PRAY
* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* Goteem
* Fix testing mode
* This does not belong in this PR
* Convert it to a controller
* Eh, fuck this option
* Revert controllerization Ill do it some other time
* Fix
* Working controllerization
* FOR THE LOVE OF CHRIST PROTECT THE LOGS
* Protect admins and deadmins
* Use the inbuilt proc
* Dynamic map loading prototype
* Get the title screen working
* Fixes the random pod bugs
* map configs
* Add back the asteroid
* Ignore the rotate file
* Fix some shit
* More shit fixes
* Babby's first json
* Cyberboss confirmed shitcoder
* Makes map rotation great again
* Moves the map defines
* Delete tgstation2.dm
* Convert runtimestation
* Convert PubbyStation
* Convert OmegaStation
* Convert Metastation
* Convert Delta Station
* Lol file extensions
* Reee line endings
* Take out the trash
* Fix loadallmaps.dm
* Deltaassssssstation?
* Fix travis
* Did I ASK you to change the line endings?
* Remove votable maps
* Cleanup
* Previous config. Load configs in New. Fix splash
* Fix this
* More generic minetype
* STOP TOUCHING THE LINE ENDINGS!!!
* Add some flexibility to /obj/screen/splash
* Fix the shit
* Update gitignore
* Smooth transition from last map
* Better check
* Missed this map rotate check
* Remove these checks too
* Prep for a future request by @kevinz000
* Fix z2 line endings
* Solution for custom .dms
* Rename some things, trim some fat
* Fixes default map_config
* Remove stale comment
* Delete the previous config after loading
* Don't try to open a non-existent file
* Delete the old rotator script
* And references to it
* Line endings
* More line endings
* Del checks from when m-config may have not existed
* LINE ENDINGS
* Update the default map config
* Map load error checking for what it's worth
* Small cleanup
* For case sensitive
* File systems
* Strip maprotate stuff from build script
* Spruce up the _maps tree. Compile some empty space
* Make travis simpler
* LINEARU ENDARU!!!
* tgstation TWO!!!
* Lowercase mine type
* Dummy dm's for testmerging
* Fixes job ordering
* If ghosts wanna watch the map load so be it
* Let them know what's going on
* Fixes z-transitions
* Optimize z expansion further
* Remove this old var
* Fix wiznerd teleportation
* Rmove butt
* Does the thing
* Moved temp configs to the data dir
* Un-touch gitignore
* Forgot templates.dm
* Forgot to include the includer
* Fair enough
* SILENCE IMBECILE!
* @Cyberboss still a fuckboi
* Speed things up a bit
* Fix a potential bug with the error message
* Whatever
* Add github repo id to config
* Makes sure testmerge has no nulls
* Enables downloading of PR details to revdata
* Add PR details to testmerge messages
* Fix some things
* user -> org
* Quotes
* FUCKING BYOND
* Something that sorta works
* Sanitization
* Thats the field I wanted.
* Less >
* Further sanitization
* The copypasta was real
* Remove duplicate PR lines
* Once more into the breach lads
* Fix the shit
* REEEE
* Extra error checks
* Remove dupe command logging
* Fix another line break
* Logging and shitfixes
* Revert "Remove dupe command logging"
This reverts commit 8d74d098aa74310626b9cc27c56bc163421b12ac.
* Use wget instead?
* Refactor into proc
* Security
* More security
* I can't spell
* UNIX memes
* Ports paradise error handler, with in game runtime viewer!
* Changes to the old runtime error and removes inerror reference
* Oops
* Adds a wrapper for world.log so it displays both in the runtime diary and in DD window