Commit Graph

60 Commits

Author SHA1 Message Date
Couls
e7f99e3b8b Browser Status Panel (#53112) 2020-08-27 15:28:03 -07:00
vuonojenmustaturska
01aef8ee82 small cleanup 2019-05-05 05:37:21 +03:00
Francesco
40d2a68f56 Make a lot of subsystems' Initialize return ..() (#39955)
Subsystem Initialize has a return value, this makes all the subsystems actually
return it, too.
2018-08-31 19:01:46 -07:00
AnturK
f7cf151e92 Fixes loading zlevels with static lighting. (#38365)
* Fixes loading zlevels with static lighting.

* Actually this whole part is unnecessary now because change turf handles the change properly now.

* Correct
2018-06-10 02:54:53 -07:00
Emmett Gaines
94a7608995 adds a parent level subsystem initialized var (#33456) 2017-12-13 22:11:21 -05:00
AnturK
1b55446f2d Fixes lighting object initialization on new zlevels. 2017-10-05 09:13:36 +02: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
Cyberboss
6b5526879b Fixes SSlighting Recovery 2017-05-23 19:36:48 -04:00
MrStonedOne
2ed266d506 More /vg/lighting tweaks
Rather then remove the light from all tiles, then re-add the light to all tiles, we just go thru each tile and diff the light level from the last value we added to it. (since this is tracked)
This cut the proc calls for updating lights in half.

Lighting objects now default to full brite rather then full dark so shuttles aren't as immersion breaking when they transit.

Made lighting more agressive about clearing empty lists.
2017-05-06 01:50:19 -07:00
Jack Edge
a76d4374c1 Moves init_order to defines, moves SSevents above ticker. 2017-04-22 22:08:31 +01:00
oranges
02bcec36d1 Merge pull request #26324 from Cyberboss/MC_SPLIT_TICK
Adds defines for evenly splitting up a subsystem's time to fire
2017-04-20 09:47:18 +12:00
Joan Lung
17f1536f05 Merge pull request #26322 from Cyberboss/LightingGC
Normalizes how some lighting things GC
2017-04-18 19:02:11 -04:00
Cyberboss
2e41fc6ef3 Adds defines for evenly splitting up a subsystem's time to fire 2017-04-17 13:50:22 -04:00
Cyberboss
0c5011934f Makes this use the right list 2017-04-17 13:37:43 -04:00
Cyberboss
72d0271f94 Normalizes how some lighting things GC 2017-04-17 13:15:39 -04: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
fb596bcdb3 _DEF 2017-03-22 14:52:21 -04:00
Cyberboss
7e14ec75fc Normalizes subsystem definitions 2017-03-22 11:50:46 -04:00
Cyberboss
90ada23ae1 Fixes SSlighting locking up (#25276)
* Fix the ticklimit bug
2017-03-20 11:01:08 -03:00
Leo
d13c00f17b Merge pull request #25148 from Cyberboss/patch-35
Makes SSlighting fully initialize
2017-03-17 22:02:40 -03:00
Cyberboss
5cee0d01a0 Makes SSlighting fully initialize 2017-03-15 18:12:56 -04:00
Kyle Spier-Swenson
d9ecddd4d4 Remove low priority from lighting
Since we are only running it every two ticks now it should get equal parts priority as everything else
2017-03-15 11:25:22 -07:00
Kyle Spier-Swenson
99002e25a3 Fixes lighting of pixel shifted objects and reverts the hacky memleak fix + other lighting fixes (#24963)
* Revert "Lighting micro optimizations and fixes (#24939)"

This reverts commit 78bbbfe20a.

* vg refactor stage 1

* Fix runtime in get_turf_pixel

* fix lighting on turfs

* Fix certain things reading light levels wrong.

* Made SS faster/better by making it split its tick allotment up between it's 3 tasks

* istypeless loops @pjb3005

/proc/typed_loop    6.826        6.830        6.858       190761
/proc/typeless_loop 5.582        5.586        5.620       190435

* lazy init lists
2017-03-14 19:27:23 +01:00
Cyberboss
04c28abbd9 Moves lighting SS to last in init order (#24822) 2017-03-10 23:14:31 +01:00
Cheridan
86c3d624c7 Merge pull request #24795 from MrStonedOne/patch-329
Lighting runs every two ticks.
2017-03-09 12:31:39 -06: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
44acb45acd Lighting runs every two ticks.
This has the added benefit of making it more likely lighting moves when the person's tile glide has them at their new tile rather then before they get there.
2017-03-07 09:27:43 -08:00
PJB3005
64db72a150 Merge remote-tracking branch 'upstream/master' into rebase-to-vg 2017-03-04 16:31:55 +01:00
Cyberboss
3ad9be1555 Subsystems are now ordered by name in MC tab 2017-03-02 14:45:40 -05:00
Pieter-Jan Briers
b5b93e51f7 Merge remote-tracking branch 'upstream/master' into rebase-to-vg 2017-02-18 16:52:07 +01:00
Leo
9c6803ae19 Ports Paradise error handler, with in game runtime viewer! (#24036)
* 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
2017-02-14 11:39:31 +11:00
PJB3005
3c8b98a3aa 9/11 2017-02-08 15:07:58 +01:00
Cyberboss
75d816eeb9 Makes SSlighting initialization more responsive 2017-01-19 14:08:40 -05:00
PJB3005
e2386a8bd8 Have some code 2017-01-17 22:54:05 +01:00
PJB3005
7356e80484 hey that should be everything except making it compile. 2017-01-17 22:08:27 +01:00
Kyle Spier-Swenson
e768cf195e Makes lighting more responsive. 2017-01-08 00:28:49 -08:00
FlavoredCactus
8c8e5d6e91 Fixes lighting hanging up with changed turfs (#19060) 2016-07-01 19:59:34 +12:00
Kyle Spier-Swenson
235b79fb5a StonedMC, the bastard love child of GoonPS and CarnMC (#17987)
Basically, they key difference between StonedMC and CarnMC is that when multiple ticks want to run at the same byond tick, we divvy up the tick between the subsystems, rather then allow one subsystem to hog it all.

The key difference between StonedMC and GoonPS is that we allow the subsystems to tell us how to divvy up the tick using flags and priority.

The new SS_ flags allows us to select behaviors that used to be piggybacked as side effects of dynamic wait or default but sometimes unneeded behavior.

Dynamic wait is 100% gone, lower priority and SS_BACKGROUND are better more refined ways of doing this when combined with MC_TICK_CHECK

I have by design never looked at the inners of goonPS, so this is all original code but I know it uses two loops because of comments by goon devs on reddit threads, that design didn't make sense before, but when I can tell a SS how much of a byond tick it is allowed to have, knowing how many need to run this tick is helpful I also know a bit more about how it works from piecing together comments in #vgstation.

Detailed list of changes:

Subsystems now have flags, allowing fine grain control over things like rather or not it processes, inits, rather it's wait is how long between runs (post run timing) or how long between starts, and rather or not late fires should cause the next fire to be earlier.

Mc now has two loops One loop handles queuing shit, one loop handles running shit.

MC now splits up tick allotment rather than first come first serve Subsystems can even request a bigger share using higher priorities. (It will even resume subsystems it paused if other subsystems hadn't used as much as it predicted they might need)

Default fps is now 20 This is related enough to the MC and it's a change that's really long since over due

All code oddities are most likely to be necessities to lower overhead on the mc since it runs every tick
2016-06-16 18:01:16 +12:00
Kyle Spier-Swenson
0c133555e2 Makes lighting tick as fast as it can. 2016-04-01 21:29:54 -07:00
MrStonedOne
aa328e404f Adds lag check to diseases and events (and removes lighting from dwait)
lighting removed from dewait because lag checks are better for it and lag checked subsystems that are also dwait systems are given lower priority, we don't want that to happen to lighting.
2016-03-15 03:39:44 -07:00
MrStonedOne
bc8ff11f3f Lag check on initialization (and on a missed del-all proc) 2016-03-15 03:39:43 -07:00
MrStonedOne
09fb8c2b10 Explosions and singulo use spiral range (and other changes) 2016-03-15 03:39:41 -07:00
MrStonedOne
2887dc7ce0 Removes lag.
This setup allows subsystems to pause themselves until next mc fire if they are about to go over a tick, and resume on the next mc tick
It also makes it so we prioritize running subsystems we skipped because there wasn't enough time in the current tick to run them based on their avg tick usage. (as well as subsystems paused mid way thru)

Adds a macro for adding this to non-mc procs. just drop it in the loop. There is a define version as well for if checks if you want to know if you just slept to avoid lag.

This is all inside #if DM_VERSION defines, so once i test that 509 still works to compile/test this should be good to merge
2016-03-15 03:39:39 -07:00
Firecage
332bde0f4f Does the rest of the if()'s/ else's 2016-01-17 19:03:12 +02:00
Bjorn Neergaard
531e4b947f Subsystem display tweaks 2015-12-05 10:13:59 -06:00
MrStonedOne
8c755da84f Adds a way to make certain area/space areas not force 100% brightness 2015-10-31 02:30:49 -07:00
Aranclanos
6b8ab6641a Replaces the Cut() usage in the processing lists from the different controllers for a Remove() 2015-08-18 06:52:57 -03:00
MrStonedOne
08b9f6c8c6 More Dynamic wait tweaks.
I forgot a step in the algo and made it so it was decreasing in its slowdown effect with more lag, not increasing.

I've also made the -1.5 magic number in the algo configurable. its was a simple buffer of cost the subsystem is allowed to use that isn't counted against it in dwait.
2015-07-10 23:25:34 -07:00
MrPerson
e507613fbe Lighting SS speedup
Best of both worlds: No colons AND no pointless typechecking!
2015-06-22 04:09:33 -07:00
MrStonedOne
14b258c655 Tweaks MC's dynamic rate system a bit
The MC will now track the total cost of all subsytems (normalized out to a per second cost number so that subsystems that only run every 10 minutes but are costly (looking at you server tasks) aren't accounting for 90% of the number when they shouldn't.)

This is now used in the dynamic wait subsystems to ensure they slow down when other things are being lagging

This mainly means that air won't lag things if the singulo gets free.

I also tweaked the scaling curve used by the dynamic wait system so that it scales less during slight lag, but much more during higher lag times.

I added qdel to the dynamic wait subsystem with a really high scale. This didn't make sense before, because it limits its run time, but now it can scale back how often it runs when the other subsystems are being laggy. I also lowered qdel's max runtime from 2ds to 1ds, because deletes take 0.9 ds on avg, so it would end up running for 2.9ds often.

This should prevent air+singulo+qdel causing excessive amounts of lag.
2015-06-10 05:04:56 -07:00