diff --git a/stepmania/src/archutils/Win32/arch_setup.h b/stepmania/src/archutils/Win32/arch_setup.h index d80ab4e7de..370bfd4fe6 100644 --- a/stepmania/src/archutils/Win32/arch_setup.h +++ b/stepmania/src/archutils/Win32/arch_setup.h @@ -1,11 +1,15 @@ #ifndef ARCH_SETUP_WINDOWS_H #define ARCH_SETUP_WINDOWS_H -/* Fix Windows breakage. */ - +/* Fix VC breakage. */ #define PATH_MAX _MAX_PATH +#if _MSC_VER < 1300 /* VC6, not VC7 */ +#define NEED_MINMAX_TEMPLATES 1 +#endif + #include /* has stuff that should be in unistd.h */ +#include /* needs to be included before our fixes below */ #define getcwd _getcwd #define wgetcwd _wgetcwd @@ -17,5 +21,20 @@ /* mkdir is missing the mode arg */ #define mkdir(p,m) mkdir(p) +#pragma warning (disable : 4786) // turn off broken debugger warning +#pragma warning (disable : 4512) // assignment operator could not be generated (so?) +/* "unreferenced formal parameter"; we *want* that in many cases */ +#pragma warning (disable : 4100) +/* "case 'aaa' is not a valid value for switch of enum 'bbb' + * Actually, this is a valid warning, but we do it all over the + * place, eg. with ScreenMessages. Those should be fixed, but later. XXX */ +#pragma warning (disable : 4063) +#pragma warning (disable : 4127) +#pragma warning (disable : 4786) /* VC6: identifier was truncated to '255' characters in the debug information */ + +#undef min +#undef max +#define NOMINMAX /* make sure Windows doesn't try to define this */ + #endif