From 31e03545b18cb4eaadcc38aa89bce592d15b12d7 Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Sun, 10 Dec 2023 16:55:57 +0300 Subject: [PATCH 1/2] Fix mobs glide incorrectly when buckled --- code/game/objects/buckling.dm | 6 ++++++ mods/ssinput/README.md | 1 + 2 files changed, 7 insertions(+) diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm index 60e04e9ae7618..019b51cc677dc 100644 --- a/code/game/objects/buckling.dm +++ b/code/game/objects/buckling.dm @@ -373,6 +373,9 @@ if (!buckled_mob) return if (loc) + // [SIERRA-ADD] - SSINPUT + buckled_mob.set_glide_size(glide_size) + // [/SIERRA-ADD] buckled_mob.forceMove(loc) else unbuckle_mob() @@ -383,6 +386,9 @@ if (!buckled_mob) return if (loc) + // [SIERRA-ADD] - SSINPUT + buckled_mob.set_glide_size(glide_size) + // [/SIERRA-ADD] buckled_mob.forceMove(loc) else unbuckle_mob() diff --git a/mods/ssinput/README.md b/mods/ssinput/README.md index cb2a5e0d33110..72d460732b445 100644 --- a/mods/ssinput/README.md +++ b/mods/ssinput/README.md @@ -30,6 +30,7 @@ ID мода: SSINPUT - `code/__defines/subsystem-priority.dm`: `#define SS_PRIORITY_INPUT` - `code/__defines/subsystems.dm`: `#define SS_INIT_INPUT` - `code/_onclick/click.dm`: `/mob/proc/MiddleClickOn()` +- `code/game/objects/buckling.dm`: `/obj/Move()`, `/obj/forceMove()` - `code/game/verbs/ooc.dm`: `/client/verb/ooc()`, `/client/verb/looc()` - `code/modules/admin/callproc/callproc.dm`: `/client/Click()` - `code/modules/client/client_procs.dm`: `/client/New()` From 17e131b709df02b58f2acf02c9251557dc9338fc Mon Sep 17 00:00:00 2001 From: SuhEugene <32931701+SuhEugene@users.noreply.github.com> Date: Sun, 10 Dec 2023 18:29:44 +0300 Subject: [PATCH 2/2] Fix grabs and pulls gliding --- code/datums/movement/mob.dm | 12 +++++++++++- code/modules/mob/grab/grab_datum.dm | 3 +++ mods/ssinput/README.md | 2 ++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/code/datums/movement/mob.dm b/code/datums/movement/mob.dm index e464ade578a8a..17cf456106759 100644 --- a/code/datums/movement/mob.dm +++ b/code/datums/movement/mob.dm @@ -271,8 +271,18 @@ return // Something with pulling things - var/extra_delay = HandleGrabs(direction, old_turf) + // [SIERRA-EDIT] - SSINPUT + // var/extra_delay = HandleGrabs(direction, old_turf) // SIERRA-EDIT - ORIGINAL + // mob.ExtraMoveCooldown(extra_delay) // SIERRA-EDIT - ORIGINAL + var/extra_delay = 0 + for (var/obj/item/grab/G in mob) + if(G.assailant == G.affecting) + return + extra_delay = max(extra_delay, G.grab_slowdown()) + mob.ExtraMoveCooldown(extra_delay) + HandleGrabs(direction, old_turf) + // [/SIERRA-EDIT] for (var/obj/item/grab/G in mob) if (G.assailant_reverse_facing()) diff --git a/code/modules/mob/grab/grab_datum.dm b/code/modules/mob/grab/grab_datum.dm index 0a3850da87f3d..81678e9f17100 100644 --- a/code/modules/mob/grab/grab_datum.dm +++ b/code/modules/mob/grab/grab_datum.dm @@ -177,6 +177,9 @@ var/adir = get_dir(assailant, affecting) if(same_tile) + // [SIERRA-ADD] - SSINPUT + affecting.set_glide_size(assailant.glide_size) + // [/SIERRA-ADD] affecting.forceMove(assailant.loc) adir = assailant.dir affecting.set_dir(assailant.dir) diff --git a/mods/ssinput/README.md b/mods/ssinput/README.md index 72d460732b445..abfcf9933cdf6 100644 --- a/mods/ssinput/README.md +++ b/mods/ssinput/README.md @@ -30,11 +30,13 @@ ID мода: SSINPUT - `code/__defines/subsystem-priority.dm`: `#define SS_PRIORITY_INPUT` - `code/__defines/subsystems.dm`: `#define SS_INIT_INPUT` - `code/_onclick/click.dm`: `/mob/proc/MiddleClickOn()` +- `code/datums/movement/mob.dm`: `/datum/movement_handler/mob/movement/DoMove()` - `code/game/objects/buckling.dm`: `/obj/Move()`, `/obj/forceMove()` - `code/game/verbs/ooc.dm`: `/client/verb/ooc()`, `/client/verb/looc()` - `code/modules/admin/callproc/callproc.dm`: `/client/Click()` - `code/modules/client/client_procs.dm`: `/client/New()` - `code/modules/goonchat/browserOutput.dm`: `/datum/chatOutput/Topic()` +- `code/modules/mob/grab/grab_datum.dm`: `/datum/grab/proc/adjust_position()` - `code/modules/mob/living/silicon/robot/login.dm`: `/mob/living/silicon/robot/Login()` - `code/modules/mob/observer/ghost/ghost.dm`: `/mob/observer/ghost/appearance_flags` - `code/modules/mob/login.dm`: `/mob/Login()`