From fdf5201da4b53e7973217a93145d20ca34ee04eb Mon Sep 17 00:00:00 2001 From: Crsky Date: Mon, 23 Mar 2026 23:30:33 +0800 Subject: [PATCH] perf: Improve BigEndian --- GameRes/Utility.cs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/GameRes/Utility.cs b/GameRes/Utility.cs index 269425c7..58ed7908 100644 --- a/GameRes/Utility.cs +++ b/GameRes/Utility.cs @@ -200,6 +200,30 @@ namespace GameRes.Utility return (int)ToUInt32 (value, index); } + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static ushort ToUInt16 (byte[] value, int index) + { + return (ushort)(value[index] << 8 | value[index+1]); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static short ToInt16 (byte[] value, int index) + { + return (short)(value[index] << 8 | value[index+1]); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static uint ToUInt32 (byte[] value, int index) + { + return (uint)(value[index] << 24 | value[index+1] << 16 | value[index+2] << 8 | value[index+3]); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int ToInt32 (byte[] value, int index) + { + return (int)ToUInt32 (value, index); + } + public static void Pack (ushort value, byte[] buf, int index) { buf[index] = (byte)(value >> 8);