Commit Graph

2125 Commits

Author SHA1 Message Date
Kyle Spier-Swenson
e0c3019dc3 [READY] Lighting list cleanup. (#59002)
Removed a bunch of back reference lists that were either entirely unused, or contained references that could be found within the datums contained in other lists.

lighting corner datums now get deleted with unused.

light sources no longer track lighting corners where the appiled light rounds to 0.

Fix lighting on turfs that gained dynamic lighting mid round. lazy init corner datums.

these two are related. by decoupling corner datums from the turfs dynamic lighting state, we can use them to know what level of light a non-dynamic light turf should have once it gains dynamic light.

Also should free up some memory not storing these datums in maint. Corner datums only exist on a turf that has light cast upon it by the dynamic lighting system.

Lighting corners are now lazy inited and deleted. they should always (and only exist) if there is a light source shining on it within range (even if the turf has no dynamic lighting). This is needed to support turfs that become lighting enabled mid round. On the plus side, they will no longer be generated on full dark turfs.
2021-06-10 14:42:11 -07:00
LemonInTheDark
825143825c Deep sendmaps profiling (#59581)
* Adds in support for basic send maps profiling, I'd still like to get something that tracks with the round a bit
better, but we can worry about that later

* Adds a debug verb that displays the sendmaps profiling page, as basic as it is

* Define respect

* Patches over an error where profiles would persist through rounds, somehow. Adds the maptick stuff to performance logging, so we can look at how things change over a short period of time
2021-06-10 23:09:34 +02:00
fira
bfb6ab224e Fix race condition in SSmapping z-level creation (#59560)
As described in issue #56733, there is a possibility of a race condition in SSmapping.add_new_zlevel - either during Z level incrementing, or the proc itself, as it only expands the amount of registered z-levels after being finished.

While the first hopefully shouldn't happen, it can still manifest because of the CHECK_TICK within. A practical result is that two concurrent calls to this proc will both create a new Z-level, but actually report having made the same first one.

This is problematic for map_templates that will then load blindly to the reported Z-level when using load_new_z, overwriting each other. We sometimes encounter that end result on CM13 codebase because of a map load that can be triggered by an user topic - if two people click at the same time, it's not unlikely for the first call to sleep in CHECK_TICK and let the second run, causing double-loading.
2021-06-09 14:01:29 -03:00
Thunder12345
25b0c48b90 Stops the drive-by landing from sending some players to space (#59546)
Adds a safety check to DropLandAtRandomHallwayPoint() to send mobs to the arrivals shuttle if get_safe_random_station_turf() returns null. This prevents people from being dumped in the supply pod shipping lane.
2021-06-08 18:56:47 -03:00
tralezab
909c81866d Detaches Anonymous themes and Triple AI from SSTicker (+ more anonymous themes and content) (#59373)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-06-05 14:19:09 -07:00
Emmett Gaines
888f29db92 Improved GAGS debug (#59392) 2021-06-04 21:46:56 -07:00
interestingusernam3
6facbc24e6 Removes SSmapping delayed config loading. (#59328)
Does it in /New instead
2021-06-04 11:19:54 -04:00
Emmett Gaines
71ed48d944 Datum mat GAGS support and mace migration (#59114)
Makes datum materials support GAGS icons without too much configuration needed. You just need to specify a base config and subtype configurations can be for specific materials. I used the cleric mace as a testing item due to it having 2 distinct regions to color, so it got migrated to this system.

Moving forward we should not be using the regular color system for datum mat items as you can get conflicts with other code adding colors whereas with this the sprite has the base colors baked in.

Also I made the gold mace shimmer, for fun.
2021-05-31 03:06:26 -07:00
Mothblocks
e2b929974e Remove a bunch of old gamemode code (#59067)
* Beep beep gamemode removal coming through

* More cleaning

* More cleaning

* Clean up station_was_nuked

* Station nuke source

* Remove name

* More unused functions

* Remove antag rep, which was unused in dynamic

* Remove more antag rep stuff, which was UNUSED IN DYNAMIC

* Station goals outside of mode

* Remove setup_done

* Remove player lists

* Move some older procs

* Fix simulations

* Attempt to fix this stupid case sensitive bullshit

* Revert "Attempt to fix this stupid case sensitive bullshit"

This reverts commit 8693c02d67602543d7d4b92130a7a32cd973e5bf.

* ???

* Delete icons/Testing directory

* Move station_goals global definition
2021-05-29 11:03:41 +02:00
Watermelon914
7636caadc9 Removed proc overhead from the Input subsystem (#59339)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2021-05-27 16:16:56 -07:00
MrMelbert
3e355b091c GAGS Lizard Plushes (#59323)
* greyscale lizards

* repathing

* uses set greyscale

* mapped sprite
2021-05-27 19:50:36 +02:00
Watermelon914
b84a9f97b2 Integrated Circuits (Wiremod) (#59232)
Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Maurukas <66576896+Maurukas@users.noreply.github.com>
2021-05-25 11:15:36 -07:00
AnturK
f989da1fc1 Moves explorer adventures to the database. (#59089)
* Moves explorer adventures to the database.

* Fixes default images not showing up in playtest.

* Review changes.

* Please

* SPACING

* Makes this a bit atomic.

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-05-24 16:56:14 -04:00
Kylerace
e13fe75590 use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
2021-05-24 15:28:02 -04:00
Mickyan
aa293490cf added get content recursive flag check (#59191) 2021-05-20 21:52:26 -07:00
Celotajs
190d0a0384 Replace alert usage with tgui_alert (#58419)
Pretty much every alert() call is replaced with tgui_alert, except one I replaced with tgalert as a fallback. If tgui_alert exists, why not use it?
2021-05-20 22:43:27 +12:00
Timberpoes
b15c08b484 Fix unintended case allowing multiple AI spawns shiftstart (#59160) 2021-05-20 03:02:07 -07:00
Emmett Gaines
3cf19e34dd Makes timer subsystems available as a new subsystem type (#59073) 2021-05-15 01:59:21 -07:00
Fikou
10f95b4889 ambience subsystem no longer plays to people in lobby (#59071) 2021-05-14 16:43:48 -04:00
Timberpoes
f36c7fa43f Split malf AI antag datum away from traitor, enable malf AI roundstart ruleset. (#59064)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-05-13 02:39:16 -07:00
tralezab
ea57e3f960 Kills BOTH /poison paths by turning poisonous into an element. (+fantasty prefix, sanity on attackingtarget signal, and more) (#58882) 2021-05-09 16:49:59 -07:00
tralezab
16c87a0aad tramprocess only fires on maps with trams (#58940) 2021-05-08 16:16:09 -07:00
ArcaneMusic
18370285da Mail holidays. (#58728) 2021-05-08 04:29:14 -07:00
Timberpoes
ff47abe825 Refactors playtime tracking code. (#58186) 2021-05-08 09:36:22 +03:00
Emmett Gaines
a66bf56b31 Greyscale sombrero and shamebrero (#58854)
* Greyscale sombrero and shamebrero

* Fixes json indentation and sombrero greyscale assignment
2021-05-06 15:19:54 +02:00
LemonInTheDark
c906c44393 Fixes a fuck ton more harddels (#58779)
Redoes how geese handle eating shit, it was fucking stupid and caused harddels, and while this method is technically slower in the best case, it's a fucking goose
Fixes action related harddels, I hate how they work but at least this way they won't hold refs.
Fixes the hierophont causing its beacon to harddel
Removes the M variable from megafauna actions, it was used like a typed owner and caused harddels, so I burned it
Fixes target and targets_from harddels, replaces all setters of target with LoseTarget and GiveTarget, which should help maintain behavior. I'm not sure if this breaks anything, but if it does we should fix the assumptions that code makes instead of reverting this change
Fixes more area_senstive_contents related harddels, we need to allow the mob to move before clearing out its list.
Fixes marked object harddels (I'm coming for you admin team)
Fixes a language based human harddel
Fixes managed overlay related harddels (This was just emissive blockers, but I think this is a good safety net to have. If we clear the overlay list we should clear this one as well)
Fixes bot core harddels, I hate the fact that this exists but it has no reason to know who its owner is
Adds a walk(src, 0) to simple_animal destroy, it's the best bang for the buck in terms of stopping spurious harddels. Walk related harddels aren't that expensive in the first place, since byond does the same thing I'm doing here, but this makes finding mob harddels easier, so let's go with it
I fixed another source of part harddels, I hate fullupgrade so much
Fixes all the sound loop harddels
2021-05-05 10:57:27 -04:00
Seris02
ff2f6abe83 Sort the majority of the rest of the unsorted chat (#58821)
* FINALLY IT IS DONE FUCK

* tip of the round into ooc

* adds cyopod chat messages to the info chat filter

* last one I promise probably, mob spawner messages to info filter

* holoparasite, round will start in x and keybinding conflict to respective filters

* removed motd from constants, made it infoplain surrounded instead

* changed info to infoplain
2021-05-05 05:57:40 +03:00
Nick
e3b1e3c8c5 Security citations are now logged to the DB (#58827)
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2021-05-03 05:17:04 -07:00
Fikou
c0f9d2e7e8 [READY] Tile Reskinning 2: Epic Winaloo (#58801)
extends the tile reskinning functionality to iron, bronze, plastitanium, carpet and pod floors
makes a bit of tile code better
moves some paths around, like elevator shafts being plating instead of floor
adds rotating as a tile reskinning function available on chapel or side floors for example

lets players customize any rooms they would want much more than it is possible now, allowing for more creativity
2021-05-01 02:20:45 -07:00
Iamgoofball
96a9523940 Removes CHECK_TICK from overlays, following the same theory as instant explosions. (#58382)
as we learned with instant explosions, sleeping needlessly between appearance changes results in a heavier sendmaps load, let's see how this performs
2021-04-30 21:08:55 -04:00
LemonInTheDark
a924226b50 React optimization + event based processing for tanks, canisters and pipelines (#58418)
* Makes tanks only process when needed, rather then doing it constantly

* Makes portable atmos machines only process when needed, makes adding and removing atmos machinery cheaper, makes the tank processing logic actually work properly

* Makes pipelines only react() when their mix changes, fixes a ton of misuses of update_parents that were causing about 10ms of load for atmos just from reconcile_air()

* Adds in a new reaction framework alongside the old one for profiling related reasons

* whoops

* Cleanup, removes the react profiling code, I've chosen a direction to go here

* Cleans up some code, adds comments describing how to interact with portable atmos machines/tanks and their
mixes, adds a blurb to Atmospherics.md about the topic as a whole, leaves a line of bread for someone to follow
if I get hit by a bus in 2 days (Knock on wood)

* Removes priority from reactions, moves priority groups to the defines file

* whoops

* Converts air_contents to _air_contents, replaces all the out of file things that used it with return_air()

* Replaces the canister air contents uses, converts it back to air_contents, I decided I didn't like the _

* Fixes
2021-04-30 12:29:29 +02:00
cacogen
0c5a968a83 Makes holidays span all timezones by default (#58673)
* Adds timezone support for regional holidays

Also adds timezones to Waitangi Day, ANZAC Day, US Independence Day and Bastille Day

* Makes holidays span all timezones by default

Changes April Fools, Halloween and Christmas to be the correct dates instead of a range, using three timezones to cover the correct range instead

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-04-29 15:46:32 -07:00
LemonInTheDark
bf3f9491ab Adds a : to garbage logging (#58672)
Every other stat has a : attached to it, and not having this makes parsing these files into workable data fucking suffering
2021-04-29 03:52:36 -07:00
ArcaneMusic
8e3d932bbc Corrects a define regarding the amount of mail arriving on station + QOL changes. (#58723)
There was a math error in mail's implementation in the economy SS when I switched it over to delta_time, so that basically the time-based define MAX_MAIL_PER_MINUTE was being multiplied by delta_time. Just one problem, delta_time was being considered in deciseconds as usual, but my chimp brain failed to recognize that, meaning that the maximum amount of mail arriving on station was around 100x more than expected.

This corrects the delta_time variable to think in terms of MINUTE time defines, not just a static decimal multipliers.

Junk mail is funny and good, but you'll never read any of these if you get 200+ letters every shift just like it.

Additionally, adds some fluff text to the examine_more of letters, to let players know that you can use destination taggers to sne and distribute letters once they arrive.

QOL tweak is just to make cargo players and in-game purists lives easier.
2021-04-27 16:56:00 -07:00
TemporalOroboros
9f598a9662 Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
2021-04-26 17:31:25 -07:00
Ghilker
88a9e09fd6 Smarter pipes (#58296)
Smart pipe improvements
Co-authored-by: tralezab <spamqetuo2@gmail.com>
2021-04-26 23:35:08 +02:00
Mothblocks
7e4de07506 Remove all gamemodes except Dynamic (#58470)
Removes all /datum/game_mode except dynamic. Eventually, all of mode and game_mode will be removed, and Dynamic will become an ingrained system. Every single other gamemode was unmaintained at best and poisoned other code at worst. Currently all tg servers run 24/7 Dynamic, so the time to act is now.

* Remove gamemode references from age checks

* Monkey

* Remove heretics

* Remove BBs

* Refactor uplinks and remove clown ops

* Remove nuke ops

* Removes and refactors cult

* Remove extended

* Remove and move out meteors

* Removes wizard

* Remove sandbox

* Remove changelings

* Remove traitors

* Remove revs

* Remove gangs

* Remove changing mode and voting for new gamemodes

* get_candidates signature fix

* Summon ERT and NERD in their own panel

* Remove some old unneeded age_check stuff

* Fix old signatures of get_uplink_items

* Use Extended like config for dynamic.json

* Fix discounted gear
2021-04-25 01:55:10 -07:00
ArcaneMusic
3475446f74 Ports Mail From Kiwi Take 2: Arconomy Class Mail (#58146)
Co-authored-by: tralezab <spamqetuo2@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-04-24 22:49:27 -07:00
Mothblocks
84221e2cc8 The CE can now buy the BYOS (#58389) 2021-04-21 20:47:51 +02:00
Jeremiah
2294054b71 Vote Panel Fixes: Allows Player Votes, Vertical Rendering for Voting List (#58489)
* Updated permissions

* tfw prettier

* Fixed Issue
2021-04-19 04:32:35 +03:00
Emmett Gaines
db55157169 Makes the GAS system only update the icon when it has changed (#58337) 2021-04-14 23:02:26 -07:00
Kyle Spier-Swenson
e40574786b Fix overlay subsystem holding on to excessive amounts of icons. (#58378)
* Fix overlay subsystem holding on to excessive amounts of icons.

The use of the icon file reference should be ok because they aren't ref counted anyways,

* Rename icon

* Makes the shit actually work

* Removes caching all together.

* fix compile errors

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-04-14 01:46:06 -04:00
celotajstg
20b5420254 Allow splitting admin tabs (#58310)
* Improve code in statpanel.dm

* Improve phrasing in preferences_toggles.dm

* Move "Interviews" under the "Tickets" tab

Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
2021-04-13 15:58:00 +03:00
Jeremiah
94419dc0d5 Ports Cryopods (#58025)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Kokonut <38844529+maxymax13@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-13 01:18:41 -07:00
Timberpoes
9034dab179 Implements a new auto-tagging system for ID card which adds a config to auto-flag them as an intern. (#58236)
About The Pull Request

ID cards when equipped will check the player's living hours if the USE_LOW_LIVING_HOUR_INTERN flag is set. If their living hours is less than the first of the following (checked in order from 1st to 3rd until a valid value is found):

    Config USE_LOW_LIVING_HOUR_INTERN_HOURS
    Config USE_EXP_RESTRICTIONS_HEADS_HOURS
    Hardcoded 15 hours

Then their ID card is tagged as Intern Assignment, unless they're a Head of Staff in which case they become an Assignment-in-Training.

PDAs, Wallets and Tablets also update any ID cards they hold, so equipping a PDA, Tablet or Wallet will also update any ID cards inside it.

This occurs automatically, even if the card does not belong to the owner. This only occurs when the user's assigned_role is a station job.
2021-04-13 12:24:27 +12:00
ArcaneDefence
c9ac74c2dc Adds a phobia of guns (#58308) 2021-04-12 06:51:02 -07:00
tralezab
09ab61ae05 Four New Sects, small rethemes to first 3 (#57820)
Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-11 22:57:43 +03:00
Trigg
1542aa66bc TGUI Outfit Manager and Editor (#58125)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-11 20:47:03 +03:00
Arkatos1
c19b7c0787 Security Level subsystem (#58248)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-04-10 15:10:40 -07:00
Emmett Gaines
1946abd0e5 Advanced Greyscale Sprite Generation (#58112)
* Nonfunctional greyscale code

* Functional greyscale sprites via filter

Probably going to set the icon instead later

* Switches to greyscale json config

* Adds the reference layer type and converts the other canister types

* Working previews

* Adds readme

* Fixes overlays and breaking

* Removes old canister sprites

* Removes an unused var

* Fixes tgui lints

* Removes a bunch of the old canister icon states

Yeah I need to fix relabeling as well

* Removes some debug sprites

* Sorts canister type list and breaks up base shader step

* Removes an unnecessary preview hack

* Makes prototype canister greyscale

* Properly sizes the ui

* Fills in the canister map sprite

* Adds some more warnings to layers

* Makes broken overlay more prominent

* Removes a preview var that isn't needed anymore

* Cleans up client ref in Destroy

* Cleans up the tgui window a bit

* Update GreyscaleModifyMenu.tsx

* Animates the canister falling over

* Removes a commented out line that's no longer needed

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-04-10 17:21:57 +03:00