mirror of
https://github.com/shawns-valve/halflife.git
synced 2024-11-25 05:31:11 +00:00
a800ff8246
fixes ValveSoftware/halflife#1338 Changes: - added project files for Visual C++ 2010 Express - resolved function calls that would otherwise be ambiguous now - solved ARRAYSIZE macro and HSPRITE type collisions with Windows.h and winsock.h includes by guarding the includes TODO: We should think about if we actually should instead link to a .h that defines / redirects the required macros, so that platform differences would be limited to a few .cpp files (meaning not including windows.h in a huge number of files as it is now), see the issue above for details.
124 lines
2.2 KiB
C
124 lines
2.2 KiB
C
// port.h: portability helper
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined PORT_H
|
|
#define PORT_H
|
|
|
|
#include "archtypes.h" // DAL
|
|
|
|
#ifdef _WIN32
|
|
|
|
// Insert your headers here
|
|
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
|
|
#define WIN32_EXTRA_LEAN
|
|
|
|
#include "winsani_in.h"
|
|
#include <windows.h>
|
|
#include "winsani_out.h"
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
|
|
#define snprintf _snprintf
|
|
#define vsnprintf _vsnprintf
|
|
|
|
#else // _WIN32
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h> // exit()
|
|
#include <string.h> // strncpy()
|
|
#include <ctype.h> // tolower()
|
|
#include <limits.h>
|
|
#include <sys/time.h>
|
|
#include <errno.h>
|
|
#include <sys/ioctl.h>
|
|
|
|
typedef unsigned char BYTE;
|
|
typedef short int WORD;
|
|
typedef unsigned int DWORD;
|
|
typedef int32 LONG;
|
|
//typedef uint32 ULONG;
|
|
#ifndef ARCHTYPES_H
|
|
typedef uint32 ULONG;
|
|
#endif
|
|
typedef void *HANDLE;
|
|
#ifndef HMODULE
|
|
typedef void *HMODULE;
|
|
#endif
|
|
typedef char * LPSTR;
|
|
|
|
#define __cdecl
|
|
|
|
|
|
//const int MAX_PATH = PATH_MAX;
|
|
#define MAX_PATH PATH_MAX
|
|
|
|
#ifdef LINUX
|
|
typedef struct POINT_s
|
|
{
|
|
int x;
|
|
int y;
|
|
} POINT;
|
|
typedef void *HINSTANCE;
|
|
typedef void *HWND;
|
|
typedef void *HDC;
|
|
typedef void *HGLRC;
|
|
|
|
typedef struct RECT_s
|
|
{
|
|
int left;
|
|
int right;
|
|
int top;
|
|
int bottom;
|
|
} RECT;
|
|
#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
//#undef FALSE
|
|
//#undef TRUE
|
|
|
|
#ifdef OSX
|
|
//#else
|
|
//const bool FALSE = false;
|
|
//const bool TRUE = true;
|
|
#endif
|
|
#endif
|
|
|
|
#ifndef NULL
|
|
#ifdef __cplusplus
|
|
#define NULL 0
|
|
#else
|
|
#define NULL ((void *)0)
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
inline int ioctlsocket( int d, int cmd, uint32 *argp ) { return ioctl( d, cmd, argp ); }
|
|
inline int closesocket( int fd ) { return close( fd ); }
|
|
inline char * GetCurrentDirectory( size_t size, char * buf ) { return getcwd( buf, size ); }
|
|
inline int WSAGetLastError() { return errno; }
|
|
|
|
inline void DebugBreak( void ) { exit( 1 ); }
|
|
#endif
|
|
|
|
extern char g_szEXEName[ 4096 ];
|
|
|
|
#define _snprintf snprintf
|
|
|
|
#if defined(OSX)
|
|
#define SO_ARCH_SUFFIX ".dylib"
|
|
#else
|
|
#if defined ( __x86_64__ )
|
|
#define SO_ARCH_SUFFIX "_amd64.so"
|
|
#else
|
|
#define SO_ARCH_SUFFIX ".so"
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#endif // PORT_H
|