Attempt to fix diving movement issue

pull/22/head v2.13
Liza 2024-08-21 20:33:40 +02:00
parent b5f66bb9e8
commit 8aaabacc2d
Signed by: liza
GPG Key ID: 7199F8D727D55F67
5 changed files with 14 additions and 28 deletions

View File

@ -1,5 +1,5 @@
<Project> <Project>
<PropertyGroup> <PropertyGroup>
<Version>2.12</Version> <Version>2.13</Version>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -42,16 +42,6 @@
} }
} }
}, },
{
"Position": {
"X": 103.41005,
"Y": -23.878786,
"Z": 187.79831
},
"TerritoryId": 957,
"InteractionType": "WalkTo",
"DisableNavmesh": true
},
{ {
"DataId": 2012907, "DataId": 2012907,
"Position": { "Position": {
@ -61,6 +51,7 @@
}, },
"TerritoryId": 957, "TerritoryId": 957,
"InteractionType": "Interact", "InteractionType": "Interact",
"DisableNavmesh": true,
"CompletionQuestVariablesFlags": [ "CompletionQuestVariablesFlags": [
null, null,
null, null,

View File

@ -151,8 +151,9 @@ internal sealed class MovementController : IDisposable
if (IsPathRunning && Destination != null) if (IsPathRunning && Destination != null)
{ {
if (_gameFunctions.IsLoadingScreenVisible()) if (_gameFunctions.IsLoadingScreenVisible(false))
{ {
_logger.LogInformation("Stopping movement, loading screen visible");
Stop(); Stop();
return; return;
} }

View File

@ -115,15 +115,6 @@ internal static class MoveTo
actualDistance = float.MaxValue; actualDistance = float.MaxValue;
} }
// In particular, MoveBuilder is used so early that it'll have the position when you're starting gathering,
// not when you're finished.
if (questId is SatisfactionSupplyNpcId)
{
logger.LogDebug("SatisfactionSupply: Changing distance to max, previous distance: {Distance}",
actualDistance);
actualDistance = float.MaxValue;
}
if (step.Mount == true) if (step.Mount == true)
yield return mountFactory.Mount(step.TerritoryId, Mount.EMountIf.Always); yield return mountFactory.Mount(step.TerritoryId, Mount.EMountIf.Always);
else if (step.Mount == false) else if (step.Mount == false)

View File

@ -398,7 +398,7 @@ internal sealed unsafe class GameFunctions
if (!_clientState.IsLoggedIn || _clientState.LocalPlayer == null) if (!_clientState.IsLoggedIn || _clientState.LocalPlayer == null)
return true; return true;
if (IsLoadingScreenVisible()) if (IsLoadingScreenVisible(true))
return true; return true;
if (_condition[ConditionFlag.Crafting]) if (_condition[ConditionFlag.Crafting])
@ -437,16 +437,19 @@ internal sealed unsafe class GameFunctions
flags.Contains(ConditionFlag.OccupiedInQuestEvent); flags.Contains(ConditionFlag.OccupiedInQuestEvent);
} }
public bool IsLoadingScreenVisible() public bool IsLoadingScreenVisible(bool all)
{ {
if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && fade->IsVisible) if (_gameGui.TryGetAddonByName("FadeMiddle", out AtkUnitBase* fade) && LAddon.IsAddonReady(fade) && fade->IsVisible)
return true; return true;
if (_gameGui.TryGetAddonByName("FadeBack", out fade) && fade->IsVisible) if (all)
return true; {
if (_gameGui.TryGetAddonByName("FadeBack", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible)
return true;
if (_gameGui.TryGetAddonByName("NowLoading", out fade) && fade->IsVisible) if (_gameGui.TryGetAddonByName("NowLoading", out fade) && LAddon.IsAddonReady(fade) && fade->IsVisible)
return true; return true;
}
return false; return false;
} }