From d4476636d1bb9d8bf321149de2a01b219325d69d Mon Sep 17 00:00:00 2001 From: Fate-JH Date: Mon, 11 May 2026 12:45:21 -0400 Subject: [PATCH] set proper projectile origin --- .../actors/session/normal/ChatLogic.scala | 26 +++++++++++++++++++ .../WeaponAndProjectileOperations.scala | 2 +- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala b/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala index 552063184..d989103a9 100644 --- a/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala +++ b/src/main/scala/net/psforever/actors/session/normal/ChatLogic.scala @@ -6,6 +6,7 @@ import net.psforever.actors.session.SessionActor import net.psforever.actors.session.spectator.SpectatorMode import net.psforever.actors.session.support.{ChatFunctions, ChatOperations, SessionData} import net.psforever.objects.Session +import net.psforever.objects.serverobject.interior.Sidedness import net.psforever.packet.game.{ChatMsg, ServerType, SetChatFilterMessage} import net.psforever.services.chat.{DefaultChannel, OutfitChannel, SquadChannel} import net.psforever.types.ChatMessageType @@ -142,6 +143,7 @@ class ChatLogic(val ops: ChatOperations, implicit val context: ActorContext) ext case "macro" => ops.customCommandMacro(session, params) case "progress" => ops.customCommandProgress(session, params) case "squad" => ops.customCommandSquad(params) + case "setside" => customSetSidedness(session, params) case _ => // command was not handled sendResponse( @@ -208,4 +210,28 @@ class ChatLogic(val ops: ChatOperations, implicit val context: ActorContext) ext } } } + + private def customSetSidedness(session: Session, contents: Seq[String]): Boolean = { + var postUsageMessage: Boolean = false + contents.headOption match { + case Some("check") => + val whichSide = if (session.player.WhichSide == Sidedness.OutsideOf) { + "outside" + } else { + "inside" + } + sendResponse(ChatMsg(ChatMessageType.UNK_227, s"You are $whichSide.")) + case Some("help") | Some("usage") => + postUsageMessage = true + case Some(token) => + sendResponse(ChatMsg(ChatMessageType.UNK_227, s"unknown command - $token")) + postUsageMessage = true + case None => + postUsageMessage = true + } + if (postUsageMessage) { + sendResponse(ChatMsg(ChatMessageType.UNK_227, "!setside check")) + } + true + } } diff --git a/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala b/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala index 2e32d426a..955a834c9 100644 --- a/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala +++ b/src/main/scala/net/psforever/actors/session/support/WeaponAndProjectileOperations.scala @@ -1606,7 +1606,7 @@ class WeaponAndProjectileOperations( object WeaponAndProjectileOperations { def updateProjectileSidednessAfterHit(zone: Zone, projectile: Projectile, hitPosition: Vector3): Unit = { - val origin = projectile.Position + val origin = projectile.shot_origin val distance = Vector3.Magnitude(hitPosition - origin) zone .blockMap