MiscTextPointers.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.Collections.Generic;
  2. using System.Linq;
  3. namespace OpenVIII
  4. {
  5. namespace Kernel
  6. {
  7. /// <summary>
  8. /// Misc Text Pointers Data
  9. /// </summary>
  10. /// <see cref="https://github.com/alexfilth/doomtrain/wiki/Misc-text-pointers"/>
  11. public sealed class MiscTextPointers
  12. {
  13. #region Fields
  14. public const int Count = 128;
  15. public const int ID = 30;
  16. public const int Size = 2;
  17. #endregion Fields
  18. #region Constructors
  19. /// <summary>
  20. /// Create Misc Text Pointer
  21. /// </summary>
  22. /// <param name="i">//0x0000 2 bytes Offset to item name</param>
  23. private MiscTextPointers(int i) => Value = Memory.Strings.Read(Strings.FileID.Kernel, ID, i);
  24. #endregion Constructors
  25. #region Properties
  26. ///0x0000 2 bytes Offset to item name
  27. public FF8String Value { get; }
  28. #endregion Properties
  29. #region Methods
  30. public static explicit operator FF8String(MiscTextPointers v) => v.Value;
  31. public static IReadOnlyList<MiscTextPointers> Read()
  32. => Enumerable.Range(0, Count).Select(CreateInstance).ToList();
  33. public override string ToString() => Value;
  34. private static MiscTextPointers CreateInstance(int i) => new MiscTextPointers(i);
  35. #endregion Methods
  36. }
  37. }
  38. }