mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2025-12-11 16:36:58 +00:00
88 lines
3.6 KiB
C#
88 lines
3.6 KiB
C#
using Gommon;
|
|
using MsgPack;
|
|
using Ryujinx.Ava.Utilities.AppLibrary;
|
|
using Ryujinx.Common.Helper;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
namespace Ryujinx.Ava.Utilities
|
|
{
|
|
public static class PlayReport
|
|
{
|
|
public static PlayReportAnalyzer Analyzer { get; } = new PlayReportAnalyzer()
|
|
.AddSpec(
|
|
"01007ef00011e000",
|
|
spec => spec.AddValueFormatter("IsHardMode", BreathOfTheWild_MasterMode)
|
|
)
|
|
.AddSpec(
|
|
"0100f2c0115b6000",
|
|
spec => spec.AddValueFormatter("PlayerPosY", TearsOfTheKingdom_CurrentField))
|
|
.AddSpec(
|
|
"0100000000010000",
|
|
spec =>
|
|
spec.AddValueFormatter("is_kids_mode", SuperMarioOdyssey_AssistMode)
|
|
)
|
|
.AddSpec(
|
|
"010075000ECBE000",
|
|
spec =>
|
|
spec.AddValueFormatter("is_kids_mode", SuperMarioOdysseyChina_AssistMode)
|
|
)
|
|
.AddSpec(
|
|
"010028600EBDA000",
|
|
spec => spec.AddValueFormatter("mode", SuperMario3DWorldOrBowsersFury)
|
|
)
|
|
.AddSpec( // Global & China IDs
|
|
["0100152000022000", "010075100E8EC000"],
|
|
spec => spec.AddValueFormatter("To", MarioKart8Deluxe_Mode)
|
|
);
|
|
|
|
private static PlayReportFormattedValue BreathOfTheWild_MasterMode(ref PlayReportValue value)
|
|
=> value.BoxedValue is 1 ? "Playing Master Mode" : PlayReportFormattedValue.ForceReset;
|
|
|
|
private static PlayReportFormattedValue TearsOfTheKingdom_CurrentField(ref PlayReportValue value) =>
|
|
value.PackedValue.AsDouble() switch
|
|
{
|
|
> 800d => "Exploring the Sky Islands",
|
|
< -201d => "Exploring the Depths",
|
|
_ => "Roaming Hyrule"
|
|
};
|
|
|
|
private static PlayReportFormattedValue SuperMarioOdyssey_AssistMode(ref PlayReportValue value)
|
|
=> value.BoxedValue is 1 ? "Playing in Assist Mode" : "Playing in Regular Mode";
|
|
|
|
private static PlayReportFormattedValue SuperMarioOdysseyChina_AssistMode(ref PlayReportValue value)
|
|
=> value.BoxedValue is 1 ? "Playing in 帮助模式" : "Playing in 普通模式";
|
|
|
|
private static PlayReportFormattedValue SuperMario3DWorldOrBowsersFury(ref PlayReportValue value)
|
|
=> value.BoxedValue is 0 ? "Playing Super Mario 3D World" : "Playing Bowser's Fury";
|
|
|
|
private static PlayReportFormattedValue MarioKart8Deluxe_Mode(ref PlayReportValue value)
|
|
=> value.BoxedValue switch
|
|
{
|
|
// Single Player
|
|
"Single" => "Single Player",
|
|
// Multiplayer
|
|
"Multi-2players" => "Multiplayer 2 Players",
|
|
"Multi-3players" => "Multiplayer 3 Players",
|
|
"Multi-4players" => "Multiplayer 4 Players",
|
|
// Wireless/LAN Play
|
|
"Local-Single" => "Wireless/LAN Play",
|
|
"Local-2players" => "Wireless/LAN Play 2 Players",
|
|
// CC Classes
|
|
"50cc" => "50cc",
|
|
"100cc" => "100cc",
|
|
"150cc" => "150cc",
|
|
"Mirror" => "Mirror (150cc)",
|
|
"200cc" => "200cc",
|
|
// Modes
|
|
"GrandPrix" => "Grand Prix",
|
|
"TimeAttack" => "Time Trials",
|
|
"VS" => "VS Races",
|
|
"Battle" => "Battle Mode",
|
|
"RaceStart" => "Selecting a Course",
|
|
"Race" => "Racing",
|
|
_ => PlayReportFormattedValue.ForceReset
|
|
};
|
|
}
|
|
}
|