refactoring

This commit is contained in:
Boki 2026-03-02 16:23:23 -05:00
parent fbd0ba445a
commit 18d8721dd5
68 changed files with 2187 additions and 36 deletions

View file

@ -0,0 +1,68 @@
using System.Runtime.InteropServices;
using Roboto.GameOffsets.Natives;
namespace Roboto.GameOffsets.Components;
/// <summary>Actor component — skills, animations, deployments.</summary>
[StructLayout(LayoutKind.Explicit, Size = 0x2E8)]
public struct Actor
{
[FieldOffset(0x00)] public ComponentHeader Header;
/// <summary>Pointer to animation controller.</summary>
[FieldOffset(0x1D8)] public nint AnimationControllerPtr;
/// <summary>Active skills StdVector (of ActiveSkillStructure).</summary>
[FieldOffset(0x2C0)] public StdVector ActiveSkills;
/// <summary>Deployed entities StdVector (of DeployedEntityStructure).</summary>
[FieldOffset(0x2D8)] public StdVector DeployedEntities;
}
/// <summary>An entry in the active skills vector.</summary>
[StructLayout(LayoutKind.Explicit, Size = 0x28)]
public struct ActiveSkillStructure
{
[FieldOffset(0x00)] public nint SkillDetailsPtr;
[FieldOffset(0x08)] public short SkillId;
[FieldOffset(0x0C)] public byte CanBeUsed;
[FieldOffset(0x0D)] public byte CanBeUsedWithWeapon;
[FieldOffset(0x10)] public nint CooldownPtr;
}
/// <summary>Detailed info about a skill.</summary>
[StructLayout(LayoutKind.Explicit, Size = 0x20)]
public struct ActiveSkillDetails
{
[FieldOffset(0x00)] public nint NamePtr;
[FieldOffset(0x08)] public nint InternalNamePtr;
[FieldOffset(0x10)] public int GrantedEffectsPerLevelIdx;
[FieldOffset(0x14)] public int IconIndex;
}
/// <summary>Cooldown state for a skill.</summary>
[StructLayout(LayoutKind.Explicit, Size = 0x20)]
public struct ActiveSkillCooldown
{
[FieldOffset(0x00)] public nint CooldownGroupPtr;
[FieldOffset(0x08)] public int MaxUses;
[FieldOffset(0x0C)] public int CurrentUses;
[FieldOffset(0x10)] public int CooldownTimer;
}
/// <summary>Vaal soul tracking.</summary>
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct VaalSoulStructure
{
public nint GrantedEffectsPtr;
public int CurrentSouls;
public int SoulCost;
}
/// <summary>A deployed entity (totem, mine, etc.).</summary>
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct DeployedEntityStructure
{
public uint EntityId;
public int SkillIndex;
}