finished quest pathing

This commit is contained in:
Boki 2026-03-05 18:55:08 -05:00
parent 568df4c7fe
commit 419e2eb4a4
17 changed files with 637 additions and 31 deletions

View file

@ -0,0 +1,15 @@
namespace Roboto.Memory;
/// <summary>
/// Lightweight connected area info from WorldAreas.dat for the snapshot.
/// </summary>
public sealed class ConnectedAreaInfo
{
public string? Id { get; init; }
public string? Name { get; init; }
public int Act { get; init; }
public bool IsTown { get; init; }
public bool HasWaypoint { get; init; }
public int MonsterLevel { get; init; }
public int WorldAreaId { get; init; }
}

View file

@ -38,6 +38,9 @@ public class GameStateSnapshot
public int AreaMonsterLevel;
public int WorldAreaId;
// Connected areas (from WorldAreas.dat)
public List<ConnectedAreaInfo>? ConnectedAreas;
// Player
public string? CharacterName;

View file

@ -22,4 +22,13 @@ public sealed class QuestLinkedEntry
public bool IsTracked { get; init; }
/// <summary>Raw Quest.dat row pointer — used as key for merging tracked info.</summary>
public nint QuestDatPtr { get; init; }
/// <summary>Localized map pin text from QuestStates.dat (e.g. "Travel to the Clearfell").</summary>
public string? MapPinsText { get; init; }
/// <summary>Target WorldAreas resolved from QuestStates.dat MapPins → WorldAreas.dat.</summary>
public List<ConnectedAreaInfo>? TargetAreas { get; init; }
/// <summary>BFS path from current area to target area (area names in order). Null if same area or unreachable.</summary>
public List<string>? PathToTarget { get; init; }
}