Commit Graph

975 Commits

Author SHA1 Message Date
PsiOmegaDelta
7b47590645 Port of @PsiOmegaDelta's Baystation12/Baystation12#16820
Ports tg's garbage collector subsystem and Destroy() returning qdel hints.
2017-06-10 22:41:51 -04:00
Leshana
82e6049821 Actually hooks up the StonedMC to run its subsystems in Polaris
* Hooks up informing Master the gameticker actually starts and stops the round subsystems will actually fire! What ho!
* We should convert the gameticker as an MC subsystem someday, and probably completely rewrite it while we are at it becuase it is crazy.  But this should bridge the gap until then.
2017-06-10 19:01:58 -04:00
Leshana
fb92653ac9 Ports "Makes global master vars static"
* https://github.com/tgstation/tgstation/pull/27523
2017-06-10 19:01:58 -04:00
Leshana
6a8abd4f80 Ports tg improvements in StonedMC subsystem
* Ports /tg StonedMC Enhancement - Runlevels - Lets services more precicely define when they want to fire - in the lobby, during game, only after, etc. Includes bugfixes from:
  * https://github.com/tgstation/tgstation/pull/27132
  * https://github.com/tgstation/tgstation/pull/27338
  * https://github.com/tgstation/tgstation/pull/27576
  * https://github.com/tgstation/tgstation/pull/27519
* Ports Standardizes subsystem Shutdown order - https://github.com/tgstation/tgstation/pull/26228
2017-06-10 19:01:58 -04:00
Leshana
82e90a206c Ports "Better repeated MC crash handling"
* From https://github.com/tgstation/tgstation/pull/25813
* If the MC crashes: The problem subsystem will be rebooted on its 2nd strike and disabled on its third.
2017-06-10 19:01:58 -04:00
Leshana
69a50ec225 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-20170609
# Conflicts:
#	code/_macros.dm
#	code/controllers/master_controller.dm
#	vorestation.dme
2017-06-09 22:54:16 -04:00
Yoshax
411e442fdd Increases the radiation protection modifiers 2017-06-10 00:23:52 +01:00
Leshana
60ffe4b00f Ports garbage collector improvements and bugfixes from tg
* Writes a log of qdel() problems in a condensed format at the end of each round - tgstation/tgstation/pull/26135
* Moves hard dels into their own proc so that it can be profiled more easily, and uses it for the various types.  Includes bugfixes too
  * https://github.com/tgstation/tgstation/pull/26210
  * https://github.com/tgstation/tgstation/pull/26570
* Fix a bug with qdeling non-datums - https://github.com/tgstation/tgstation/pull/27434
* Fix typo - https://github.com/tgstation/tgstation/pull/27730
2017-06-08 00:11:59 -04:00
Leshana
d6b68dabdb Standardize MC subsystem initialization boilerplate
* Based on https://github.com/tgstation/tgstation/pull/25386
* Create macro for defining new subsystem types.
* Create PreInit proc to handle setup that needs to be done before the map loads
* Rename garbage_controller subsystem to garbage so it matches its global SSgarbage variable name.
2017-06-07 23:23:46 -04:00
Leshana
e48b548f2b More and more Destroy() cleanups all across the board - Return qdel hints. 2017-06-05 23:01:41 -04:00
Leshana
d4ebcac3f6 Update radiation system for the new garbage collector. 2017-06-05 22:10:07 -04:00
PsiOmegaDelta
ebe5cc916d Port of @PsiOmegaDelta's Baystation12/Baystation12#16820
Ports tg's garbage collector subsystem and Destroy() returning qdel hints.
2017-06-05 22:10:06 -04:00
Anewbe
b9007d11a8 Merge pull request #3493 from VOREStation/just-stonedmc
Port of StonedMC master controller framework
2017-06-04 16:15:13 -05:00
Leshana
b17fb86721 Tweaks Statpanel and System Initialization 2017-06-01 21:42:08 -04:00
Leshana
197a648795 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-2017-06-01
# Conflicts:
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/multiz/movement.dm
#	code/modules/projectiles/ammunition/magazines.dm
2017-06-01 17:27:00 -04:00
Leshana
90dff0ae63 Ports /tg's StonedMC Subsystem from Baystation12
* Partial port of @PsiOmegaDelta's https://github.com/Baystation12/Baystation12/pull/16820
* Only ports the StonedMC changes, not the garbage collector (forthcoming in future)
2017-05-30 21:00:37 -04:00
Leshana
2c8df87899 Tweak to Radiation Optimization
* Optimized garbage collection of radiation sources until we get qdel() hints.
* Made the RADIATION_LOWER_LIMIT configurable (option for people to save some cpu time)
* Added some comments and broke the proccessor into separate procs for profiling purposes
* Added a changelog.
2017-05-30 13:55:53 -04:00
Leshana
34c73dab69 Optimization/Rewrite of Radiation Controller
* The performance of the radiation controller as-is was not fast enough for inclusion in production servers, but it has some nice featuers, so rewrote it to be more performant.
* Instead of storing the radiation strength for every turf, we only store the sources of radiation, and calculate the strength only for mobs who might be in range.
   * Old method was ray-tracing to every turf in range whether anything was there to be irradiated or not.  Could be hundreds of turfs.  New method only lazily calcualtes strength at a turf if we actually need to know it.   Often times this is zero turfs if nobody is standing in engineering.
  * Removed the automatic processing of objects with "rad_power" set.  Objects are responsible for calling the repository to create/update their radiation sources.   Saves some extra overhead that in practice was redundant with other process controllers.
  * Also tweaked to be more respectful of qdel'd objects and added some comments.
2017-05-25 18:43:56 -04:00
Ben Reeve
6185bbd212 Unified radiation system 2017-05-22 16:24:34 +01:00
Leshana
a8c9bb786a Workaround BYOND bug by switching floor decals from turf overlays to a magic overlay object.
* New atom to hold a turf's decal overlays instead of the turf itself.
* Change floor_decal initialization to use it instead, and change other decal/overlay interaction procs to use it instead.
* Add floor decal initialization to master controller to do them in one fel swoop instead of nickel and diming.
* Stop area init from updating open space turfs; let the open space controller do it.
2017-05-18 19:31:15 -04:00
Arokha Sieyes
35bcf1602a Tether Shuttle Crashing
Woooooo
2017-05-17 01:12:03 -04:00
Leshana
5ae26332fa Merge branch 'master' into aro-tether-wip
# Conflicts:
#	code/ZAS/_docs.dm
#	code/game/area/areas.dm
#	code/game/objects/explosion.dm
#	code/modules/holodeck/HolodeckControl.dm
#	code/modules/mob/living/say.dm
2017-05-16 00:26:32 -04:00
Arokha Sieyes
2f918f1041 Make ZAS setup and init delays work
They didn't work due to bay differences in UNIT_TESTING activation defines
2017-05-15 01:34:45 -04:00
Arokha Sieyes
a02cc6f22d Master controller sleeps
Allows the server to start faster and people to join faster.
2017-05-10 21:31:16 -04:00
Leshana
4fbfa7ee37 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-2017-05-08
# Conflicts:
#	code/modules/mob/dead/observer/observer.dm
#	code/modules/mob/living/carbon/human/life.dm
#	code/modules/mob/mob_defines.dm
#	html/changelogs/.all_changelog.yml
#	vorestation.dme
2017-05-08 21:07:45 -04:00
Anewbe
42fe5d9ed6 Merge pull request #3412 from VOREStation/pool-closed
Removes the datum pool, as it is not performant.
2017-05-08 17:21:24 -05:00
Leshana
e846fc98f7 Map fixes and shuttle controllers for the antag shuttles.
-Arrival airlocks have no controller/default bolts
-Backup atmospherics on the space station has no filter discharge if you arent venting to space - it filters O2 and N2, and no outlet for anything else
-Medical maintenance APC is unpowered, next to Chemistry and Psychiatry
-Resleeving lab window tint doesnt work
-The stairs just outside the warden's office, on the lower level, have no guard rail/window
2017-05-07 17:36:24 -04:00
Leshana
ad8789dc8c Make the multi-z explosion strength scalar configurable.
* Its much easier to test out and decide what explosion scalar is nice if you can configure it.
* As an added bonus, by setting it to zero this lets you disable multi-z explosions altogether without turning off all of multi-z.
2017-05-04 21:14:42 -04:00
Leshana
347e759b10 Make the multi-z explosion strength scalar configurable.
* Its much easier to test out and decide what explosion scalar is nice if you can configure it.
* As an added bonus, by setting it to zero this lets you disable multi-z explosions altogether without turning off all of multi-z.
2017-05-04 20:27:15 -04:00
Leshana
44ff1a70c6 Removes the datum pool, as it is not performant.
* Creating new objects is cheap, in fact comparable to the cost of getting it out of the pool, so it doesn't help there.
* Placing items in the pool is far more expensive than letting them garbage collect due to the resetting of vars and such.
2017-05-04 01:58:33 -04:00
Leshana
31c09b85a6 Added the Tether Backup Shuttle 2017-05-01 20:30:43 -04:00
Arokha Sieyes
055c998f82 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into aro-sync
# Conflicts:
#	code/modules/integrated_electronics/subtypes/reagents.dm
#	code/modules/mob/living/carbon/human/species/station/station.dm
#	code/modules/organs/organ_external.dm
#	code/modules/ventcrawl/ventcrawl.dm
#	html/changelogs/.all_changelog.yml
2017-04-25 15:04:54 -04:00
Anewbe
0207066256 Merge pull request #3332 from VOREStation/aro-pol-planets
Controllerized Planets
2017-04-22 09:36:04 -05:00
Arokha Sieyes
33c28bbcf3 Allows turf unalloc in planets 2017-04-18 22:03:04 -04:00
Arokha Sieyes
d00c5941ca Controllerized Planets
Controller with deferrals and SCHECKs to be specific. Won't lag while updating the sun, weather, or temperature.

Also moved some vars around. Namely the planet walls are stored on the planet, not in the weather_holder.

Planets now have their own turfs, the controller 'gives' them to the planets each cycle if there are any unallocated turfs in the global lists, to avoid iterating over other planets' turfs if you have more than one, then cuts the lists if you were crazy and some turf added some invalid type. This saves us type-checking in the for() loops later to make them crunch faster. The former operation should only happen once at the start of the game (and maybe very rarely when turfs are added/removed from a map during the game).

With regards to the temperature updates, rebuilding the zone entirely is an intensive operation. Instead we can use this new cheaty proc to do it from over here. ZAS code outside ZAS oh noooo. Well, the option is to snowflake this case into ZAS which is maybe worse?

Only downside to all this is that if you manually set weather and time it might take between 1-60 seconds for the controller to get around to checking if you wanted to update it. That's not that big a deal. If you really want you can now debug that controller and call doWork on it.
2017-04-18 20:08:22 -04:00
Leshana
70a32fcfc6 Adds admin verbs for debugging process controllers
* Adds a verb for debugging any of the running process controllers.  Unlike the old debug controller verb, this one is not hard coded, so any present and future processes will be included.  Requires R_DEBUG (and R_ADMIN if in paranoid mode)
* Adds a verb for debugging the process scheduler itself.  This is hidden by default until debug verbs are shown.   Requires R_DEBUG (and R_ADMIN if in paranoid mode)
2017-04-18 19:04:38 -04:00
Leshana
9a7dda1ad1 Implements footstep sound system and adds sounds to various floor types.
* Adds system for turfs to have "footstep sounds" that play when someone walks over them.
* Adds system for floor types (the kind of turfs where you can put tiles on them) to support the footstep sounds.
* Adds sounds to plating, tiles, wood, and carpet floor types.
* Footstep sound system is configurable in game_options.txt, it can be turned off completely or the volume adjusted.
2017-04-18 11:33:44 -04:00
Leshana
2e59e24dca Merge branch 'master' of ../Polaris into polaris-sync 2017-04-16 20:58:40 -04:00
Neerti
22c329e906 Merge pull request #3305 from VOREStation/aro-pol-planets
Make planets more generic
2017-04-16 01:30:55 -04:00
Leshana
7a4dc4bf79 Merge remote-tracking branch 'polaris/master' into polaris-sync
# Conflicts:
#	html/changelogs/.all_changelog.yml
#	maps/RandomZLevels/zresearchlabs.dmm
2017-04-15 23:14:32 -05:00
Arokha Sieyes
aaeae6695a Make planets more generic
So that Sif doesn't have to be the only one!
2017-04-14 21:36:48 -04:00
Leshana
e8af4afc88 Port tg/paradise/good soft-edge lighting
Ports https://github.com/ParadiseSS13/Paradise/pull/6161
Its merged in nearly verbatim as far as the lighting module goes.
Changes outside the lighting module are merged based on our codebase.
2017-04-12 19:11:45 -04:00
Neerti
75cc189723 Merge pull request #3271 from VOREStation/aro-pol-panic
Quick & Dirty Panic Bunker Port
2017-04-11 21:55:59 -04:00
Neerti
f24a252a8e Merge pull request #3281 from VOREStation/fix-scheduled-task-controller
Fix null pointer runtime in scheduled task controller.
2017-04-11 21:54:37 -04:00
Arokha Sieyes
ebb2bf9675 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into aro-sync2 2017-04-11 21:29:07 -04:00
Leshana
4f3029fcb2 Fix null pointer runtime in scheduled task controller.
* If the "scheduler" controller is restarted by the process scheduler for
any reason, it will start throwing runtimes every status panel update
because the new replacement instance doesn't initialize its list of
schedule tasks.
* Fix that by copying over the unfinished list from the old instance, but
doing some safety checks to make sure it doesn't copy over bad stuff.
2017-04-11 19:16:35 -04:00
Arokha Sieyes
66327aecc7 Quick & Dirty Panic Bunker Port
Tested on our server, works. Doesn't work if you don't have a DB (how would it?).
2017-04-11 00:13:43 -04:00
Krausus
b183ce3ad2 Process deferral and profiling improvements
* Merges Krausus's https://github.com/ParadiseSS13/Paradise/pull/5472 from Paradise
2017-04-10 22:55:02 -04:00
Arokha Sieyes
b3d652fa50 Quick & Dirty Panic Bunker Port
Should work! Should.
2017-04-10 22:38:58 -04:00
Leshana
6eee55c983 Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync
# Conflicts:
#	code/modules/client/preference_setup/general/03_body.dm
#	code/modules/mob/new_player/sprite_accessories.dm
#	html/changelogs/.all_changelog.yml
#	icons/mob/human_races/markings.dmi
#	vorestation.dme
2017-04-01 19:19:42 -04:00