From ce2be64a540eb13cf41e60955c05f0f3c7440f89 Mon Sep 17 00:00:00 2001 From: Fate-JH Date: Tue, 29 Oct 2024 19:38:26 -0400 Subject: [PATCH] restored killed->autorevive functionality; removed last traces of old door code from general operations --- .../session/csr/AvatarHandlerLogic.scala | 35 ++++++------------- .../actors/session/csr/GeneralLogic.scala | 14 -------- 2 files changed, 10 insertions(+), 39 deletions(-) diff --git a/src/main/scala/net/psforever/actors/session/csr/AvatarHandlerLogic.scala b/src/main/scala/net/psforever/actors/session/csr/AvatarHandlerLogic.scala index f67919e26..80eac5b79 100644 --- a/src/main/scala/net/psforever/actors/session/csr/AvatarHandlerLogic.scala +++ b/src/main/scala/net/psforever/actors/session/csr/AvatarHandlerLogic.scala @@ -5,12 +5,10 @@ import akka.actor.{ActorContext, typed} import net.psforever.actors.session.support.AvatarHandlerFunctions import net.psforever.login.WorldSession.PutLoadoutEquipmentInInventory import net.psforever.objects.PlanetSideGameObject -import net.psforever.objects.definition.converter.OCM import net.psforever.objects.inventory.Container import net.psforever.objects.serverobject.containable.ContainableBehavior import net.psforever.objects.serverobject.mount.Mountable import net.psforever.packet.game.{AvatarImplantMessage, CreateShortcutMessage, ImplantAction} -import net.psforever.services.avatar.{AvatarAction, AvatarServiceMessage} import net.psforever.types.ImplantType // @@ -438,28 +436,11 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A sendResponse(ReloadMessage(itemGuid, ammo_clip=1, unk1=0)) case AvatarResponse.Killed(mount) => - val pguid = player.GUID - val avatarId = player.Definition.ObjectId //pure logic sessionLogic.shooting.shotsWhileDead = 0 sessionLogic.zoning.CancelZoningProcess() - - //player state changes - AvatarActor.updateToolDischargeFor(avatar) - player.FreeHand.Equipment.foreach { item => - DropEquipmentFromInventory(player)(item) - } - sessionLogic.general.dropSpecialSlotItem() - sessionLogic.general.toggleMaxSpecialState(enable = false) sessionLogic.keepAliveFunc = sessionLogic.zoning.NormalKeepAlive sessionLogic.zoning.zoningStatus = Zoning.Status.None - ops.revive(player.GUID) - AvatarActor.savePlayerLocation(player) - avatarActor ! AvatarActor.InitializeImplants - AvatarActor.updateToolDischargeFor(avatar) - player.FreeHand.Equipment.foreach { item => - DropEquipmentFromInventory(player)(item) - } continent.GUID(mount) .collect { case obj: Vehicle if obj.Destroyed => @@ -469,13 +450,17 @@ class AvatarHandlerLogic(val ops: SessionAvatarHandlers, implicit val context: A sessionLogic.general.unaccessContainer(obj) case _ => () } + //player state changes + sessionLogic.general.dropSpecialSlotItem() + sessionLogic.general.toggleMaxSpecialState(enable = false) + player.FreeHand.Equipment.foreach(DropEquipmentFromInventory(player)(_)) + AvatarActor.updateToolDischargeFor(avatar) + AvatarActor.savePlayerLocation(player) player.VehicleSeated = None - sendResponse(OCM.detailed(player)) - continent.AvatarEvents ! AvatarServiceMessage( - continent.id, - AvatarAction.LoadPlayer(pguid, avatarId, pguid, player.Definition.Packet.ConstructorData(player).get, None) - ) - sendResponse(ChatMsg(ChatMessageType.UNK_225, "CSR MODE")) + ops.revive(player.GUID) + avatarActor ! AvatarActor.InitializeImplants + //render + CustomerServiceRepresentativeMode.renderPlayer(sessionLogic, continent, player) case AvatarResponse.Release(tplayer) if isNotSameTarget => sessionLogic.zoning.spawn.DepictPlayerAsCorpse(tplayer) diff --git a/src/main/scala/net/psforever/actors/session/csr/GeneralLogic.scala b/src/main/scala/net/psforever/actors/session/csr/GeneralLogic.scala index 099f543cd..c679577c2 100644 --- a/src/main/scala/net/psforever/actors/session/csr/GeneralLogic.scala +++ b/src/main/scala/net/psforever/actors/session/csr/GeneralLogic.scala @@ -42,8 +42,6 @@ object GeneralLogic { } class GeneralLogic(val ops: GeneralOperations, implicit val context: ActorContext) extends GeneralFunctions { - private var openDoor: Option[Door] = None - def sessionLogic: SessionData = ops.sessionLogic private val avatarActor: typed.ActorRef[AvatarActor.Command] = ops.avatarActor @@ -95,18 +93,6 @@ class GeneralLogic(val ops: GeneralOperations, implicit val context: ActorContex sendResponse(PlanetsideAttributeMessage(avatarGuid, 4, maxArmor)) continent.AvatarEvents ! AvatarServiceMessage(continent.id, AvatarAction.PlanetsideAttribute(avatarGuid, 4, maxArmor)) } - //doors - openDoor - .collect { - case door - if Vector3.DistanceSquared(door.Position.xy, player.Position.xy) > math.pow(door.Definition.continuousOpenDistance, 2).toFloat => - if (!door.isOpen) { - sendResponse(GenericObjectStateMsg(door.GUID, state = 17)) - } - openDoor = None - case door if !door.isOpen => - sendResponse(GenericObjectStateMsg(door.GUID, state = 16)) - } //expected val isMoving = WorldEntity.isMoving(vel) val isMovingPlus = isMoving || isJumping || jumpThrust