Got the Windows WIP branch to build in Linux.

This commit is contained in:
Steven Fuller 2008-05-18 02:33:57 -07:00 committed by Patryk Obara
parent 7213d91585
commit 0cab37ee8b
3 changed files with 226 additions and 273 deletions

View file

@ -1,5 +1,6 @@
#define _BSD_SOURCE
#include <assert.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
@ -12,6 +13,7 @@
#include <dirent.h>
#include <fnmatch.h>
#include "fixer.h"
#include "files.h"
static char *local_dir;

View file

@ -27,6 +27,168 @@
// not sure where this was originally defined.
#define RGBA_MAKE(r, g, b, a) ((((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
#else
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <inttypes.h> /* int64_t */
#include "files.h"
#ifdef __cplusplus
extern "C" {
#endif
#define PACKED_PUSH
#define PACKED_POP
#define PACKED __attribute__((packed))
/* windows junk */
#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 NO_ERROR 0
#define TRUE 1
#define FALSE 0
#define stricmp strcasecmp
#define _stricmp strcasecmp
#define strnicmp strncasecmp
#define _strnicmp strncasecmp
#define lstrlen strlen
#define lstrcat strcat
#define _tcslen strlen
#define _tcscpy strcpy
#define _snprintf snprintf
size_t _mbclen(const unsigned char *s);
#define RGBA_MAKE(r, g, b, a) ((((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
#define MAX_PATH PATH_MAX
typedef int GUID;
typedef int HINSTANCE;
typedef int WPARAM;
typedef int LPARAM;
typedef int HANDLE;
typedef int HRESULT;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int DWORD;
typedef long LONG;
typedef char TCHAR;
typedef DWORD * LPDWORD;
typedef char * LPTSTR;
#define TEXT(x) x
typedef struct RECT
{
int left;
int top;
int right;
int bottom;
} RECT;
#if !defined(__INTEL_COMPILER)
typedef int64_t __int64;
#else
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#endif
#define VK_BACK 1
#define VK_END 2
#define VK_HOME 3
#define VK_LEFT 4
#define VK_UP 5
#define VK_RIGHT 6
#define VK_DOWN 7
#define VK_INSERT 8
#define VK_DELETE 9
#define VK_TAB 10
#define INVALID_HANDLE_VALUE -1
#define GENERIC_WRITE 0x0001
#define CREATE_ALWAYS 0x0002
#define FILE_FLAG_RANDOM_ACCESS 0x0004
#define GENERIC_READ 0x0008
#define OPEN_EXISTING 0x0010
#define FILE_CURRENT 0x0020
#define FILE_BEGIN 0x0040
#define FILE_END 0x0080
#define FILE_SHARE_READ 0x0100
#define FILE_SHARE_WRITE 0x0200
#define OPEN_ALWAYS 0x0400
#define FILE_ATTRIBUTE_READONLY 0x0800
#define FILE_ATTRIBUTE_DIRECTORY 0x1000
#define FILE_ATTRIBUTE_NORMAL 0x2000
HANDLE CreateFile(const char *file, int write, int x, int y, int flags, int flags2, int z);
HANDLE CreateFileA(const char *file, int write, int x, int y, int flags, int flags2, int z);
int WriteFile(HANDLE file, const void *data, int len, /* unsigned long */ void *byteswritten, int x);
int ReadFile(HANDLE file, void *data, int len, /* unsigned long */ void *bytesread, int x);
int GetFileSize(HANDLE file, int x);
int CloseHandle(HANDLE file);
int DeleteFile(const char *file);
int DeleteFileA(const char *file);
int GetDiskFreeSpace(int x, unsigned long *a, unsigned long *b, unsigned long *c, unsigned long *d);
int CreateDirectory(char *dir, int x);
int MoveFile(const char *newfile, const char *oldfile);
int MoveFileA(const char *newfile, const char *oldfile);
int CopyFile(const char *newfile, const char *oldfile, int x);
int GetFileAttributes(const char *file);
int GetFileAttributesA(const char *file);
unsigned int SetFilePointer(HANDLE file, int x, int y, int z);
int SetEndOfFile(HANDLE file);
unsigned int timeGetTime();
unsigned int GetTickCount();
#define JOYCAPS_HASR 1
typedef struct JOYINFOEX
{
DWORD dwXpos;
DWORD dwYpos;
DWORD dwRpos;
DWORD dwUpos;
DWORD dwVpos;
DWORD dwPOV;
} JOYINFOEX;
typedef struct JOYCAPS
{
int wCaps;
} JOYCAPS;
#ifdef __cplusplus
};
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
// unused placeholder directplay code.
typedef int DPID;
@ -86,224 +248,8 @@ typedef struct DPMSG_DESTROYPLAYERORGROUP
int dwPlayerType;
} DPMSG_DESTROYPLAYERORGROUP;
typedef DPMSG_DESTROYPLAYERORGROUP * LPDPMSG_DESTROYPLAYERORGROUP;
#else
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
//#include <stdint.h> /* int64_t */
#include "files.h"
#define PACKED_PUSH
#define PACKED_POP
#define PACKED __attribute__((packed))
/* windows junk */
#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 NO_ERROR 0
#define TRUE 1
#define FALSE 0
#define stricmp strcasecmp
#define _stricmp strcasecmp
#define strnicmp strncasecmp
#define _strnicmp strncasecmp
#define lstrlen strlen
#define lstrcat strcat
#define _tcslen strlen
#define _tcscpy strcpy
#define _snprintf snprintf
size_t _mbclen(const unsigned char *s);
#define RGBA_MAKE(r, g, b, a) ((((a) << 24) | ((r) << 16) | ((g) << 8) | (b)))
#define MAX_PATH PATH_MAX
typedef int GUID;
typedef int DPID;
typedef int HINSTANCE;
typedef int WPARAM;
typedef int LPARAM;
typedef int HANDLE;
typedef int HRESULT;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned int DWORD;
typedef long LONG;
typedef char TCHAR;
typedef DWORD * LPDWORD;
typedef char * LPTSTR;
#define TEXT(x) x
typedef struct RECT
{
int left;
int top;
int right;
int bottom;
} RECT;
typedef RECT RECT_AVP;
#if !defined(__INTEL_COMPILER)
typedef int64_t __int64;
#else
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#endif
#define VK_BACK 1
#define VK_END 2
#define VK_HOME 3
#define VK_LEFT 4
#define VK_UP 5
#define VK_RIGHT 6
#define VK_DOWN 7
#define VK_INSERT 8
#define VK_DELETE 9
#define VK_TAB 10
#define INVALID_HANDLE_VALUE -1
#define GENERIC_WRITE 0x0001
#define CREATE_ALWAYS 0x0002
#define FILE_FLAG_RANDOM_ACCESS 0x0004
#define GENERIC_READ 0x0008
#define OPEN_EXISTING 0x0010
#define FILE_CURRENT 0x0020
#define FILE_BEGIN 0x0040
#define FILE_END 0x0080
#define FILE_SHARE_READ 0x0100
#define FILE_SHARE_WRITE 0x0200
#define OPEN_ALWAYS 0x0400
#define FILE_ATTRIBUTE_READONLY 0x0800
#define FILE_ATTRIBUTE_DIRECTORY 0x1000
#define FILE_ATTRIBUTE_NORMAL 0x2000
HANDLE CreateFile(const char *file, int write, int x, int y, int flags, int flags2, int z);
HANDLE CreateFileA(const char *file, int write, int x, int y, int flags, int flags2, int z);
int WriteFile(HANDLE file, const void *data, int len, /* unsigned long */ void *byteswritten, int x);
int ReadFile(HANDLE file, void *data, int len, /* unsigned long */ void *bytesread, int x);
int GetFileSize(HANDLE file, int x);
int CloseHandle(HANDLE file);
int DeleteFile(const char *file);
int DeleteFileA(const char *file);
int GetDiskFreeSpace(int x, unsigned long *a, unsigned long *b, unsigned long *c, unsigned long *d);
int CreateDirectory(char *dir, int x);
int MoveFile(const char *newfile, const char *oldfile);
int MoveFileA(const char *newfile, const char *oldfile);
int CopyFile(const char *newfile, const char *oldfile, int x);
int GetFileAttributes(const char *file);
int GetFileAttributesA(const char *file);
unsigned int SetFilePointer(HANDLE file, int x, int y, int z);
int SetEndOfFile(HANDLE file);
unsigned int timeGetTime();
unsigned int GetTickCount();
typedef struct DPNAME
{
int dwSize;
char *lpszShortNameA;
char *lpszLongNameA;
} DPNAME;
#define DP_OK 0
#define DPRECEIVE_ALL 1
#define DPSYS_ADDPLAYERTOGROUP 2
#define DPSYS_CREATEPLAYERORGROUP 3
#define DPPLAYERTYPE_PLAYER 4
#define DPSYS_DELETEPLAYERFROMGROUP 5
#define DPSYS_HOST 6
#define DPSYS_SESSIONLOST 7
#define DPSYS_SETPLAYERORGROUPDATA 8
#define DPSYS_SETPLAYERORGROUPNAME 9
#define DPEXT_HEADER_SIZE 10
#define DPERR_BUSY 11
#define DPERR_CONNECTIONLOST 12
#define DPERR_INVALIDPARAMS 13
#define DPERR_INVALIDPLAYER 14
#define DPERR_NOTLOGGEDIN 15
#define DPERR_SENDTOOBIG 16
#define DPERR_BUFFERTOOSMALL 17
#define DPID_SYSMSG 18
#define DPSYS_DESTROYPLAYERORGROUP 19
#define DPID_ALLPLAYERS 20
typedef struct DPMSG_GENERIC
{
int dwType;
} DPMSG_GENERIC;
typedef DPMSG_GENERIC * LPDPMSG_GENERIC;
typedef struct DPMSG_CREATEPLAYERORGROUP
{
int dwType;
DPID dpId;
int dwPlayerType;
DPNAME dpnName;
} DPMSG_CREATEPLAYERORGROUP;
typedef DPMSG_CREATEPLAYERORGROUP * LPDPMSG_CREATEPLAYERORGROUP;
typedef struct DPMSG_DESTROYPLAYERORGROUP
{
int dwType;
DPID dpId;
int dwPlayerType;
} DPMSG_DESTROYPLAYERORGROUP;
typedef DPMSG_DESTROYPLAYERORGROUP * LPDPMSG_DESTROYPLAYERORGROUP;
#define JOYCAPS_HASR 1
typedef struct JOYINFOEX
{
DWORD dwXpos;
DWORD dwYpos;
DWORD dwRpos;
DWORD dwUpos;
DWORD dwVpos;
DWORD dwPOV;
} JOYINFOEX;
typedef struct JOYCAPS
{
int wCaps;
} JOYCAPS;
#ifdef __cplusplus
};
#endif
#endif
#endif

View file

@ -2,16 +2,17 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <assert.h>
#include "SDL.h"
#include "oglfunc.h"
#if !defined(_MSC_VER)
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
#endif
///#include <getopt.h>
#include <getopt.h>
#endif
#include "fixer.h"
#include "3dc.h"
@ -1097,23 +1098,25 @@ void FlipBuffers()
char *AvpCDPath = 0;
///static const struct option getopt_long_options[] = {
///{ "help", 0, NULL, 'h' },
///{ "version", 0, NULL, 'v' },
///{ "fullscreen", 0, NULL, 'f' },
///{ "windowed", 0, NULL, 'w' },
///{ "nosound", 0, NULL, 's' },
///{ "nocdrom", 0, NULL, 'c' },
///{ "nojoy", 0, NULL, 'j' },
///{ "debug", 0, NULL, 'd' },
///{ "withgl", 1, NULL, 'g' },
////*
///{ "loadrifs", 1, NULL, 'l' },
///{ "server", 0, someval, 1 },
///{ "client", 1, someval, 2 },
///*/
///{ NULL, 0, NULL, 0 },
///};
#if !defined(_MSC_VER)
static const struct option getopt_long_options[] = {
{ "help", 0, NULL, 'h' },
{ "version", 0, NULL, 'v' },
{ "fullscreen", 0, NULL, 'f' },
{ "windowed", 0, NULL, 'w' },
{ "nosound", 0, NULL, 's' },
{ "nocdrom", 0, NULL, 'c' },
{ "nojoy", 0, NULL, 'j' },
{ "debug", 0, NULL, 'd' },
{ "withgl", 1, NULL, 'g' },
/*
{ "loadrifs", 1, NULL, 'l' },
{ "server", 0, someval, 1 },
{ "client", 1, someval, 2 },
*/
{ NULL, 0, NULL, 0 },
};
#endif
static const char *usage_string =
"Aliens vs Predator Linux - http://www.icculus.org/avp/\n"
@ -1130,45 +1133,47 @@ static const char *usage_string =
int main(int argc, char *argv[])
{
#if !defined(_MSC_VER)
int c;
/// opterr = 0;
/// while ((c = getopt_long(argc, argv, "hvfwscdg:", getopt_long_options, NULL)) != -1) {
/// switch(c) {
/// case 'h':
/// printf("%s", usage_string);
/// exit(EXIT_SUCCESS);
/// case 'v':
/// printf("%s", AvPVersionString);
/// exit(EXIT_SUCCESS);
/// case 'f':
/// WantFullscreen = 1;
/// break;
/// case 'w':
/// WantFullscreen = 0;
/// break;
/// case 's':
/// WantSound = 0;
/// break;
/// case 'c':
/// WantCDRom = 0;
/// break;
/// case 'j':
/// WantJoystick = 0;
/// break;
/// case 'd': {
/// extern int DebuggingCommandsActive;
/// DebuggingCommandsActive = 1;
/// }
/// break;
/// case 'g':
/// opengl_library = optarg;
/// break;
/// default:
/// printf("%s", usage_string);
/// exit(EXIT_FAILURE);
/// }
/// }
opterr = 0;
while ((c = getopt_long(argc, argv, "hvfwscdg:", getopt_long_options, NULL)) != -1) {
switch(c) {
case 'h':
printf("%s", usage_string);
exit(EXIT_SUCCESS);
case 'v':
printf("%s", AvPVersionString);
exit(EXIT_SUCCESS);
case 'f':
WantFullscreen = 1;
break;
case 'w':
WantFullscreen = 0;
break;
case 's':
WantSound = 0;
break;
case 'c':
WantCDRom = 0;
break;
case 'j':
WantJoystick = 0;
break;
case 'd': {
extern int DebuggingCommandsActive;
DebuggingCommandsActive = 1;
}
break;
case 'g':
opengl_library = optarg;
break;
default:
printf("%s", usage_string);
exit(EXIT_FAILURE);
}
}
#endif
InitGameDirectories(argv[0]);