test
This commit is contained in:
parent
0df70abad7
commit
0c14d78d8a
25 changed files with 1487 additions and 179 deletions
|
|
@ -1,5 +1,5 @@
|
|||
using System.Numerics;
|
||||
using Roboto.Memory.States;
|
||||
using Roboto.Memory.Objects;
|
||||
|
||||
namespace Roboto.Memory;
|
||||
|
||||
|
|
@ -29,6 +29,15 @@ public class GameStateSnapshot
|
|||
public int AreaLevel;
|
||||
public uint AreaHash;
|
||||
|
||||
// Area template (from WorldData → AreaTemplate)
|
||||
public string? AreaRawName;
|
||||
public string? AreaName;
|
||||
public int AreaAct;
|
||||
public bool AreaIsTown;
|
||||
public bool AreaHasWaypoint;
|
||||
public int AreaMonsterLevel;
|
||||
public int WorldAreaId;
|
||||
|
||||
// Player
|
||||
public string? CharacterName;
|
||||
|
||||
|
|
|
|||
21
src/Roboto.Memory/Snapshots/QuestSnapshot.cs
Normal file
21
src/Roboto.Memory/Snapshots/QuestSnapshot.cs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
namespace Roboto.Memory;
|
||||
|
||||
/// <summary>
|
||||
/// Lightweight quest data from ServerData quest flags.
|
||||
/// Stored in GameStateSnapshot; mapped to Roboto.Core.QuestProgress in the Data layer.
|
||||
/// </summary>
|
||||
public sealed class QuestSnapshot
|
||||
{
|
||||
/// <summary>QuestState.dat row index (int_vector mode) or 0 (pointer mode).</summary>
|
||||
public int QuestStateIndex { get; init; }
|
||||
public nint QuestDatPtr { get; init; }
|
||||
public string? QuestName { get; init; }
|
||||
/// <summary>Internal quest ID from dat row (e.g. "TreeOfSouls2", "IncursionQuest1_Act1").</summary>
|
||||
public string? InternalId { get; init; }
|
||||
/// <summary>Encounter state from quest state object: 1=locked/not encountered, 2=available/started.</summary>
|
||||
public byte StateId { get; init; }
|
||||
/// <summary>True if this quest is the currently tracked/active quest in the UI.</summary>
|
||||
public bool IsTracked { get; init; }
|
||||
public string? StateText { get; init; }
|
||||
public string? ProgressText { get; init; }
|
||||
}
|
||||
32
src/Roboto.Memory/Snapshots/SkillSnapshot.cs
Normal file
32
src/Roboto.Memory/Snapshots/SkillSnapshot.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
namespace Roboto.Memory;
|
||||
|
||||
/// <summary>
|
||||
/// Lightweight skill data from the Actor component's ActiveSkills vector.
|
||||
/// Stored in GameStateSnapshot; mapped to Roboto.Core.SkillState in the Data layer.
|
||||
/// </summary>
|
||||
public sealed class SkillSnapshot
|
||||
{
|
||||
public string? Name { get; init; }
|
||||
public string? InternalName { get; init; }
|
||||
/// <summary>Address of ActiveSkillPtr in game memory (for CE inspection).</summary>
|
||||
public nint Address { get; init; }
|
||||
/// <summary>Raw bytes at ActiveSkillPtr for offset discovery.</summary>
|
||||
public byte[]? RawBytes { get; init; }
|
||||
public bool CanBeUsed { get; init; }
|
||||
public int UseStage { get; init; }
|
||||
public int CastType { get; init; }
|
||||
public int TotalUses { get; init; }
|
||||
public int CooldownTimeMs { get; init; }
|
||||
|
||||
/// <summary>From Cooldowns vector — number of active cooldown entries.</summary>
|
||||
public int ActiveCooldowns { get; init; }
|
||||
/// <summary>From Cooldowns vector — max uses (charges) for the skill.</summary>
|
||||
public int MaxUses { get; init; }
|
||||
|
||||
/// <summary>Low 16 bits of UnknownIdAndEquipmentInfo — skill ID used for SkillBarIds matching.</summary>
|
||||
public ushort Id { get; init; }
|
||||
/// <summary>High 16 bits of UnknownIdAndEquipmentInfo — equipment slot / secondary ID.</summary>
|
||||
public ushort Id2 { get; init; }
|
||||
/// <summary>Skill bar slot index (0-12) from SkillBarIds, or -1 if not on the skill bar.</summary>
|
||||
public int SkillBarSlot { get; init; } = -1;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue