diff --git a/QSB/Animation/NPC/CharacterAnimManager.cs b/QSB/Animation/NPC/CharacterAnimManager.cs index c46a80c9..bd5c7210 100644 --- a/QSB/Animation/NPC/CharacterAnimManager.cs +++ b/QSB/Animation/NPC/CharacterAnimManager.cs @@ -1,5 +1,7 @@ using QSB.Animation.NPC.WorldObjects; using QSB.WorldSync; +using System.Linq; +using UnityEngine; namespace QSB.Animation.NPC { @@ -9,6 +11,10 @@ namespace QSB.Animation.NPC { QSBWorldSync.Init(); QSBWorldSync.Init(); + + //TODO : this is the wrong place to put this... move it to Conversations? + QSBWorldSync.OldDialogueTrees.Clear(); + QSBWorldSync.OldDialogueTrees = Resources.FindObjectsOfTypeAll().ToList(); } } } diff --git a/QSB/Animation/NPC/Patches/CharacterAnimationPatches.cs b/QSB/Animation/NPC/Patches/CharacterAnimationPatches.cs index 67bdbe83..dee6aa5d 100644 --- a/QSB/Animation/NPC/Patches/CharacterAnimationPatches.cs +++ b/QSB/Animation/NPC/Patches/CharacterAnimationPatches.cs @@ -70,7 +70,7 @@ namespace QSB.Animation.NPC.Patches : player; } } - else if (!___lookOnlyWhenTalking && qsbObj.GetPlayersInHeadZone().Count != 0) + else if (!___lookOnlyWhenTalking && qsbObj.GetPlayersInHeadZone().Count != 0) // TODO : maybe this would be more fun if characters looked between players at random times? :P { playerToUse = QSBPlayerManager.GetClosestPlayerToWorldPoint(qsbObj.GetPlayersInHeadZone(), __instance.transform.position); } diff --git a/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs b/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs index f7793d1c..fea83178 100644 --- a/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs +++ b/QSB/OrbSync/TransformSync/NomaiOrbTransformSync.cs @@ -22,7 +22,7 @@ namespace QSB.OrbSync.TransformSync private void OnReady() { - if (QSBWorldSync.OldOrbList == null || QSBWorldSync.OldOrbList.Count < _index) + if (QSBWorldSync.OldOrbList == null || QSBWorldSync.OldOrbList.Count <= _index) { DebugLog.ToConsole($"Error - OldOrbList is null or does not contain index {_index}.", OWML.Common.MessageType.Error); return; @@ -33,7 +33,7 @@ namespace QSB.OrbSync.TransformSync protected override void OnDestroy() { OrbTransformSyncs.Remove(this); - base.OnDestroy(); + QSBSceneManager.OnSceneLoaded -= OnSceneLoaded; } protected override void Init() diff --git a/QSB/QSBCore.cs b/QSB/QSBCore.cs index af6a5751..4cf52c2e 100644 --- a/QSB/QSBCore.cs +++ b/QSB/QSBCore.cs @@ -179,7 +179,9 @@ namespace QSB foreach (var player in QSBPlayerManager.PlayerList.Where(x => x.PlayerStates.IsReady)) { var networkTransform = player.TransformSync; - GUI.Label(new Rect(220, offset, 400f, 20f), $"- {player.PlayerId} : {networkTransform.transform.localPosition} from {networkTransform.ReferenceSector.Name}"); + var sector = networkTransform.ReferenceSector; + + GUI.Label(new Rect(220, offset, 400f, 20f), $"- {player.PlayerId} : {networkTransform.transform.localPosition} from {(sector == null ? "NULL" : sector.Name)}"); offset += _debugLineSpacing; } diff --git a/QSB/QSBNetworkManager.cs b/QSB/QSBNetworkManager.cs index c81926d2..b6e4f738 100644 --- a/QSB/QSBNetworkManager.cs +++ b/QSB/QSBNetworkManager.cs @@ -91,7 +91,6 @@ namespace QSB spawnPrefabs.Add(_stickPrefab); ConfigureNetworkManager(); - QSBSceneManager.OnUniverseSceneLoaded += OnSceneLoaded; } private void SetupNetworkId(GameObject go) @@ -114,15 +113,6 @@ namespace QSB Destroy(go.GetComponent()); } - public void OnDestroy() => - QSBSceneManager.OnUniverseSceneLoaded -= OnSceneLoaded; - - private void OnSceneLoaded(OWScene scene) - { - QSBWorldSync.OldDialogueTrees.Clear(); - QSBWorldSync.OldDialogueTrees = Resources.FindObjectsOfTypeAll().ToList(); - } - private void ConfigureNetworkManager() { networkAddress = QSBCore.DefaultServerIP; diff --git a/QSB/TransformSync/UnparentedBaseTransformSync.cs b/QSB/TransformSync/UnparentedBaseTransformSync.cs index 20d81d47..defe46ec 100644 --- a/QSB/TransformSync/UnparentedBaseTransformSync.cs +++ b/QSB/TransformSync/UnparentedBaseTransformSync.cs @@ -52,7 +52,7 @@ namespace QSB.TransformSync QSBSceneManager.OnSceneLoaded -= OnSceneLoaded; } - private void OnSceneLoaded(OWScene scene, bool isInUniverse) => + protected void OnSceneLoaded(OWScene scene, bool isInUniverse) => _isInitialized = false; protected virtual void Init()