summaryrefslogtreecommitdiff
path: root/Make.cs
diff options
context:
space:
mode:
authorMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-04 00:58:48 +1000
committerMelodi <62381002+Melodi17@users.noreply.github.com>2025-08-04 00:58:48 +1000
commit86452af2d48e2d1883dbfd67316e371f2a593bfe (patch)
treeed9ffb784ea016ce3da63fc7ee45ac73e30bac94 /Make.cs
Initial commit
Diffstat (limited to 'Make.cs')
-rw-r--r--Make.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/Make.cs b/Make.cs
new file mode 100644
index 0000000..6999c4d
--- /dev/null
+++ b/Make.cs
@@ -0,0 +1,48 @@
+namespace Q1Emu;
+
+using System;
+
+public static class Make
+{
+ public static u16 u16(u8 high, u8 low)
+ {
+ return (u16) ((high << 8) | low);
+ }
+
+ public static u16 u16(ref8 data)
+ {
+ if (data.Length < 2)
+ throw new ArgumentException("Data must contain at least 2 bytes to form a u16.");
+
+ return u16(data[0], data[1]);
+ }
+
+ public static u32 u32(u8 b1, u8 b2, u8 b3, u8 b4)
+ {
+ return (u32) ((b1 << 24) | (b2 << 16) | (b3 << 8) | b4);
+ }
+
+ public static u32 u32(ref8 data)
+ {
+ if (data.Length < 4)
+ throw new ArgumentException("Data must contain at least 4 bytes to form a u32.");
+
+ return u32(data[0], data[1], data[2], data[3]);
+ }
+
+ public static ref8 ref8(u16 value)
+ {
+ u8 high = (u8) (value >> 8);
+ u8 low = (u8) (value & 0xFF);
+ return new ref8([high, low], 0, 2);
+ }
+
+ public static ref8 ref8(u32 value)
+ {
+ u8 b1 = (u8) (value >> 24);
+ u8 b2 = (u8) (value >> 16);
+ u8 b3 = (u8) (value >> 8);
+ u8 b4 = (u8) (value & 0xFF);
+ return new ref8([b1, b2, b3, b4], 0, 4);
+ }
+} \ No newline at end of file