Kernel_bin.Misc_section.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.Collections.Generic;
  2. using System.IO;
  3. namespace OpenVIII
  4. {
  5. namespace Kernel
  6. {
  7. /// <summary>
  8. /// Misc Data
  9. /// </summary>
  10. /// <see cref="https://github.com/alexfilth/doomtrain/wiki/Misc-section"/>
  11. public class Misc_section
  12. {
  13. public const int count = 1;
  14. public const int id = 29;
  15. public byte[] Status_Timers { get; private set; }
  16. public byte ATB_Speed_Multiplier { get; private set; }
  17. public byte Dead_Timer { get; private set; }
  18. public byte[] Status_Limit_Effects { get; private set; }
  19. public byte[] Duel_Timers_and_Start_Moves { get; private set; }
  20. public byte[] Shot_Timers { get; private set; }
  21. public void Read(BinaryReader br, int i)
  22. {
  23. Status_Timers = br.ReadBytes(14);
  24. ATB_Speed_Multiplier = br.ReadByte();
  25. Dead_Timer = br.ReadByte();
  26. Status_Limit_Effects = br.ReadBytes(32);
  27. Duel_Timers_and_Start_Moves = br.ReadBytes(8);
  28. Shot_Timers = br.ReadBytes(4);
  29. }
  30. public static List<Misc_section> Read(BinaryReader br)
  31. {
  32. var ret = new List<Misc_section>(count);
  33. for (int i = 0; i < count; i++)
  34. {
  35. var tmp = new Misc_section();
  36. tmp.Read(br, i);
  37. ret.Add(tmp);
  38. }
  39. return ret;
  40. }
  41. }
  42. }
  43. }