#include // This is the common include for platform/renderer specific skeletons(glfw.cpp, win.cpp etc.) and using cross platform things (like Windows directories wrapper, platform specific global arrays etc.) // Functions that's different on glfw and win but have same signature, should be located on platform.h. #ifdef _WIN32 // This only has as Win header. #include "win.h" extern DWORD _dwOperatingSystemVersion; #else char *strupr(char *str); char *strlwr(char *str); enum { OS_WIN98, OS_WIN2000, OS_WINNT, OS_WINXP, }; enum { LANG_OTHER, LANG_GERMAN, LANG_FRENCH, LANG_ENGLISH, LANG_ITALIAN, LANG_SPANISH, }; enum { SUBLANG_OTHER, SUBLANG_ENGLISH_AUS }; extern long _dwOperatingSystemVersion; int casepath(char const *path, char *r); #endif #ifdef RW_GL3 typedef struct { GLFWwindow* window; RwBool fullScreen; RwV2d lastMousePos; double mouseWheel; // glfw doesn't cache it RwInt8 joy1id; RwInt8 joy2id; } psGlobalType; #define PSGLOBAL(var) (((psGlobalType *)(RsGlobal.ps))->var) void CapturePad(RwInt32 padID); void joysChangeCB(int jid, int event); #endif enum eGameState { GS_START_UP = 0, GS_INIT_LOGO_MPEG, GS_LOGO_MPEG, GS_INIT_INTRO_MPEG, GS_INTRO_MPEG, GS_INIT_ONCE, GS_INIT_FRONTEND, GS_FRONTEND, GS_INIT_PLAYING_GAME, GS_PLAYING_GAME, #ifndef MASTER GS_ANIMVIEWER, #endif }; extern RwUInt32 gGameState; RwBool IsForegroundApp(); #ifndef MAX_PATH #if !defined _WIN32 || defined __MINGW32__ #define MAX_PATH PATH_MAX #else #define MAX_PATH 260 #endif #endif // Codes compatible with Windows and Linux #ifndef _WIN32 #define DeleteFile unlink // Needed for save games struct SYSTEMTIME { RwUInt16 wYear; RwUInt16 wMonth; RwUInt16 wDayOfWeek; RwUInt16 wDay; RwUInt16 wHour; RwUInt16 wMinute; RwUInt16 wSecond; RwUInt16 wMilliseconds; }; void GetLocalTime_CP(SYSTEMTIME* out); #define GetLocalTime GetLocalTime_CP #define OutputDebugString(s) re3_debug("[DBG-2]: %s\n",s) #endif // Compatible with Linux/POSIX and MinGW on Windows #ifndef _WIN32 #include #include #include #include #include #include typedef void* HANDLE; #define INVALID_HANDLE_VALUE NULL #define FindClose(h) closedir((DIR*)h) #define LOCALE_USER_DEFAULT 0 #define DATE_SHORTDATE 0 struct WIN32_FIND_DATA { char extension[32]; // for searching char folder[32]; // for searching char cFileName[256]; // because tSkinInfo has it 256 time_t ftLastWriteTime; }; HANDLE FindFirstFile(const char*, WIN32_FIND_DATA*); bool FindNextFile(HANDLE, WIN32_FIND_DATA*); void FileTimeToSystemTime(time_t*, SYSTEMTIME*); void GetDateFormat(int, int, SYSTEMTIME*, int, char*, int); #endif