mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-09-22 14:55:11 +00:00
uint is more correct
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using SabreTools.IO.Extensions;
|
||||
|
||||
namespace SabreTools.Data.Extensions
|
||||
@@ -5,13 +6,12 @@ namespace SabreTools.Data.Extensions
|
||||
public static class XboxExecutable
|
||||
{
|
||||
/// <summary>
|
||||
/// Convert a 4-byte value to a formatted XBE title ID
|
||||
/// Convert a UInt32 to a formatted XBE title ID
|
||||
/// </summary>
|
||||
public static string? ToFormattedXBETitleID(this byte[]? data)
|
||||
public static string? ToFormattedXBETitleID(this uint value)
|
||||
{
|
||||
// Ignore invalid data
|
||||
if (data is null || data.Length < 4)
|
||||
return null;
|
||||
// Convert to a byte array
|
||||
byte[] data = BitConverter.GetBytes(value);
|
||||
|
||||
// Create the prefix
|
||||
string prefix1 = (0x41 <= data[3] && data[3] <= 0x5A) || (0x30 <= data[3] && data[3] <= 0x39)
|
||||
|
||||
@@ -21,8 +21,7 @@ namespace SabreTools.Data.Models.XboxExecutable
|
||||
/// Title ID for this application. This field doesn't appear to matter with
|
||||
/// unsigned code, so it can be set to zero.
|
||||
/// </summary>
|
||||
/// <remarks>4 bytes</remarks>
|
||||
public byte[] TitleID { get; set; } = new byte[4];
|
||||
public uint TitleID { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Title name for this application (i.e. L"The Simpsons Road Rage").
|
||||
@@ -35,7 +34,7 @@ namespace SabreTools.Data.Models.XboxExecutable
|
||||
/// to matter with unsigned code (or signed code, for that matter), so they can all
|
||||
/// be set to zero.
|
||||
/// </summary>
|
||||
public byte[][] AlternativeTitleIDs { get; set; } = new byte[16][];
|
||||
public uint[] AlternativeTitleIDs { get; set; } = new uint[16];
|
||||
|
||||
/// <summary>
|
||||
/// Allowed media types for this .XBE.
|
||||
|
||||
@@ -153,13 +153,13 @@ namespace SabreTools.Serialization.Readers
|
||||
|
||||
obj.SizeOfCertificate = data.ReadUInt32LittleEndian();
|
||||
obj.TimeDate = data.ReadUInt32LittleEndian();
|
||||
obj.TitleID = data.ReadBytes(4);
|
||||
obj.TitleID = data.ReadUInt32LittleEndian();
|
||||
obj.TitleName = data.ReadBytes(0x50);
|
||||
|
||||
obj.AlternativeTitleIDs = new byte[16][];
|
||||
obj.AlternativeTitleIDs = new uint[16];
|
||||
for (int i = 0; i < obj.AlternativeTitleIDs.Length; i++)
|
||||
{
|
||||
obj.AlternativeTitleIDs[i] = data.ReadBytes(4);
|
||||
obj.AlternativeTitleIDs[i] = data.ReadUInt32LittleEndian();
|
||||
}
|
||||
|
||||
obj.AllowedMediaTypes = (AllowedMediaTypes)data.ReadUInt32LittleEndian();
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace SabreTools.Serialization.Wrappers
|
||||
#region Extension Properties
|
||||
|
||||
/// <inheritdoc cref="Certificate.AlternativeTitleIDs"/>
|
||||
public byte[][]? AlternativeTitleIDsBytes => Certificate?.AlternativeTitleIDs;
|
||||
public uint[]? AlternativeTitleIDs => Certificate?.AlternativeTitleIDs;
|
||||
|
||||
/// <inheritdoc cref="Certificate.AlternativeTitleIDs"/>
|
||||
public string[]? AlternativeTitleIDsStrings
|
||||
@@ -26,10 +26,10 @@ namespace SabreTools.Serialization.Wrappers
|
||||
get
|
||||
{
|
||||
// Ignore invalid alternative title IDs
|
||||
if (AlternativeTitleIDsBytes is null)
|
||||
if (AlternativeTitleIDs is null)
|
||||
return null;
|
||||
|
||||
return Array.ConvertAll(AlternativeTitleIDsBytes, ba => ba.ToFormattedXBETitleID() ?? "[NULL]");
|
||||
return Array.ConvertAll(AlternativeTitleIDs, ba => ba.ToFormattedXBETitleID() ?? "[NULL]");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,10 +71,10 @@ namespace SabreTools.Serialization.Wrappers
|
||||
public ThreadLocalStorage? ThreadLocalStorage => Model.ThreadLocalStorage;
|
||||
|
||||
/// <inheritdoc cref="Certificate.TitleID"/>
|
||||
public byte[]? TitleIDBytes => Certificate?.TitleID;
|
||||
public uint TitleID => Certificate?.TitleID ?? 0;
|
||||
|
||||
/// <inheritdoc cref="Certificate.TitleID"/>
|
||||
public string? TitleIDString => TitleIDBytes.ToFormattedXBETitleID();
|
||||
public string? TitleIDString => TitleID.ToFormattedXBETitleID();
|
||||
|
||||
/// <inheritdoc cref="Certificate.TitleName"/>
|
||||
public string? TitleName
|
||||
|
||||
Reference in New Issue
Block a user