Attempt to fix diving movement issue

This commit is contained in:
Liza 2024-08-21 20:33:40 +02:00
parent b5f66bb9e8
commit ed743250a3
Signed by: liza
GPG Key ID: 7199F8D727D55F67
5 changed files with 14 additions and 28 deletions

View File

@ -1,5 +1,5 @@
<Project>
<PropertyGroup>
<Version>2.12</Version>
<Version>2.13</Version>
</PropertyGroup>
</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,
"Position": {
@ -61,6 +51,7 @@
},
"TerritoryId": 957,
"InteractionType": "Interact",
"DisableNavmesh": true,
"CompletionQuestVariablesFlags": [
null,
null,

View File

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

View File

@ -115,15 +115,6 @@ internal static class MoveTo
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)
yield return mountFactory.Mount(step.TerritoryId, Mount.EMountIf.Always);
else if (step.Mount == false)

View File

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