diff --git a/project/msvc/README.txt b/project/msvc/README.txt
index e014c13c..e43f40fa 100644
--- a/project/msvc/README.txt
+++ b/project/msvc/README.txt
@@ -1,3 +1,22 @@
-Project files for MS Visual Studio 2010
-Edit project properties to set proper include and libraries directory for SDL 1.2
-and SDL image 1.2
+Project files for MS Visual Studio 2010 :
+
+By default the project expect SDL 1.2 SDL Image 1.2 and Lua 5.3 to be installed
+in directories :
+ ..\..\..\..\SDL-1.2.15
+ ..\..\..\..\SDL_image-1.2.12
+ ..\..\..\..\lua
+
+That is, if grafX2 sources are in C:\stuff\code\grafX2
+Visual studio project files are in C:\stuff\code\grafX2\project\msvc
+and it is expected you have C:\stuff\lua etc.
+
+Download precompiled libraries from :
+
+ https://www.libsdl.org/download-1.2.php :
+ https://www.libsdl.org/release/SDL-devel-1.2.15-VC.zip
+
+ https://www.libsdl.org/projects/SDL_image/release-1.2.html
+ https://www.libsdl.org/projects/SDL_image/release/SDL_image-devel-1.2.12-VC.zip
+
+ http://luabinaries.sourceforge.net/
+ https://sourceforge.net/projects/luabinaries/files/5.3.4/Windows%20Libraries/Static/
diff --git a/project/msvc/grafx2.vcxproj b/project/msvc/grafx2.vcxproj
index 8c7f29f3..d565d621 100644
--- a/project/msvc/grafx2.vcxproj
+++ b/project/msvc/grafx2.vcxproj
@@ -52,15 +52,15 @@
Level3
Disabled
- NOTTF;__no_pnglib__;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
- ..\..\..\..\SDL_image-1.2.12\include;..\..\..\..\SDL-1.2.15\include;%(AdditionalIncludeDirectories)
+ NOTTF;__ENABLE_LUA__;__no_pnglib__;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ ..\..\..\..\SDL_image-1.2.12\include;..\..\..\..\SDL-1.2.15\include;..\..\..\..\lua\include;%(AdditionalIncludeDirectories)
4244;%(DisableSpecificWarnings)
Windows
true
- SDL.lib;SDLmain.lib;SDL_image.lib;%(AdditionalDependencies)
- ..\..\..\..\SDL-1.2.15\lib\x86;..\..\..\..\SDL_image-1.2.12\lib\x86;%(AdditionalLibraryDirectories)
+ SDL.lib;SDLmain.lib;SDL_image.lib;lua53.lib;%(AdditionalDependencies)
+ ..\..\..\..\SDL-1.2.15\lib\x86;..\..\..\..\SDL_image-1.2.12\lib\x86;..\..\..\..\lua;%(AdditionalLibraryDirectories)
@@ -71,8 +71,8 @@
MaxSpeed
true
true
- NOTTF;__no_pnglib__;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
- ..\..\..\..\SDL_image-1.2.12\include;..\..\..\..\SDL-1.2.15\include;%(AdditionalIncludeDirectories)
+ NOTTF;__ENABLE_LUA__;__no_pnglib__;_CRT_SECURE_NO_WARNINGS;_USE_MATH_DEFINES;WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)
+ ..\..\..\..\SDL_image-1.2.12\include;..\..\..\..\SDL-1.2.15\include;..\..\..\..\lua\include;%(AdditionalIncludeDirectories)
4244;%(DisableSpecificWarnings)
@@ -80,8 +80,8 @@
true
true
true
- SDL.lib;SDLmain.lib;SDL_image.lib;%(AdditionalDependencies)
- ..\..\..\..\SDL-1.2.15\lib\x86;..\..\..\..\SDL_image-1.2.12\lib\x86;%(AdditionalLibraryDirectories)
+ SDL.lib;SDLmain.lib;SDL_image.lib;lua53.lib;%(AdditionalDependencies)
+ ..\..\..\..\SDL-1.2.15\lib\x86;..\..\..\..\SDL_image-1.2.12\lib\x86;..\..\..\..\lua;%(AdditionalLibraryDirectories)
diff --git a/src/factory.c b/src/factory.c
index 38ed92d8..31801301 100644
--- a/src/factory.c
+++ b/src/factory.c
@@ -59,6 +59,10 @@ char * Bound_script[10];
#include // for DBL_MAX
#include //for INT_MIN
#include // strncpy()
+#if defined(_MSC_VER)
+#define strdup _strdup
+#define putenv _putenv
+#endif
///
/// Number of characters for name in fileselector.
@@ -84,7 +88,7 @@ static byte Cursor_is_visible;
static byte Window_needs_update;
/// Helper function to clamp a double to 0-255 range
-static inline byte clamp_byte(double value)
+static byte clamp_byte(double value)
{
if (value<0.0)
return 0;
@@ -981,8 +985,8 @@ int L_SetBackColor(lua_State* L)
int L_InputBox(lua_State* L)
{
- const int max_settings = 9;
- const int args_per_setting = 5;
+#define max_settings (9)
+#define args_per_setting (5)
double min_value[max_settings];
double max_value[max_settings];
double decimal_places[max_settings];
@@ -1258,12 +1262,15 @@ int L_InputBox(lua_State* L)
lua_pushnumber(L, current_value[setting]);
return 1 + nb_settings;
+#undef max_settings
+#undef args_per_setting
}
int L_SelectBox(lua_State* L)
{
- const int max_settings = 10;
+#define max_settings (10)
const char * label[max_settings];
+#undef max_settings
const char * window_caption;
unsigned int caption_length;