From f0bec9cf3a4f24318f31f978035823f23401ccfd Mon Sep 17 00:00:00 2001 From: FateJH Date: Sun, 4 Mar 2018 22:33:34 -0500 Subject: [PATCH] changing continent id to normal data types and away from PlanetSideGUID in ZoneForcedCavernConnections and ContinentalLockUpdate; implementing ForcedZoneCavernConnections and ContinentalLockUpdate in WSA --- .../packet/game/ContinentalLockUpdateMessage.scala | 6 +++--- .../packet/game/ZoneForcedCavernConnectionsMessage.scala | 4 ++-- .../scala/game/ContinentalLockUpdateMessageTest.scala | 4 ++-- .../game/ZoneForcedCavernConnectionsMessageTest.scala | 2 +- pslogin/src/main/scala/WorldSessionActor.scala | 9 +++++---- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/common/src/main/scala/net/psforever/packet/game/ContinentalLockUpdateMessage.scala b/common/src/main/scala/net/psforever/packet/game/ContinentalLockUpdateMessage.scala index 1aa70708..204db94c 100644 --- a/common/src/main/scala/net/psforever/packet/game/ContinentalLockUpdateMessage.scala +++ b/common/src/main/scala/net/psforever/packet/game/ContinentalLockUpdateMessage.scala @@ -12,10 +12,10 @@ import scodec.codecs._ * This generates the event message "The [empire] have captured [continent]." * If the continent_guid is not a valid zone, no message is displayed. * If empire is not a valid empire, or refers to the neutral or Black Ops forces, no message is displayed. - * @param continent_guid identifies the zone (continent) + * @param continent_id identifies the zone (continent) * @param empire identifies the empire */ -final case class ContinentalLockUpdateMessage(continent_guid : PlanetSideGUID, +final case class ContinentalLockUpdateMessage(continent_id : Int, empire : PlanetSideEmpire.Value) extends PlanetSideGamePacket { type Packet = ContinentalLockUpdateMessage @@ -25,7 +25,7 @@ final case class ContinentalLockUpdateMessage(continent_guid : PlanetSideGUID, object ContinentalLockUpdateMessage extends Marshallable[ContinentalLockUpdateMessage] { implicit val codec : Codec[ContinentalLockUpdateMessage] = ( - ("continent_guid" | PlanetSideGUID.codec) :: + ("continent_id" | uint16L) :: ("empire" | PlanetSideEmpire.codec) ).as[ContinentalLockUpdateMessage] } diff --git a/common/src/main/scala/net/psforever/packet/game/ZoneForcedCavernConnectionsMessage.scala b/common/src/main/scala/net/psforever/packet/game/ZoneForcedCavernConnectionsMessage.scala index fc35796e..0a10fe33 100644 --- a/common/src/main/scala/net/psforever/packet/game/ZoneForcedCavernConnectionsMessage.scala +++ b/common/src/main/scala/net/psforever/packet/game/ZoneForcedCavernConnectionsMessage.scala @@ -10,7 +10,7 @@ import scodec.codecs._ * @param zone the zone * @param unk na */ -final case class ZoneForcedCavernConnectionsMessage(zone : PlanetSideGUID, +final case class ZoneForcedCavernConnectionsMessage(zone : Int, unk : Int) extends PlanetSideGamePacket { type Packet = ZoneForcedCavernConnectionsMessage @@ -20,7 +20,7 @@ final case class ZoneForcedCavernConnectionsMessage(zone : PlanetSideGUID, object ZoneForcedCavernConnectionsMessage extends Marshallable[ZoneForcedCavernConnectionsMessage] { implicit val codec : Codec[ZoneForcedCavernConnectionsMessage] = ( - ("zone" | PlanetSideGUID.codec) :: + ("zone" | uint16L) :: ("unk" | uint2L) ).as[ZoneForcedCavernConnectionsMessage] } diff --git a/common/src/test/scala/game/ContinentalLockUpdateMessageTest.scala b/common/src/test/scala/game/ContinentalLockUpdateMessageTest.scala index 3f231341..4db01523 100644 --- a/common/src/test/scala/game/ContinentalLockUpdateMessageTest.scala +++ b/common/src/test/scala/game/ContinentalLockUpdateMessageTest.scala @@ -13,7 +13,7 @@ class ContinentalLockUpdateMessageTest extends Specification { "decode" in { PacketCoding.DecodePacket(string).require match { case ContinentalLockUpdateMessage(continent_guid, empire) => - continent_guid mustEqual PlanetSideGUID(22) + continent_guid mustEqual 22 empire mustEqual PlanetSideEmpire.NC case _ => ko @@ -21,7 +21,7 @@ class ContinentalLockUpdateMessageTest extends Specification { } "encode" in { - val msg = ContinentalLockUpdateMessage(PlanetSideGUID(22), PlanetSideEmpire.NC) + val msg = ContinentalLockUpdateMessage(22, PlanetSideEmpire.NC) val pkt = PacketCoding.EncodePacket(msg).require.toByteVector pkt mustEqual string diff --git a/common/src/test/scala/game/ZoneForcedCavernConnectionsMessageTest.scala b/common/src/test/scala/game/ZoneForcedCavernConnectionsMessageTest.scala index d963928d..deb041b2 100644 --- a/common/src/test/scala/game/ZoneForcedCavernConnectionsMessageTest.scala +++ b/common/src/test/scala/game/ZoneForcedCavernConnectionsMessageTest.scala @@ -21,7 +21,7 @@ class ZoneForcedCavernConnectionsMessageTest extends Specification { } "encode" in { - val msg = ZoneForcedCavernConnectionsMessage(PlanetSideGUID(32), 1) + val msg = ZoneForcedCavernConnectionsMessage(32, 1) val pkt = PacketCoding.EncodePacket(msg).require.toByteVector pkt mustEqual string diff --git a/pslogin/src/main/scala/WorldSessionActor.scala b/pslogin/src/main/scala/WorldSessionActor.scala index 1155f9ba..aa0393a5 100644 --- a/pslogin/src/main/scala/WorldSessionActor.scala +++ b/pslogin/src/main/scala/WorldSessionActor.scala @@ -989,19 +989,20 @@ class WorldSessionActor extends Actor with MDCContextAware { initZone.Buildings.foreach({ case(id, building) => initBuilding(continentNumber, id, building) }) sendResponse(ZonePopulationUpdateMessage(continentNumber, 414, 138, popTR, 138, popNC, 138, popVS, 138, popBO)) - //ContinentLockUpdateMessage() + sendResponse(ContinentalLockUpdateMessage(continentNumber, PlanetSideEmpire.NEUTRAL)) //CaptureFlagUpdateMessage() //VanuModuleUpdateMessage() //ModuleLimitsMessage() sendResponse(ZoneInfoMessage(continentNumber, true, 0)) sendResponse(ZoneLockInfoMessage(continentNumber, false, true)) - //ZoneForcedCavernConnectionMessage() + sendResponse(ZoneForcedCavernConnectionsMessage(continentNumber, 0)) case InterstellarCluster.ClientInitializationComplete(tplayer)=> - //this will cause the client to send back a BeginZoningMessage packet (see below) - sendResponse(ContinentalLockUpdateMessage(PlanetSideGUID(13), PlanetSideEmpire.VS)) // "The VS have captured the VS Sanctuary." + //custom + sendResponse(ContinentalLockUpdateMessage(13, PlanetSideEmpire.VS)) // "The VS have captured the VS Sanctuary." sendResponse(BroadcastWarpgateUpdateMessage(PlanetSideGUID(13), PlanetSideGUID(1), false, false, true)) // VS Sanctuary: Inactive Warpgate -> Broadcast Warpgate + //this will cause the client to send back a BeginZoningMessage packet (see below) sendResponse(LoadMapMessage(continent.Map.Name, continent.Id, 40100,25,true,3770441820L)) //VS Sanctuary log.info("Load the now-registered player") //load the now-registered player