Core/Scenes: Add support for encrypted scenes

Port From (https://github.com/TrinityCore/TrinityCore/commit/3e3b93b509b7546894dd098ae68d4f416f572a4e)
This commit is contained in:
hondacrx
2021-03-04 13:58:17 -05:00
parent 8a481dc9bd
commit ac2c1c5191
3 changed files with 8 additions and 4 deletions
+2
View File
@@ -68,6 +68,7 @@ namespace Game.Entities
playScene.SceneScriptPackageID = sceneTemplate.ScenePackageId; playScene.SceneScriptPackageID = sceneTemplate.ScenePackageId;
playScene.Location = position; playScene.Location = position;
playScene.TransportGUID = GetPlayer().GetTransGUID(); playScene.TransportGUID = GetPlayer().GetTransGUID();
playScene.Encrypted = sceneTemplate.Encrypted;
GetPlayer().SendPacket(playScene); GetPlayer().SendPacket(playScene);
@@ -84,6 +85,7 @@ namespace Game.Entities
sceneTemplate.SceneId = 0; sceneTemplate.SceneId = 0;
sceneTemplate.ScenePackageId = sceneScriptPackageId; sceneTemplate.ScenePackageId = sceneScriptPackageId;
sceneTemplate.PlaybackFlags = playbackflags; sceneTemplate.PlaybackFlags = playbackflags;
sceneTemplate.Encrypted = false;
sceneTemplate.ScriptId = 0; sceneTemplate.ScriptId = 0;
return PlaySceneByTemplate(sceneTemplate, position); return PlaySceneByTemplate(sceneTemplate, position);
+4 -2
View File
@@ -9212,7 +9212,7 @@ namespace Game
uint oldMSTime = Time.GetMSTime(); uint oldMSTime = Time.GetMSTime();
_sceneTemplateStorage.Clear(); _sceneTemplateStorage.Clear();
SQLResult result = DB.World.Query("SELECT SceneId, Flags, ScriptPackageID, ScriptName FROM scene_template"); SQLResult result = DB.World.Query("SELECT SceneId, Flags, ScriptPackageID, Encrypted, ScriptName FROM scene_template");
if (result.IsEmpty()) if (result.IsEmpty())
{ {
Log.outInfo(LogFilter.ServerLoading, "Loaded 0 scene templates. DB table `scene_template` is empty."); Log.outInfo(LogFilter.ServerLoading, "Loaded 0 scene templates. DB table `scene_template` is empty.");
@@ -9227,7 +9227,8 @@ namespace Game
sceneTemplate.SceneId = sceneId; sceneTemplate.SceneId = sceneId;
sceneTemplate.PlaybackFlags = (SceneFlags)result.Read<uint>(1); sceneTemplate.PlaybackFlags = (SceneFlags)result.Read<uint>(1);
sceneTemplate.ScenePackageId = result.Read<uint>(2); sceneTemplate.ScenePackageId = result.Read<uint>(2);
sceneTemplate.ScriptId = GetScriptId(result.Read<string>(3)); sceneTemplate.Encrypted = result.Read<byte>(3) != 0;
sceneTemplate.ScriptId = GetScriptId(result.Read<string>(4));
_sceneTemplateStorage[sceneId] = sceneTemplate; _sceneTemplateStorage[sceneId] = sceneTemplate;
@@ -11195,6 +11196,7 @@ namespace Game
public uint SceneId; public uint SceneId;
public SceneFlags PlaybackFlags; public SceneFlags PlaybackFlags;
public uint ScenePackageId; public uint ScenePackageId;
public bool Encrypted;
public uint ScriptId; public uint ScriptId;
} }
@@ -32,7 +32,7 @@ namespace Game.Networking.Packets
_worldPacket.WriteUInt32(SceneScriptPackageID); _worldPacket.WriteUInt32(SceneScriptPackageID);
_worldPacket.WritePackedGuid(TransportGUID); _worldPacket.WritePackedGuid(TransportGUID);
_worldPacket.WriteXYZO(Location); _worldPacket.WriteXYZO(Location);
_worldPacket.WriteBit(PerformTactCallbacks); _worldPacket.WriteBit(Encrypted);
_worldPacket.FlushBits(); _worldPacket.FlushBits();
} }
@@ -42,7 +42,7 @@ namespace Game.Networking.Packets
public uint SceneScriptPackageID; public uint SceneScriptPackageID;
public ObjectGuid TransportGUID; public ObjectGuid TransportGUID;
public Position Location; public Position Location;
public bool PerformTactCallbacks; public bool Encrypted;
} }
class CancelScene : ServerPacket class CancelScene : ServerPacket