Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix runtime during screen element mouse drag #84071

Merged
merged 2 commits into from
Jun 19, 2024

Conversation

SyncIt21
Copy link
Contributor

About The Pull Request

Fixes this
Screenshot (424)

When you drag a screen element across empty space that isn't over another screen element

Changelog

🆑
fix: You can move around ui buttons in your action bar
/:cl:

@tgstation-server tgstation-server added the Fix Rewrites a bug so it appears in different circumstances label Jun 17, 2024
@SyncIt21 SyncIt21 changed the title Fix runtime during mouse screen element drag Fix runtime during screen element mouse drag Jun 17, 2024
@alien3301
Copy link
Contributor

Finally

@jlsnow301 jlsnow301 merged commit dcbfeb7 into tgstation:master Jun 19, 2024
20 checks passed
comfyorange added a commit that referenced this pull request Jun 19, 2024
github-actions bot added a commit that referenced this pull request Jun 19, 2024
@SyncIt21 SyncIt21 deleted the MouseDragRuntimeFix branch June 19, 2024 18:54
Absolucy pushed a commit to Absolucy/Monkestation that referenced this pull request Jul 2, 2024
## About The Pull Request
Fixes this
![Screenshot
(424)](https://github.com/tgstation/tgstation/assets/110812394/52825b5e-1af0-490b-9139-7f7747ee998a)

When you drag a screen element across empty space that isn't over
another screen element

- Fixes tgstation#84045

## Changelog
:cl:
fix: You can move around ui buttons in your action bar
/:cl:
dwasint pushed a commit to Monkestation/Monkestation2.0 that referenced this pull request Jul 5, 2024
* Abilities with no owner control isnt given to ghosts (tgstation#82037)

## About The Pull Request

Actions that don't give the user control (so don't give them an action
button) will now no longer give them to ghosts either. Ghosts should see
the same information as the player when observing them. They don't need
to see guardian's protection mode and bileworm's spitting, for example.

## Why It's Good For The Game

Explained in the about the pull request already, ghosts should have the
same information as the player they are orbiting, not see the hidden
actions. It makes it annoying for contributors to have to manually set
every ability meant to not be seen by players to also not be seen by
ghosts.

## Changelog

:cl:
fix: Action abilities hidden from players are now not shown to observers
either.
/:cl:

* Fix runtime during screen element mouse drag (tgstation#84071)

## About The Pull Request
Fixes this
![Screenshot
(424)](https://github.com/tgstation/tgstation/assets/110812394/52825b5e-1af0-490b-9139-7f7747ee998a)

When you drag a screen element across empty space that isn't over
another screen element

- Fixes tgstation#84045

## Changelog
:cl:
fix: You can move around ui buttons in your action bar
/:cl:

* Fixes emissive blockers sometimes being put in an atom's contents (tgstation#74618)

## About The Pull Request

This is a weird one. When `EMISSIVE_BLOCK_UNIQUE` is set for an atom, it
causes the emissive blocker to be placed in the atom's `contents`. I
don't think this was intended can can potentially cause all kinds of
issues like in the linked one.

![dreamseeker_uIA6GGqzFm](https://user-images.githubusercontent.com/13398309/230766059-31c9e36c-95dc-4868-9865-aca0347e7f20.png)

@LemonInTheDark what say you?

Fixes Skyrat-SS13/Skyrat-tg#20431

## Why It's Good For The Game

Bug fix?

## Changelog
:cl:
fix: fixes emissive blockers sometimes being put in an atom's contents
/:cl:

* Fixes runtime when toggling engineering meson scanners (tgstation#75145)

## About The Pull Request
Fixes this
![Screenshot
(190)](https://user-images.githubusercontent.com/110812394/235924099-df5020bc-0100-4e2e-b7ba-7d44f4969654.png)

Caused by the highlighted line
![Screenshot
(191)](https://user-images.githubusercontent.com/110812394/235924142-4de0edef-1ec0-47ed-aa07-1a2feadb3a47.png)

when switching modes the glasses `color_cutoffs` becomes an empty list,
not null
When glass color is yellow
![Screenshot
(188)](https://user-images.githubusercontent.com/110812394/235924541-4b452c9a-dd5b-4ebc-85c9-f9a4ef7f2128.png)
When it's blue or off
![Screenshot
(189)](https://user-images.githubusercontent.com/110812394/235924613-bd1ed78d-dd11-4760-9a83-c1f3d1203288.png)
So, blending an empty list causes the exception


## Changelog
:cl:
fix: runtime when toggling engineering meson scanners
/:cl:

* [NO GBP] Fixes signal override and probably other related runtimes during area editing with station blueprints (tgstation#75146)

## About The Pull Request
Fixes a tiny mistake i made in tgstation#73850 which caused a hell a lot of
signal override runtimes during area editing with station blueprints. It
happens allow it.

## Changelog
:cl:
fix: signal override & other area sensitive runtimes during area editing
with station blueprints
/:cl:

* adds an error message to movables not being removed from the grid... again (tgstation#75161)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
## About The Pull Request
I swear i didnt fail at this like 3 times i tested it this time.

adds a descriptive error of what spatial grid cells a movable is stuck
in, and in what channels. This only runs during unit tests. hopefully
this should be enough information to go off of to fix the spurious
cockroach error. if its not then i can try tracking all grid cell
changes during unit tests.
error looks like this:
```
[2023-05-03 04:16:34.009] runtime error: /mob/living/trolls_the_maintainer instance, which is in nullspace, and thus not be within the contents of any spatial grid cell, was in the contents of 2 spatial grid cells when it was only supposed to be in one! within the contents of the following cells: {(221, 119, 11), within channels: hearing}, {coords: (136, 136, 14), within channels: hearing}. (code/controllers/subsystem/spatial_gridmap.dm:581)
```
for something located in nullspace but still in the contents of >0 cells
and:
```
runtime error: /mob/living/trolls_the_maintainer instance, which is supposed to only be in the contents of a spatial grid cell at coords: (136, 136, 14), was in the contents of 6 spatial grid cells when it was only supposed to be in one! within the contents of the following cells: {(68, 153, 2), within channels: hearing}, {coords: (221, 170, 3), within channels: hearing}, {coords: (255, 153, 11), within channels: hearing}, {coords: (170, 238, 13), within channels: hearing}, {coords: (204, 119, 14), within channels: hearing}, {coords: (136, 136, 14), within channels: hearing}. 
```
if its not in nullspace but its within more than 1 grid cell. 

the coordinates here are translated from the index of the given cell to
world coordinates.
## Why It's Good For The Game
mothblocks has been standing outside my house for weeks i am fearing for
my life

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>

* Don't call `update_gravity` on nullspace when being qdelled (tgstation#75333)

## About The Pull Request

There is a check in `Moved` that calls `update_gravity` if the mob is
being nullspaced or de-nullspaced.

However mobs are nullspaced when being qdeleted. 

This causes runtimes because mobs that have gone through Destroy and
have cleaned up vars (such as DNA and species) are having their gravity
updated, and most gravity update logic assumes the mob is in a valid,
not qdelling state.


![image](https://github.com/tgstation/tgstation/assets/51863163/36a14209-68cf-4280-b197-9a7b5818f417)

So, `update_gravity` is not called if the mob is being qdelled when
moving into nullspace.

## Why It's Good For The Game

Runtimes

## Changelog

:cl: Melbert
fix: Runtimes when deleting humans relating to gravity
/:cl:

Co-authored-by: san7890 <the@san7890.com>

* fixes a "Attempted to add a new component of type [/datum/component/rot] to a qdeleting parent of type [/mob/living/carbon/human]" runtime (tgstation#75359)

https://github.com/tgstation/tgstation/blob/a1a2b0fa9074069ea1048faa5e503ddb1f63ed04/code/modules/mob/living/carbon/death.dm#L1-L19

The mob can start qdeling @ L12 / in living/death() (if say, for
example, they had an explosive implant. )

This is accounted for in human/death(), but someone forgot it here.

https://github.com/tgstation/tgstation/blob/a1a2b0fa9074069ea1048faa5e503ddb1f63ed04/code/modules/mob/living/carbon/human/death.dm#L20-L34

* Fixes fines applied via sechud not sending messages / registering (tgstation#75357)

## About The Pull Request

Forgot some arguments to this call to `alert_owner`. 

## Why It's Good For The Game

Runtimes

## Changelog

:cl: Melbert
fix: Applying fines via sechud apply correctly 
/:cl:

* Air Meters check for a null target (tgstation#75936)

## About The Pull Request

Meters can have a null target if the pipe below them is destroyed or
removed; or if mappers fuck up.
## Why It's Good For The Game

Prevents runtimes
## Changelog

* Fix debug code in progressbar.dm (tgstation#76106)

## About The Pull Request
exceptions need to be thrown

---------

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

* Add check for illegally formatted unix timestamp for logging (tgstation#76193)

This runtiming is bad

* Fixes a runtime in atom init management (tgstation#76241)

## About The Pull Request

The issue was map verification calling build_cache, which uses the
define which enables/disables init values on sleep. We avoid this by
using a var on map datums and using that to enable the init value
modification only when we are actually loading stuff.

Also fixes a bug in clear_tracked_initialize() where it being called
with no values lead to bad values/potentially overriding initialized on
accident.

Also also I forgot how for loops worked so this would not have worked
regardless

## Why It's Good For The Game

Code should like, function

* Fix balloon alert runtime(timer added on deleted object) when spider webs are destroyed by hand (tgstation#76255)

## About The Pull Request
**Reproduction**
- Spawn a spider web
- Try destroying it with a wire cutter or any other object, but it must
be by hand
- If you are lucky (50% probability as the web uses the prob() proc) at
the moment the web is destroyed a balloon alert at the same time "stuck
in web" gets called causing the runtime because it added a timer on the
deleted spider web

**Solution**
Use loc for balloon alerts as that does not get deleted.

## Changelog
:cl:
fix: fixes balloon alert runtime when spider webs are destroyed.
/:cl:

* Make the server not shit the bed under default compile time settings (tgstation#76275)

This being 2 is causing all connected clients to get all generated or
runtime created assets (like tts), but it is not set to 2 on prod
because the rsc cdn requires setting this to 0 via
`server_side_modifications.dm`

also causes spritesheet to send resources out to all connected clients
every insert mid generation, massively slowing it down as it will
FUCKING BLOCK during this.

* Fixes flaky language holder failure (tgstation#76477)

## About The Pull Request


![image](https://github.com/tgstation/tgstation/assets/51863163/d4f2fd51-6884-4623-b208-f670b6cdb75d)

## Why It's Good For The Game

Flaky failure

## Changelog

:cl: Melbert
fix: Fixes a runtime from people with aphasia trauma getting deleted
/:cl:

* Fixes an edge case runtime with the snatcherprod (tgstation#76386)

## About The Pull Request
Adds a user check to a line and makes it early return now.

## Why It's Good For The Game
Thrown items don't always have a mob throwing them.

## Changelog

:cl:
fix: Fixed snatcherprods potentially giving held objects a one-way
ticket to nullspace if thrown at someone by something that's not a mob.
/:cl:

* Attempts to fix an issue with gravity generators triggering CI failures (tgstation#76764)

bug. EDIT: Just kidding, that turned out to not be it either.

The issue:

During init, when the gravity generator is being set up and creating its
proximity field, a turf can get the `COMSIG_ATOM_HAS_GRAVITY` signal
registered to it multiple times. It seems like it shouldn't be possible
for this to happen due to the `HAS_TRAIT(TRAIT_FORCED_GRAVITY)` check,
but it can.

I've only seen this happen during CI and have not been able to reproduce
it during runtime, but it comes up often enough to be a nuisance when
testing PRs.

As seen below, causing CI failures. The problem turf is directly below
the `gravity_generator/main` object.

![firefox_D4BgPpRbW6](https://github.com/tgstation/tgstation/assets/13398309/d41355de-d05b-4f9d-8305-524408c93022)

I spent too much time trying to figure out the cause of this duped
signal when it really does not matter if this signal gets overridden
here, since it's always going to be from the same proximity field.
Suppressing the warning will stop the CI failures without any ill
effects in this case.

So let's just do that.

Less CI failures for something trivial.

:cl:
fix: fixes gravity generators causing CI failures from overriding a
signal
/:cl:

* Fixes undeleted SQL queries in `IsBanned()` (tgstation#77105)

Discovered while working on tgstation#76663

## About The Pull Request

We were getting undeleted SQL stack traces with the following:
`[2023-07-25 19:27:33.832] DEBUG-SQL: Undeleted query: "SELECT 1 FROM
player WHERE ckey = :ckey" LA: NextRow LAT: 39397`

There's only one spot in the code (which happens to be the newest,
introduced in tgstation#74496 / 8fc56cb) where
we don't always qdel the query regardless of the path the proc takes
(and that seems to match the error per the `LA` field), so let's make
sure we always clean that up since it's a drather silly runtime. It's
also rather spontaneous, as this code is only executed when servers are
bunkered up (which Sybil presently is)

This is my first time dealing with SQL Query code, so let me know if I'm
missing something critical here.

* Fixes runtime relating to hard TGS reboots (PROBABLY WON'T FIX REBOOT CRASHES) (tgstation#77309)

## About The Pull Request

Servers are crashing on every round restart and I have absolutely no
idea where to start, but I noticed this so I figure I'll throw up a PR
to fix it.

This is the runtime (only found in dd.log, sorry non-admin/maintainer
gamers
https://[tgstation13.org/raw-logs/sybil/data/logs/2023/08/01/round-211577/dd.log](https://tgstation13.org/raw-logs/sybil/data/logs/2023/08/01/round-211577/dd.log)
)

```txt
[00:07:07] Runtime in code/modules/logging/log_holder.dm,166: Attempted to call shutdown_logging twice!
  proc name: shutdown logging (/datum/log_holder/proc/shutdown_logging)
  src: /datum/log_holder (/datum/log_holder)
  call stack:
  /datum/log_holder (/datum/log_holder): shutdown logging()
  shutdown logging()
  world: Reboot(0, 0)
  Ticker (/datum/controller/subsystem/ticker): Reboot("Round ended.", "proper completion", 600)
```

This is the full log:


![image](https://github.com/tgstation/tgstation/assets/34697715/af938235-3076-41d5-98b2-02907dedb6d5)

This is the code:


![image](https://github.com/tgstation/tgstation/assets/34697715/371b11cb-3bc9-4a99-a17c-73968ded308d)

For some reason, even though we invoke `TGSEndProcess`, we still
continue on in this `if()` chain. I don't know why we keep executing DM
code after TGS is supposed to be shut down (which may be why no one has
ever included a `return` here, but let's be safe instead of sorry.

If you really want to investigate why TGS is running DM code after we
end the process, I am amenable to including a stack trace or crash of
this phenomenon instead.
## Why It's Good For The Game

Since we aren't invoking `LOG_CLOSE_ALL` to rust-g twice (which seems to
be really unwanted per the code I read), hopefully thing no crash?
Rust-g had two breaking changes (one with logs, and one with SQL), so
I'm presuming that this might be related to the log one (which is why we
didn't see this sorta thing happen pre-tgstation#77307)... Worst case scenario
less runtimes in the funny runtime log.

I hope this wasn't loadbearing either... Likely requires testmerging
since TGS and I don't get along on my machine.
## Changelog
:cl:
server: Added a preventative measure to prevent calling both
TGSHardRestart and TGSReboot, as well as potentially invoking sensitive
procs that are only meant to be called once.
/:cl:

TL;DR- I do not definitively know why servers are crashing but I noticed
this runtime so I'll put out this open flame while I have the time to do
so.

* COMSIG_PARENT_QDELETING -> COMSIG_QDELETING

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Bloop <vinylspiders@gmail.com>
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Fix Rewrites a bug so it appears in different circumstances
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot move abilities from top left bar
5 participants