Commit Graph

73 Commits

Author SHA1 Message Date
SkyratBot
65e74bf848 [MIRROR] Subsystems now track their avg and last tick allocations [MDB IGNORE] (#11212)
* Subsystems now track their avg and last tick allocations (#64448)

help to find a maybe bug, plus also a good metric to have on hand for figuring out contention issues

* Subsystems now track their avg and last tick allocations

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2022-02-01 23:46:43 +00:00
SkyratBot
96841e151a [MIRROR] Fix the mc getting completely fucked in the brain due to background ticker subsystems [MDB IGNORE] (#11099)
* Fix the mc getting completely fucked in the brain due to background ticker subsystems (#64500)

* Fix the mc getting completely fucked in the brain due to background ticker subsystems

* Update code/controllers/subsystem.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>

* Fix the mc getting completely fucked in the brain due to background ticker subsystems

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@ users.noreply.github.com>
2022-01-29 14:13:27 +00:00
SkyratBot
854c7ef90c [MIRROR] creates SSspeech_controller so the MC can control say() execution [MDB IGNORE] (#10256)
* creates SSspeech_controller so the MC can control say() execution

* Update mob_say.dm

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-12-25 13:44:46 +00:00
GoldenAlpharex
31b3a9331e [MIRROR] Replaced the lobby menu (with actual art) (#60953) (#7748)
* Replaced the lobby menu (with actual art) (#60953)

* a

* a

* Update new_player.dm

* Update new_player.dm

* Update new_player.dm

* a

* a

* Update new_player.dm

Co-authored-by: AMonkeyThatCodes <20987591+AMonkeyThatCodes@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-09-01 17:07:48 +01:00
SkyratBot
5170b9ecda The Failsafe can now recover from an deleted MC (#60846) (#7664)
* The Failsafe can now recover from an deleted MC
Its also more reliable and can handle a situation where its main Loop runtimes and the MC is stuck

* Reset defcon level correctly
Oops left that in from debugging the levels

* Correctly recover SSasset

* Only decrease defcon if MC creation failed
Also add some sort sleep between emergency loops

* Makes the last two emergency actions manual procs
Since they are kinda unstantable its probalby best
if only admins call these manually

Its also more reliable and can handle a situation where its main Loop runtimes and the MC is stuck
You can also now debug Master/New()

While there will most likely never be any situation where the MC is just gone its still good to know that the game can recover from such a situation
For example maybe someone messed up a SDQL query or maybe someone wanted to delete the MC to create a new one hoping the Failsafe would do so for him

Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
2021-08-20 18:53:14 +01:00
SkyratBot
8c6ea00947 [MIRROR] Properly fix postpones in the mc. (#6524)
* Properly fix postpones in the mc. (#59813)

I broke shuttles and other things by trusting queued_time.

This fixes it better, by tracking the ticks it's suppose to miss.

closes: #59805 (this doesn't actually work anymore it seems)

* Properly fix postpones in the mc.

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2021-06-25 22:14:55 +01:00
SkyratBot
7d1d0e1fad [MIRROR] Refactors most spans into span procs (#6315)
* Refactors most spans into span procs

* AA

* a

* AAAAAAAAAAAAAAAAAAAAAA

* Update species.dm

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-06-16 00:24:49 +01:00
Gandalf
0b957f39a9 Lobby UI overhaul (#4738)
* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

* aaaaa

* Update _basemap.dm

* Update new_player.dm

* Update CaveGenerator.dm

* aaaaaaaaaaaaaaaaaaaaa

* a

* aaa

* aaaa

* aaaa

* Update login.dm

* aaaaaaaaaa

* aaaaaa

* Update lobby.dm
2021-04-09 21:18:40 +01:00
SkyratBot
b332b46b65 [MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-15 15:32:02 +00:00
SkyratBot
cc67a133e5 [MIRROR] [READY] Adds station traits: Small modifiers that can randomly be chosen each round (#3132)
* [READY] Adds station traits: Small modifiers that can randomly be chosen each round

* conflicts

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-08 23:07:24 +00:00
SkyratBot
f7301a08a2 [MIRROR] Makes the atmos subprocess costs actually sane (#875)
* Merge pull request #53815 from LemonInTheDark/atmos-mc-entry

Makes the atmos subprocess costs actually sane

* Makes the atmos subprocess costs actually sane

Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
2020-09-20 00:34:52 +01:00
SkyratBot
ec09510459 Bools and returns super-pr (#53221) (#565)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-30 05:12:59 +02:00
SkyratBot
1c1ce7b055 [MIRROR] Browser Status Panel (#548)
* Browser Status Panel (#53112)

* Browser Status Panel

Co-authored-by: Couls <coul422@gmail.com>
2020-08-29 20:26:27 +01:00
SkyratBot
e8bfe6eb68 [MIRROR] [Ready] CDN browser assets! (#312)
* [Ready] CDN browser assets! (#52681)

Rewrites the asset_cache system to handle sending assets to a CDN via a webroot.

see https://github.com/MrStonedOne/tgstation/blob/asset-cdn/code/modules/asset_cache/readme.md

Fixed a lot of bugs with assets, removed some dead code.

Changes:
    Moved asset cache code to transport datums, the currently loaded one is located at SSassets.transport, asset cache calls made before the config is loaded use the simple browse_rsc transport.
    Added subsystem call for when the config loads or reloads.
    Added a webroot CDN asset transport. assets are saved to a file in a format based on the file's hash (currently md5).
    Assets that don't use get_asset_url or get_url_mappings (such as browser assets referred to by static html files like changelog.html or static css files) can be saved to browse_rsc even when in cdn asset mode by setting legacy to TRUE on the datum returned by register_assets
    Added a system for saving assets on a cdn in a hash based namespace (folder), assets within the same namespace will always be able to refer to each other by relative names. (used to allow cdn'ing font awesome without having to make something that regenerates it's css files.).
    The simple/namespaced asset cache datum helper will handle generating a namespace composed of the combined md5 of everything in the same datum, as well as registering them properly.
    Moved external resource from a snowflake loaded file to a config entry, added it to resources.txt
    To ensure the system breaks in local testing in any situation that wouldn't work in cdn mode, the simple transport will mutate the filenames of non-legacy and non-namespaced assets and return this with get_asset_url.
    Simple transport's passive send of all roundstart assets to all clients is now a config that defaults to off. this is to break race conditions during local testings from devs accidentally relying on this instead of using send() properly.

cl
refactor: Interface assets (js/css/images) can now be managed using an external webserver instead of byond's one at a time file transfer queue.
admin: Adds admin verb toggle-cdn that allows admins to disable the external webserver asset transport and revert to the old system. Useful if the webserver backing this goes down (thanks cloudflare).
config: New config file, resources.txt, (must be loaded by an $include statement from the main config)
server: The external_rsc_urls.txt config has been moved to the main config system.
/cl
Porting notes:

Interface webpages must refer to their assets (css/js/image/etc) by a generated url, or the asset must register itself as a legacy asset. The system is designed to break in localtest (on simple/legacy mode) in most situations that would break in cdn mode.

Requires latest tgui.

The webserver must set the proper CORS headers for font files or font awesome (and other fonts) won't load.

/tg/'s webserver config: https://gist.github.com/MrStonedOne/523388b2f161af832292d98a8aad0eae

* [Ready] CDN browser assets!

Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2020-08-12 11:32:37 +01:00
ShizCalev
254536072e [s] sanity checks vv_edit_var() values (#52255)
cl ShizCalev
fix: Added some sanity checking for varedit values.
/cl
* sanity checks vv_edit_var() values

* this should be an or

* one more fix
2020-07-16 10:20:41 +12:00
Iamgoofball
a3aa69701a [READY] Basically, Instant Explosions 2: The Search For More Money: Eternal: A Tail Of Two Kitties: 33 1/3 (#50594)
About The Pull Request

Extools maptick stuff is in the game. Stolen from BeeStation/BeeStation-Hornet#1119, improves performance. Requires ex-tools on the server, though.

Explosions have been refactored to do the actual exploding in a subsystem.

Credit to goon.

Here's some videos!

Why It's Good For The Game
Basically instant max-caps now.
We can now give more of a tick over to the sending of map updates

Changelog

cl Goonstation Coders, Beestation, Extools devs
refactor: Explosions have been heavily optimized.
/cl
2020-04-30 10:27:53 +12:00
Kyle Spier-Swenson
7a218d05c2 Fixes the mc giving priority to ticker subsystems (#49893)
The malformed logic here kept the mc from running all ticker subsystems first, (a functionality that i'm not even sure we need to preserve, as long as we update the docs, thoughts?)
2020-03-12 09:31:08 +13:00
Kyle Spier-Swenson
83398600c2 Fixes bugs in the mc related to combos of SS_BACKGROUND and other flags (#49848)
SS_BACKGROUND Conflicts with SS_TICKER and SS_NO_TICK_CHECK's behavior in certain ways. This fixes that breaking the mc.

SS_BACKGROUND has its own priority bracket that assumes that all remaining subsystems to run are also SS_BACKGROUND, allowing one of these to run when running SS_TICKER subsystems would cause the MC to assume all subsystems that run after it that tick were background subsystems, breaking the math of how much time to allocate the subsystem.

When delaying a run of a SS_NO_TICK_CHECK subsystem for lack of time, the MC will modify it's priority so it runs sooner next tick, if this happened on a background SS_NO_TICK_CHECK subsystem, it would update the wrong running total and desync the running total of the priority of all queued subsystem from the actual sum of those subsystem's priority.
2020-03-11 09:38:23 +13:00
Kyle Spier-Swenson
600b434a66 DOC the subsystem variables (#49718)
* DOC the subsystem variables

* Apply suggestions from code review
2020-03-06 12:58:09 +08:00
Emmett Gaines
33458640dc Add lints for "new" override prevention feature (#49672)
* Add lints for "new" override prevention feature

* bEsPoKe

* i'm an idiot

* arg index
2020-03-05 10:22:19 -05:00
Rob Bailey
966638bf32 Updated the quality of Title2 (Robocop.mp3) (#43461)
* updated robocop.mp3 quality

* hurr durr im appveryor and im of low mental capacity, to the extent that a certain r word would be frequently used to describe me

* using original file that is potentially better quality while being a tiny amount smaller.
2019-04-03 03:00:25 -04:00
Tad Hardesty
570a4da33e Replace 'throw EXCEPTION' with CRASH or WARNING 2019-03-19 23:09:24 -07:00
ninjanomnom
53ffc71655 make fire priority values defines 2018-01-17 02:57:14 -05:00
Kyle Spier-Swenson
fa136e71f4 Revert "Merge pull request #33537 from ninjanomnom/priority-defines" (#34528)
This reverts commit 0244b61886, reversing
changes made to 5d07df08ea.
2018-01-16 20:04:35 -05:00
Leshana
4cf5d59745 Bitfields do not work that way.
Fix attempt to use `in` on a non-list.
2018-01-12 10:08:39 -05:00
ninjanomnom
a65248928b defines all subsystem priority values 2017-12-15 15:16:31 -05:00
Emmett Gaines
94a7608995 adds a parent level subsystem initialized var (#33456) 2017-12-13 22:11:21 -05:00
Jordan Brown
c19b8cc5ac Removes an empty New() 2017-10-22 11:31:08 -05:00
Jordan Brown
0572c1a4d9 Fixes subsystems not returning a qdel hint 2017-09-29 15:58:44 -05:00
Jordan Brown
27f05467ef Fixes subsystem MC crash tracking 2017-08-01 16:11:14 -04:00
oranges
0300f8540e Merge pull request #27132 from Cyberboss/runlevels
MC Runlevels
2017-05-16 09:03:34 +12: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
oranges
7f2b0d0b05 Merge pull request #26397 from coiax/stops-easter-loot
Fixes easter eggs spawning during non-easter; SSevent now inits before SSticker
2017-04-25 11:06:28 +12:00
Cyberboss
b4c9caf253 Quite possibly the smallest microoptimization here (#26407) 2017-04-22 22:54:04 -03:00
Jack Edge
a76d4374c1 Moves init_order to defines, moves SSevents above ticker. 2017-04-22 22:08:31 +01: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
85d5896892 Fuck everything 2017-03-24 18:21:17 -04:00
Cyberboss
a801187ede Fix shit 2017-03-22 12:11:59 -04:00
Cyberboss
7e14ec75fc Normalizes subsystem definitions 2017-03-22 11:50:46 -04: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
Cyberboss
3ad9be1555 Subsystems are now ordered by name in MC tab 2017-03-02 14:45:40 -05: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
ba1e4f2f33 Fixes stat_entry for NO_FIRE subsystems (#24305) 2017-02-21 09:16:00 +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
Cyberboss
0eef753fd4 Shows the total initialization time 2017-02-15 11:19:20 -05: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