Commit Graph

103 Commits

Author SHA1 Message Date
kevinz000
10d846022a [READY]MultiZ stuff - tile atmos, movement backend, falling backend, etc etc - Electric boogaloo (#40428)
Basic multiZ mob movement procs (Observers can always move)
Open space, showing what things are below it, and everything that entails. No complex support for dynamic generation just yet.
Decide how openspace should look :/

    Atoms falling through open space (NO MOB SUPPORT/DAMAGE/ANYTHING YET.)

//CANCELLED FOR ANOTHER PR - [ ] Being able to see upwards? Downwards is going to be handled by open space.

MultiZ tile atmospherics - EDIT: Working demo! https://puu.sh/B7mUs/3f6274740f.mp4
Bugtest the heck out of this trainwreck.
2018-12-11 22:09:59 +13:00
Jordan Brown
bd7c22dda9 Moves TgsInitializationsComplete call to immediately after world/New() (#39771)
* Moves TgsInitializationsComplete call to immediately after world/New()

* Subsystem PreInit data directory audit

* world/New data directory audit

* Needful here too

* Remove SS_NO_INIT from SStitle

* Don't create banlist.bdb for SQL banning

* Stop creating legacy notes file

* Moves iconCache from data to tmp
2018-09-15 21:34:14 +12:00
Jordan Brown
575d098944 Update DMAPI to version 3.2.1.0 (#37429)
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()
2018-05-09 14:33:07 +12:00
Jordan Brown
b086b58dc3 Restarting the controller no longer resets the config 2018-03-28 13:41:16 -05:00
Kyle Spier-Swenson
8855194aae Random micro optimization to the mc I thought of while looking at something else (#36352)
We can save the second ss_flags access by using bitflag ma~~th~~gic
2018-03-13 06:32:18 -04:00
Kyle Spier-Swenson
b3b6ff2edd The punisher no longer punishes ticker subsystems 2018-01-25 18:55:52 -08:00
Jordan Brown
52872cd477 Forces test run to run with a set random seed (#34912) 2018-01-24 20:27:21 -05:00
Jordan Brown
015258d01c Config dir again except this time it works (#34606)
* Revert "Revert "Fix config_dir usage (#34469)""

* Make config exist before world/New but not load it until then
2018-01-21 19:32:12 +01:00
Jordan Brown
bf7938cfdf Adds test run mode. Fails travis if it fails (#34198)
* Adds test run

* Add OVERRIDE_LOG_DIRECTORY_PARAMETER

* Fails travis if a test run fails

* Fix travis looping

* Move the unit tests behind a define

* Fix various test run things

* Remove the DEBUG check because that's just you shooting yourself in the foot

* Adds readability spacing. Makes RunUnitTests a generic proc

* Remove unit tests
2018-01-19 11:53:26 -05:00
Jordan Brown
fd181a9f45 Adds random seed feedback (#33708)
* Master now sets rand_seed

* Blackbox now records Master.random_seed
2017-12-25 20:04:56 -05:00
Emmett Gaines
25080ff2c4 defines math (#33498) 2017-12-17 11:02:11 -05:00
Emmett Gaines
7c69cdcb8a Revert math (#33059)
* Revert "all this wrapping and it's not even christmas (#33035)"

This reverts commit faaf151580.

* Revert "fuck me for forgetting to graph this one"

This reverts commit 45d7acea2f.

* Revert "defines math"

This reverts commit 2817a1737b.
2017-11-23 20:59:52 -05:00
ninjanomnom
2817a1737b defines math 2017-11-22 17:36:58 -05:00
Jordan Brown
73fbac36d7 Adds a config option to change world.sleep_offline (#32505)
* Adds a config option to change world.sleep_offline

* Runlevel has no space
2017-11-09 00:44:49 -06:00
Jordan Brown
d95865656f Logs subsystem shutdowns (#31951) 2017-10-21 16:27:00 -02:00
MrStonedOne
c8bb13d7c2 In which the stoner one gets stoned and tries to address tick contention... again
Tick contention is when the mc, sleep()/spawns(), and byond internal processing fight each other for game tick time. Usually in an unproductive way that wastes cpu cycles and reduces the effective amount of game tick to go around.

Tweaked the anti-tick contention heuristics of the MC a touch.

Fixed an incorrect operator in the mc's anti-tick contention heuristics causing it to apply in times of no lag rather then times of lag.

The mc's anti-tick contention heuristics now plays better with the high pop processing mode.

We no longer reserve the tail end of a tick for the mc to have if the mc doesn't plan to run next tick because of high pop mode or anti-tick contention heuristics.

stoplag() can now be given an initial delay allowing it to act like a smarter sleep (in that it sleeps for longer if the server is overwhelmed.

All short sleeps that only existed for performance reason and had no game play, visual/audio, or balance reasons behind their timing were converted to stoplag().
2017-10-09 01:21:43 -07:00
MrStonedOne
7b7a4ca287 High pop reduced MC processing mode.
The logic behind this is that at higher populations, byond ends up needing to do more at the end of the tick to update clients, that the mc and traditional sleep timers end up fighting for a very small amount of time left.
Increasing the MC's sleep time means its wakes up sooner in the tick. So it has more time to do things, even if they don't happen as often, and leaving every other tick free allows for sleeping CHECK_TICK task to wake up without finding the MC left them very little time to do things.

Admins have been regularly manually doing this by varediting the processing variable to 2, that i figured we should automate it.

for /tg/, i plan on raising the player count a bit, but they make decent defaults for the avg server.
2017-10-06 00:34:09 -07:00
Jordan Brown
4178c209f1 Configuration datum refactor (#30763)
* 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
2017-09-29 15:36:51 +13:00
shizcalev
4f5658cfbb Cleaned up some decimal values. 2017-09-14 12:50:06 -04:00
Jordan Brown
30573dc6f1 Adds defines for world.tick_usage (#30184)
* Add tick_usage define

* Move tick.dm -> _tick.dm

* Add TICK_USAGE_REAL define

* Add comments

* Replace all instances of tick usage with appropriate define
2017-08-30 10:09:24 +12:00
Jordan Brown
3f1a50bf1b Subsystem PreInit() now respects init_order (#30092)
* Subsystem PreInit() now respects init_order

* Reh

* Yeah just nevemind then

* Update master.dm
2017-08-25 12:42:46 +02:00
Jordan Brown
27f05467ef Fixes subsystem MC crash tracking 2017-08-01 16:11:14 -04:00
ShizCalev
59ef81245b Changes some 1s and 0s to TRUE and FALSE (#29144) 2017-07-10 10:31:34 -04:00
Cyberboss
7590e0aa73 Fixes full controller recovery not restoring appropriate runlevel 2017-05-23 09:33:24 -04:00
Leo
e3a34e1b4e Merge pull request #27523 from Cyberboss/MasterStatic
Makes global master vars static
2017-05-23 00:12:49 -03:00
Cyberboss
fab23038fd Makes global master vars static 2017-05-21 18:59:43 -04:00
Cyberboss
e553d4423b Fixes Master/Recover not restoring previous runlevel 2017-05-21 17:49:13 -04:00
Cyberboss
ee404b2170 World.dm Refactor (#27268)
* Cleanup world/New

* Moves some things from OnReboot SS Shutdowns

* Move mode handling procs to ticker

* Moves delayed reboot to ticker
Cleans up round end sound setting
Splits round end animation between SStitle and SSticker

* Moves PR announcement to where it can use the define

* Clean this bit up

* Move out datacore Initialization

* Fix some stuff

* Fix this for

* Different PR

* Gives admins reboot options

* Make it smaller
2017-05-18 21:53:46 +10:00
coiax
f1f5149e2e Fixes a bug where shuttles would not function (#27338)
* Fixes a bug where shuttles would not function

Okay, so Cyberboss walked me through this, I've tested it, and it fixes
shuttles working, it sets the master controller runlevel to 3, like it's
supposed to?

I don't really know that much about how this actually works internally.
But it does fix the bug.

* Compiling

* RIP softreset
2017-05-16 23:18:27 +02:00
oranges
0300f8540e Merge pull request #27132 from Cyberboss/runlevels
MC Runlevels
2017-05-16 09:03:34 +12:00
MrStonedOne
c9fd93c154 The Punisher now also delays the next fire of subsystems that overrun.
Because of how this is ends up being calculated, this will almost never actually kick in, but sometimes subsystems like garbage will overrun into mutiple ticks, so delaying their next fire is needed.
2017-05-12 15:36:13 -07:00
MrStonedOne
49ded39314 The punisher!
The mc will now punish subsystems that overrun their tick allotment with less allotment in later fires.
2017-05-12 13:42:41 -07:00
Cyberboss
1c6bd654b7 Make runlevels bitflags 2017-05-11 10:04:19 -04:00
Cyberboss
a0a27219b6 MC Runlevels 2017-05-10 16:05:37 -04:00
Cyberboss
75bdbc02bb Cleans up an MC statement 2017-05-10 15:59:24 -04:00
Cyberboss
6c6fc719ec Refactors roundstart checks slightly (#26131)
* Refactors roundstart checks slightly

* Fix
2017-04-27 10:05:40 +12:00
Cyberboss
e8567cd7c9 Fix 2017-04-16 17:04:39 -04:00
Cyberboss
652a655e29 Standardizes subsystem Shutdown order 2017-04-14 19:04:32 -04:00
Cyberboss
40b8f011fe Adds a comment on init order because it can get confusing (#26132) 2017-04-13 16:24:38 -06:00
Cyberboss
d3b7e55ddf Config loading refactor (#25943)
* Config now inits before world

* Cleans up the third person referencing in config loading

* More better

* Remove this

* Put it here
2017-04-13 11:08:04 +12:00
Cyberboss
9e1ef0ffe2 Global variable wrappers (#25325)
* 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
2017-04-06 23:26:13 -06:00
Cyberboss
c1ba8489eb Better repeated MC crash handling (#25813)
* Better repeated crash handling

* Try recovering first
2017-04-06 13:42:57 +12:00
Cyberboss
3c9b0b152b Refactors statclick a bit (#25102) 2017-03-17 13:29:25 -03:00
Lzimann
5a618297ce Replaces the default output with the to_chat wrapper. 2017-03-10 01:32:05 -03:00
Cyberboss
31ee152489 Repaths subsystem to controller/subsystem (#24624)
* Repaths subsystem to controller/subsystem

* Fix the shit
2017-03-08 22:05:45 +01:00
Kyle Spier-Swenson
2c1db7eba4 Fixes some midnight rollover errors in the mc (#24486)
* Update subsystem.dm

* Update master.dm

* that should stay time of day
2017-02-28 09:58:12 +01:00
Cyberboss
ccf3e74074 Cleans up new lobby timing (#24250)
* Cleans up new lobby timing

* Changes
2017-02-22 14:41:12 +01:00
Cyberboss
1365ab99d8 Merges map templates and map loader (#24140)
* Reorganize the mapping code

* Finish this up

* Reee line endings

* FUCKING LINE ENDINGS

* LINARU ENDARU

* >PLS SET REPO LINE ENDINGS

* Comments

* Hoisted by my own travis.yml changes
2017-02-19 16:55:02 +13:00
Mervill
60e6816f43 Fixes total initialization time not being displayed 2017-02-17 14:19:44 -08:00
Cyberboss
0eef753fd4 Shows the total initialization time 2017-02-15 11:19:20 -05:00