// (c) 1995-2014 by Artsoft Entertainment
// Holger Schemel
// info@artsoft.org
-// http://www.artsoft.org/
+// https://www.artsoft.org/
// ----------------------------------------------------------------------------
// platform.h
// ============================================================================
#ifndef PLATFORM_H
#define PLATFORM_H
-/* ========================================================================= */
-/* define main platform keywords */
-/* ========================================================================= */
+// ============================================================================
+// define main platform keywords
+// ============================================================================
-#if defined(WIN32) || defined(_WIN32)
-#define PLATFORM_WIN32
+#if defined(WIN32) || defined(_WIN32) || defined(_WIN64)
+#define PLATFORM_WINDOWS
#define PLATFORM_STRING "Windows"
#else
#define PLATFORM_UNIX
#endif
-/* ========================================================================= */
-/* define additional platform keywords */
-/* ========================================================================= */
+// ============================================================================
+// define additional platform keywords
+// ============================================================================
#if defined(_AIX)
#define PLATFORM_AIX
#if defined(AMIGA) || defined(__AMIGA) || defined(__amigados__)
#define PLATFORM_AMIGA
#undef PLATFORM_STRING
-#define PLATFORM_STRING "AmigaOS"
+#define PLATFORM_STRING "Amiga"
#endif
#if defined(__BEOS__)
#endif
#if defined(__APPLE__) && defined(__MACH__)
-#define PLATFORM_MACOSX
+#define PLATFORM_MAC
#undef PLATFORM_STRING
-#define PLATFORM_STRING "Mac OS X"
+#define PLATFORM_STRING "Mac"
#endif
#if defined(__NetBSD__)
#define PLATFORM_STRING "Android"
#endif
+#if defined(__EMSCRIPTEN__)
+#define PLATFORM_EMSCRIPTEN
+#undef PLATFORM_STRING
+#define PLATFORM_STRING "Emscripten"
+#endif
+
-/* ========================================================================= */
-/* define additional target keywords */
-/* ========================================================================= */
+// ============================================================================
+// define additional platform keywords for CPU architecture
+// ============================================================================
+
+#if defined(__x86_64__) || defined(__LP64__) || defined(_LP64)
+#define PLATFORM_64_BIT
+#define PLATFORM_XX_BIT_STRING "64-bit"
+#else
+#define PLATFORM_32_BIT
+#define PLATFORM_XX_BIT_STRING "32-bit"
+#endif
+
+
+// ============================================================================
+// define additional target keywords
+// ============================================================================
#if defined(TARGET_SDL2)
#ifndef TARGET_SDL
#endif
-/* ========================================================================= */
-/* this should better go into "system.h" or "features.h" (yet to be created) */
-/* ========================================================================= */
-
-#if defined(PLATFORM_UNIX) || defined(TARGET_SDL)
-#define NETWORK_AVALIABLE
-#endif
-
-#endif /* PLATFORM_H */
+#endif // PLATFORM_H