PlayReports.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System;
  2. using System.Buffers.Binary;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace Ryujinx.Ava.Utilities.PlayReport
  6. {
  7. public static partial class PlayReports
  8. {
  9. public static Analyzer Analyzer { get; } = new Analyzer()
  10. .AddSpec(
  11. "01007ef00011e000",
  12. spec => spec
  13. .AddValueFormatter("IsHardMode", BreathOfTheWild_MasterMode)
  14. // reset to normal status when switching between normal & master mode in title screen
  15. .AddValueFormatter("AoCVer", FormattedValue.SingleAlwaysResets)
  16. )
  17. .AddSpec(
  18. "0100f2c0115b6000",
  19. spec => spec
  20. .AddValueFormatter("PlayerPosY", TearsOfTheKingdom_CurrentField))
  21. .AddSpec(
  22. "0100000000010000",
  23. spec =>
  24. spec.AddValueFormatter("is_kids_mode", SuperMarioOdyssey_AssistMode)
  25. )
  26. .AddSpec(
  27. "010075000ecbe000",
  28. spec =>
  29. spec.AddValueFormatter("is_kids_mode", SuperMarioOdysseyChina_AssistMode)
  30. )
  31. .AddSpec(
  32. "010028600ebda000",
  33. spec => spec.AddValueFormatter("mode", SuperMario3DWorldOrBowsersFury)
  34. )
  35. .AddSpec( // Global & China IDs
  36. ["0100152000022000", "010075100e8ec000"],
  37. spec => spec.AddValueFormatter("To", MarioKart8Deluxe_Mode)
  38. )
  39. .AddSpec(
  40. ["0100a3d008c5c000", "01008f6008c5e000"],
  41. spec => spec
  42. .AddValueFormatter("area_no", PokemonSVArea)
  43. .AddValueFormatter("team_circle", PokemonSVUnionCircle)
  44. )
  45. .AddSpec(
  46. "01006a800016e000",
  47. spec => spec
  48. .AddSparseMultiValueFormatter(
  49. [
  50. // Metadata to figure out what PlayReport we have.
  51. "match_mode", "match_submode", "anniversary", "fighter", "reason", "challenge_count",
  52. "adv_slot",
  53. // List of Fighters
  54. "player_1_fighter", "player_2_fighter", "player_3_fighter", "player_4_fighter",
  55. "player_5_fighter", "player_6_fighter", "player_7_fighter", "player_8_fighter",
  56. // List of rankings/placements
  57. "player_1_rank", "player_2_rank", "player_3_rank", "player_4_rank", "player_5_rank",
  58. "player_6_rank", "player_7_rank", "player_8_rank"
  59. ],
  60. SuperSmashBrosUltimate_Mode
  61. )
  62. )
  63. .AddSpec(
  64. [
  65. "0100c9a00ece6000", "01008d300c50c000", "0100d870045b6000",
  66. "010012f017576000", "0100c62011050000", "0100b3c014bda000"],
  67. spec => spec.AddValueFormatter("launch_title_id", NsoEmulator_LaunchedGame)
  68. );
  69. private static string Playing(string game) => $"Playing {game}";
  70. }
  71. }