summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/avp/savegame.c5
-rw-r--r--src/avp/shapes/cube.c7
-rw-r--r--src/avp/weapons.c2
-rw-r--r--src/fixer.h62
-rw-r--r--src/md5.c253
-rw-r--r--src/md5.h46
-rw-r--r--src/win95/chunk.hpp3
-rw-r--r--src/win95/dummyobjectchunk.cpp2
-rw-r--r--src/win95/huffman.cpp32
-rw-r--r--src/win95/iff.hpp3
-rw-r--r--src/win95/ilbm_ext.cpp2
-rw-r--r--src/win95/ilbm_ext.hpp2
-rw-r--r--src/win95/media.hpp2
-rw-r--r--src/win95/platform.h62
14 files changed, 395 insertions, 88 deletions
diff --git a/src/avp/savegame.c b/src/avp/savegame.c
index a400ced..4ac3412 100644
--- a/src/avp/savegame.c
+++ b/src/avp/savegame.c
@@ -26,13 +26,12 @@
#include "bh_videoscreen.h"
#include "bh_plift.h"
#include "bh_ldoor.h"
-#include "AvP_Menus.h"
+#include "avp_menus.h"
#include "game_statistics.h"
-#include "AvP_UserProfile.h"
+#include "avp_userprofile.h"
#include "savegame.h"
#include "huffman.hpp"
-#include "smacker.h"
#define UseLocalAssert Yes
#include "ourasert.h"
diff --git a/src/avp/shapes/cube.c b/src/avp/shapes/cube.c
index ff5eb34..ab61f19 100644
--- a/src/avp/shapes/cube.c
+++ b/src/avp/shapes/cube.c
@@ -1,11 +1,8 @@
#include <stdio.h>
#include "system.h"
-
-#if PSX
-#else //PSX
-
#include "shape.h"
+
/*
CUBE_
@@ -164,5 +161,3 @@ int *CUBE_items[]={
2*1,1*1,0*1,3*1,
Term
};
-
-#endif //PSX \ No newline at end of file
diff --git a/src/avp/weapons.c b/src/avp/weapons.c
index de228e6..a6f3a0b 100644
--- a/src/avp/weapons.c
+++ b/src/avp/weapons.c
@@ -58,7 +58,7 @@
#include "targeting.h"
#include "extents.h"
#include "scream.h"
-#include "AvP_UserProfile.h"
+#include "avp_userprofile.h"
#define BITE_HEALTH_RECOVERY (50)
#define BITE_ARMOUR_RECOVERY (30)
diff --git a/src/fixer.h b/src/fixer.h
new file mode 100644
index 0000000..2414e70
--- /dev/null
+++ b/src/fixer.h
@@ -0,0 +1,62 @@
+#ifndef __FIXER_H__
+#define __FIXER_H__
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <inttypes.h> // int64_t
+
+#define PACKED __attribute__((packed))
+
+#ifndef min
+#define min(a, b) (((a) < (b)) ? (a) : (b))
+#endif
+
+#ifndef max
+#define max(a, b) (((a) > (b)) ? (a) : (b))
+#endif
+
+#define __cdecl
+
+#define TRUE 1
+#define FALSE 0
+
+#define stricmp strcasecmp
+#define _stricmp strcasecmp
+
+/* windows junk */
+typedef int GUID;
+typedef int DPID;
+typedef int HINSTANCE;
+typedef int WPARAM;
+typedef int LPARAM;
+typedef int HANDLE;
+
+typedef int BOOL;
+
+typedef struct RECT
+{
+ int left;
+ int top;
+ int right;
+ int bottom;
+} RECT;
+
+typedef RECT RECT_AVP;
+
+typedef int64_t __int64;
+
+typedef int FILETIME;
+
+typedef struct SYSTEMTIME
+{
+//#warning "TODO: SYSTEMTIME format is not correct"
+ int wHour;
+ int wMinute;
+ int wSecond;
+ int wYear;
+ int wMonth;
+ int wDay;
+} SYSTEMTIME;
+
+#endif
diff --git a/src/md5.c b/src/md5.c
new file mode 100644
index 0000000..aedacc7
--- /dev/null
+++ b/src/md5.c
@@ -0,0 +1,253 @@
+/*
+ * This code implements the MD5 message-digest algorithm.
+ * The algorithm is due to Ron Rivest. This code was
+ * written by Colin Plumb in 1993, no copyright is claimed.
+ * This code is in the public domain; do with it what you wish.
+ *
+ * Equivalent code is available from RSA Data Security, Inc.
+ * This code has been tested against that, and is equivalent,
+ * except that you don't need to include two pages of legalese
+ * with every copy.
+ *
+ * To compute the message digest of a chunk of bytes, declare an
+ * MD5Context structure, pass it to MD5Init, call MD5Update as
+ * needed on buffers full of bytes, and then call MD5Final, which
+ * will fill a supplied 16-byte array with the digest.
+ *
+ * Changed so as no longer to depend on Colin Plumb's `usual.h' header
+ * definitions; now uses stuff from dpkg's config.h.
+ * - Ian Jackson <ijackson@nyx.cs.du.edu>.
+ * Still in the public domain.
+ *
+ * md5_buffer added by Steven Fuller
+ */
+
+#include <string.h> /* for memcpy() */
+#include <sys/types.h> /* for stupid systems */
+#include <netinet/in.h> /* for ntohl() */
+
+//#include "config.h"
+#include "md5.h"
+
+#ifdef WORDS_BIGENDIAN
+void
+byteSwap(UWORD32 *buf, unsigned words)
+{
+ md5byte *p = (md5byte *)buf;
+
+ do {
+ *buf++ = (UWORD32)((unsigned)p[3] << 8 | p[2]) << 16 |
+ ((unsigned)p[1] << 8 | p[0]);
+ p += 4;
+ } while (--words);
+}
+#else
+#define byteSwap(buf,words)
+#endif
+
+/* md5_buffer frontend added for AvP */
+void md5_buffer(const char *buffer, unsigned len, char *digest)
+{
+ struct MD5Context md5c;
+
+ MD5Init(&md5c);
+ MD5Update(&md5c, (md5byte const *)buffer, len);
+ MD5Final((md5byte *)digest, &md5c);
+}
+
+/*
+ * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
+ * initialization constants.
+ */
+void
+MD5Init(struct MD5Context *ctx)
+{
+ ctx->buf[0] = 0x67452301;
+ ctx->buf[1] = 0xefcdab89;
+ ctx->buf[2] = 0x98badcfe;
+ ctx->buf[3] = 0x10325476;
+
+ ctx->bytes[0] = 0;
+ ctx->bytes[1] = 0;
+}
+
+/*
+ * Update context to reflect the concatenation of another buffer full
+ * of bytes.
+ */
+void
+MD5Update(struct MD5Context *ctx, md5byte const *buf, unsigned len)
+{
+ UWORD32 t;
+
+ /* Update byte count */
+
+ t = ctx->bytes[0];
+ if ((ctx->bytes[0] = t + len) < t)
+ ctx->bytes[1]++; /* Carry from low to high */
+
+ t = 64 - (t & 0x3f); /* Space available in ctx->in (at least 1) */
+ if (t > len) {
+ memcpy((md5byte *)ctx->in + 64 - t, buf, len);
+ return;
+ }
+ /* First chunk is an odd size */
+ memcpy((md5byte *)ctx->in + 64 - t, buf, t);
+ byteSwap(ctx->in, 16);
+ MD5Transform(ctx->buf, ctx->in);
+ buf += t;
+ len -= t;
+
+ /* Process data in 64-byte chunks */
+ while (len >= 64) {
+ memcpy(ctx->in, buf, 64);
+ byteSwap(ctx->in, 16);
+ MD5Transform(ctx->buf, ctx->in);
+ buf += 64;
+ len -= 64;
+ }
+
+ /* Handle any remaining bytes of data. */
+ memcpy(ctx->in, buf, len);
+}
+
+/*
+ * Final wrapup - pad to 64-byte boundary with the bit pattern
+ * 1 0* (64-bit count of bits processed, MSB-first)
+ */
+void
+MD5Final(md5byte digest[16], struct MD5Context *ctx)
+{
+ int count = ctx->bytes[0] & 0x3f; /* Number of bytes in ctx->in */
+ md5byte *p = (md5byte *)ctx->in + count;
+
+ /* Set the first char of padding to 0x80. There is always room. */
+ *p++ = 0x80;
+
+ /* Bytes of padding needed to make 56 bytes (-8..55) */
+ count = 56 - 1 - count;
+
+ if (count < 0) { /* Padding forces an extra block */
+ memset(p, 0, count + 8);
+ byteSwap(ctx->in, 16);
+ MD5Transform(ctx->buf, ctx->in);
+ p = (md5byte *)ctx->in;
+ count = 56;
+ }
+ memset(p, 0, count);
+ byteSwap(ctx->in, 14);
+
+ /* Append length in bits and transform */
+ ctx->in[14] = ctx->bytes[0] << 3;
+ ctx->in[15] = ctx->bytes[1] << 3 | ctx->bytes[0] >> 29;
+ MD5Transform(ctx->buf, ctx->in);
+
+ byteSwap(ctx->buf, 4);
+ memcpy(digest, ctx->buf, 16);
+ memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */
+}
+
+#ifndef ASM_MD5
+
+/* The four core functions - F1 is optimized somewhat */
+
+/* #define F1(x, y, z) (x & y | ~x & z) */
+#define F1(x, y, z) (z ^ (x & (y ^ z)))
+#define F2(x, y, z) F1(z, x, y)
+#define F3(x, y, z) (x ^ y ^ z)
+#define F4(x, y, z) (y ^ (x | ~z))
+
+/* This is the central step in the MD5 algorithm. */
+#define MD5STEP(f,w,x,y,z,in,s) \
+ (w += f(x,y,z) + in, w = (w<<s | w>>(32-s)) + x)
+
+/*
+ * The core of the MD5 algorithm, this alters an existing MD5 hash to
+ * reflect the addition of 16 longwords of new data. MD5Update blocks
+ * the data and converts bytes into longwords for this routine.
+ */
+void
+MD5Transform(UWORD32 buf[4], UWORD32 const in[16])
+{
+ register UWORD32 a, b, c, d;
+
+ a = buf[0];
+ b = buf[1];
+ c = buf[2];
+ d = buf[3];
+
+ MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
+ MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
+ MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
+ MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
+ MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
+ MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
+ MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
+ MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
+ MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
+ MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
+ MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
+ MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
+ MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
+ MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
+ MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
+ MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
+
+ MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
+ MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
+ MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
+ MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
+ MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
+ MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
+ MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
+ MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
+ MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
+ MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
+ MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
+ MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
+ MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
+ MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
+ MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
+ MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
+
+ MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
+ MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
+ MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
+ MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
+ MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
+ MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
+ MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
+ MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
+ MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
+ MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
+ MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
+ MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
+ MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
+ MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
+ MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
+ MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
+
+ MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
+ MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
+ MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
+ MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
+ MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
+ MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
+ MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
+ MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
+ MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
+ MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
+ MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
+ MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
+ MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
+ MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
+ MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
+ MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
+
+ buf[0] += a;
+ buf[1] += b;
+ buf[2] += c;
+ buf[3] += d;
+}
+
+#endif
diff --git a/src/md5.h b/src/md5.h
new file mode 100644
index 0000000..b3c4f80
--- /dev/null
+++ b/src/md5.h
@@ -0,0 +1,46 @@
+/*
+ * This is the header file for the MD5 message-digest algorithm.
+ * The algorithm is due to Ron Rivest. This code was
+ * written by Colin Plumb in 1993, no copyright is claimed.
+ * This code is in the public domain; do with it what you wish.
+ *
+ * Equivalent code is available from RSA Data Security, Inc.
+ * This code has been tested against that, and is equivalent,
+ * except that you don't need to include two pages of legalese
+ * with every copy.
+ *
+ * To compute the message digest of a chunk of bytes, declare an
+ * MD5Context structure, pass it to MD5Init, call MD5Update as
+ * needed on buffers full of bytes, and then call MD5Final, which
+ * will fill a supplied 16-byte array with the digest.
+ *
+ * Changed so as no longer to depend on Colin Plumb's `usual.h'
+ * header definitions; now uses stuff from dpkg's config.h
+ * - Ian Jackson <ijackson@nyx.cs.du.edu>.
+ * Still in the public domain.
+ *
+ * md5_buffer added by Steven Fuller
+ */
+
+#ifndef MD5_H
+#define MD5_H
+
+typedef unsigned int UWORD32;
+
+#define md5byte unsigned char
+
+struct MD5Context {
+ UWORD32 buf[4];
+ UWORD32 bytes[2];
+ UWORD32 in[16];
+};
+
+void MD5Init(struct MD5Context *context);
+void MD5Update(struct MD5Context *context, md5byte const *buf, unsigned len);
+void MD5Final(unsigned char digest[16], struct MD5Context *context);
+void MD5Transform(UWORD32 buf[4], UWORD32 const in[16]);
+
+/* md5_buffer frontend added for AvP */
+void md5_buffer(const char *buffer, unsigned len, char *digest);
+
+#endif /* !MD5_H */
diff --git a/src/win95/chunk.hpp b/src/win95/chunk.hpp
index e7afcb4..e021062 100644
--- a/src/win95/chunk.hpp
+++ b/src/win95/chunk.hpp
@@ -3,6 +3,7 @@
#ifndef _chunk_hpp
#define _chunk_hpp 1
+#include "fixer.h"
#if engine
@@ -78,6 +79,8 @@
extern char users_name[];
#endif
+#include "list_tem.hpp"
+
#ifndef RIFF_OPTIMIZE // define this to get compiler errors where you are calling the old slow functions
extern List<int> list_chunks_in_file (HANDLE &, const char * chunk_id);
#endif
diff --git a/src/win95/dummyobjectchunk.cpp b/src/win95/dummyobjectchunk.cpp
index 7fa86c9..0b9a6b6 100644
--- a/src/win95/dummyobjectchunk.cpp
+++ b/src/win95/dummyobjectchunk.cpp
@@ -1,4 +1,4 @@
-#include "DummyObjectChunk.hpp"
+#include "dummyobjectchunk.hpp"
#ifdef cencon
#define new my_new
diff --git a/src/win95/huffman.cpp b/src/win95/huffman.cpp
index b2a0275..64100e1 100644
--- a/src/win95/huffman.cpp
+++ b/src/win95/huffman.cpp
@@ -1,7 +1,9 @@
-#include "stdio.h"
-#include "stdlib.h"
-#include "string.h"
-#include "malloc.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "fixer.h"
+
#include "huffman.hpp"
/* KJL 17:12:25 17/09/98 - Huffman compression/decompression routines */
@@ -28,17 +30,17 @@ typedef struct HuffNode // 16-byte node structure
struct HuffNode *parent; // the THIRD four bytes, parent node
- union
- { // the FOURTH four bytes
+// union
+// { // the FOURTH four bytes
unsigned int bits; // the bit pattern of this end node
- struct
- {
- unsigned char flag;
- unsigned char curdepth;
- unsigned char maxdepth;
- unsigned char unused;
- };
- };
+// struct
+// {
+// unsigned char flag;
+// unsigned char curdepth;
+// unsigned char maxdepth;
+// unsigned char unused;
+// };
+// };
} HuffNode;
@@ -99,7 +101,7 @@ extern HuffmanPackage *HuffmanCompression(unsigned char *sourcePtr, int length)
{
outpackage->CodelengthCount[n] = Depths[n + 1];
}
- for (n = 0; n < 256; n++)
+ for (int n = 0; n < 256; n++)
{
outpackage->ByteAssignment[n] = SymbolCensus[n + 1].Symbol;
}
diff --git a/src/win95/iff.hpp b/src/win95/iff.hpp
index 9250171..b03b6b2 100644
--- a/src/win95/iff.hpp
+++ b/src/win95/iff.hpp
@@ -1,12 +1,13 @@
#ifndef _INCLUDED_IFF_HPP_
#define _INCLUDED_IFF_HPP_
+#include "fixer.h"
+
#if defined(_WIN32) || defined(WIN32) || defined(WINDOWS) || defined(_WINDOWS)
#define _IFF_WIN_TARGET
#include <windows.h>
#else // ! WIN32 && ! _WIN32 && ! WINDOWS && ! _WINDOWS
#include <stdio.h>
- #include <conio.h>
#endif // ! WIN32 && ! _WIN32 && ! WINDOWS && ! _WINDOWS
#include "media.hpp"
diff --git a/src/win95/ilbm_ext.cpp b/src/win95/ilbm_ext.cpp
index e1d8a4d..613cdd4 100644
--- a/src/win95/ilbm_ext.cpp
+++ b/src/win95/ilbm_ext.cpp
@@ -1,4 +1,4 @@
-#include "ILBM_ext.hpp"
+#include "ilbm_ext.hpp"
IFF_IMPLEMENT_DYNCREATE("ILBM","TRAN",IlbmTranChunk)
IFF_IMPLEMENT_DYNCREATE("ILBM","ALPH",IlbmAlphChunk)
diff --git a/src/win95/ilbm_ext.hpp b/src/win95/ilbm_ext.hpp
index 3aefce7..105e078 100644
--- a/src/win95/ilbm_ext.hpp
+++ b/src/win95/ilbm_ext.hpp
@@ -2,7 +2,7 @@
#define _INCLUDED_ILBM_EXT_HPP_
#include "iff.hpp"
-#include "iff_ILBM.hpp"
+#include "iff_ilbm.hpp"
namespace IFF
{
diff --git a/src/win95/media.hpp b/src/win95/media.hpp
index 73f36b7..3b49356 100644
--- a/src/win95/media.hpp
+++ b/src/win95/media.hpp
@@ -6,8 +6,8 @@
#include <windows.h>
#endif // WIN32 || _WIN32 || WINDOWS || _WINDOWS
+
#include <stdio.h>
-#include <conio.h>
#include <limits.h>
#include <string.h>
diff --git a/src/win95/platform.h b/src/win95/platform.h
index 44c245d..06abf3b 100644
--- a/src/win95/platform.h
+++ b/src/win95/platform.h
@@ -1,10 +1,7 @@
#ifndef PLATFORM_INCLUDED
#define PLATFORM_INCLUDED
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h> // int64_t
+#include "fixer.h"
#include "shape.h" // struct imageheader
@@ -18,55 +15,15 @@
extern "C" {
#endif
-#define PACKED __attribute__((packed))
-
//#include "fastfile.h"
-
#define platform_pc Yes
#define Saturn No
#define Hardware2dTextureClipping No
-#ifndef min
-#define min(a, b) (((a) < (b)) ? (a) : (b))
-#endif
-
-#ifndef max
-#define max(a, b) (((a) > (b)) ? (a) : (b))
-#endif
-
-#define TRUE 1
-#define FALSE 0
-
-#define stricmp strcasecmp
-#define _stricmp strcasecmp
-
/* Types */
-/* windows junk */
-typedef int GUID;
-typedef int DPID;
-typedef int HINSTANCE;
-typedef int WPARAM;
-typedef int LPARAM;
-
-typedef int BOOL;
-
-typedef struct RECT
-{
- int left;
- int top;
- int right;
- int bottom;
-} RECT;
-
-typedef RECT RECT_AVP;
-
-typedef int64_t __int64;
-
-/* Watcom C 64-bit values */
-
typedef struct LONGLONGCH {
unsigned int lo32;
@@ -74,26 +31,15 @@ typedef struct LONGLONGCH {
} LONGLONGCH;
-
-typedef int FILETIME;
-
-typedef struct SYSTEMTIME
-{
-//#warning "SYSTEMTIME format is not correct"
- int wHour;
- int wMinute;
- int wSecond;
- int wYear;
- int wMonth;
- int wDay;
-} SYSTEMTIME;
-
/*
Sine and Cosine
*/
+extern int sine[];
+extern int cosine[];
+
#define GetSin(a) sine[a]
#define GetCos(a) cosine[a]