aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/System.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/System.h')
-rw-r--r--Minecraft.World/System.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/Minecraft.World/System.h b/Minecraft.World/System.h
new file mode 100644
index 00000000..06e265cc
--- /dev/null
+++ b/Minecraft.World/System.h
@@ -0,0 +1,39 @@
+#pragma once
+using namespace std;
+
+#include "ArrayWithLength.h"
+
+// 4J Jev, just thought it would be easier this way.
+#define ArrayCopyFunctionDeclaration(x) static void arraycopy(arrayWithLength<x> src, unsigned int srcPos, arrayWithLength<x> *dst, unsigned int dstPos, unsigned int length);
+#define ArrayCopyFunctionDefinition(x) void System::arraycopy(arrayWithLength<x> src, unsigned int srcPos, arrayWithLength<x> *dst, unsigned int dstPos, unsigned int length)\
+{\
+ arraycopy<x>(src,srcPos,dst,dstPos,length);\
+}\
+
+class System
+{
+ template <class T> static void arraycopy(arrayWithLength<T> src, unsigned int srcPos, arrayWithLength<T> *dst, unsigned int dstPos, unsigned int length);
+
+public:
+ ArrayCopyFunctionDeclaration(byte)
+ ArrayCopyFunctionDeclaration(Node *)
+ ArrayCopyFunctionDeclaration(Biome *)
+ ArrayCopyFunctionDeclaration(int)
+
+ static __int64 nanoTime();
+ static __int64 currentTimeMillis();
+ static __int64 currentRealTimeMillis(); // 4J Added to get real-world time for timestamps in saves
+
+ static void ReverseUSHORT(unsigned short *pusVal);
+ static void ReverseSHORT(short *psVal);
+ static void ReverseULONG(unsigned long *pulVal);
+ static void ReverseULONG(unsigned int *pulVal);
+ static void ReverseINT(int *piVal);
+ static void ReverseULONGLONG(__int64 *pullVal);
+ static void ReverseWCHARA(WCHAR *pwch,int iLen);
+
+};
+
+#define MAKE_FOURCC(ch0, ch1, ch2, ch3) \
+ ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
+ ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))