/*
Copyright (C) 2002, Anton Gavrilov

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/
// version.h

#ifndef VERSION_H
#define VERSION_H

// Create our own define for Mac OS X
#if defined(__APPLE__) && defined(__MACH__)
# define MACOSX
#endif

// Define operating system text
#ifdef _WIN32
# define OS_NAME "Windows"
#elif defined(MACOSX)
# define OS_NAME "Mac OSX"
#else // Everything else gets to be Linux for now
# define OS_NAME "Linux"
# define LINUX // Everything else gets to be Linux for now ;)
#endif

#define HTTP_DOWNLOAD // Assume all operating systems for now support web download

#ifdef D3DQUAKE
# define RENDERER_NAME "D3D"
# define D3D_WORKAROUND
# define D3D_FEATURE
#elif defined(DX8QUAKE) // !d3dquake
# define D3D_NOT_CAPABLE
# define RENDERER_NAME "DX8"
#elif defined(GLQUAKE) // !d3dquake
# define D3D_NOT_CAPABLE
# define RENDERER_NAME "GL"
#else
# define D3D_NOT_CAPABLE
# define RENDERER_NAME "Win"
#endif // end !d3dquake


// Define Movie Capture Capable Setups (under current scheme)
#ifdef _WIN32
# define SUPPORTS_AVI_CAPTURE // Hopelessly Windows locked
# define SUPPORTS_INTERNATIONAL_KEYBOARD // I only know how to detect and address on Windows
# define SUPPORTS_CD_PLAYER // Windows yes, maybe Linux too.  Not MACOSX, Fruitz of Dojo not support it.
# define SUPPORTS_DEMO_AUTOPLAY // Windows only.  Uses file association
#endif

#if defined(_WIN32) || defined(Linux)
# define SUPPORTS_CHEATFREE_MODE // Only Windows and Linux have security modules.
#endif

// Define Hardware Gamma Capable Setups (under current scheme)
// Define ALT-ENTER and Video Mode Switch Capable GL Clients
#if defined(_WIN32) && defined(GLQUAKE) && !defined(D3DQUAKE)
# define SUPPORTS_ENHANCED_GAMMA // Windows only for now.  Probably can be multiplat in future.
# define SUPPORTS_GLVIDEO_MODESWITCH  // Windows only for now.  Probably can be multiplat in future.
#elif defined(D3DQUAKE) || defined(MACOSX)
# define SUPPORTS_SIMPLE_GAMMA  // Question: Does the brightness slider bar work.  WinQuake yes.  D3DQuake yes.  MACOSX GL yes.
#endif

#ifdef GLQUAKE
# define SUPPORTS_HLBSP // Only GL 
# define SUPPORTS_SKYBOX // Only GL
# define SUPPORTS_FOG // Only GL, D3D hates fog
#endif

#ifdef DX8QUAKE
//# undef  SUPPORTS_GLVIDEO_MODESWITCH  // Not now, isn't working right
# define DX8QUAKE_NO_DIALOGS  // No dialogs for DX8QUAKE
# define DX8QUAKE_NO_8BIT
# define DX8QUAKE_GET_GLMAXSIZE
# define DX8QUAKE_NO_FRONT_BACK_BUFFER
# define DX8QUAKE_ALT_MODEL_TEXTURE
# define DX8QUAKE_ALT_RESAMPLE
# define DX8QUAKE_NO_BINDTEXFUNC
#endif

#if defined(D3DQUAKE)// || defined(DX8QUAKE)
#undef SUPPORTS_FOG // Reverse that!
#endif


int build_number (void);
void Host_Version_f (void);
char *VersionString (void);

#endif 

