summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2006-11-28 20:01:46 +0000
committerDarkvater <darkvater@openttd.org>2006-11-28 20:01:46 +0000
commitdcbbda0cb9674e8fc9aaa64a0861fd6381ae4202 (patch)
tree815a737f5dc8dec656dc08fbf6449a0fd2daf64f
parentd8d210056d5f504f4a3136eb9d0cd14bb39cfbda (diff)
downloadopenttd-dcbbda0cb9674e8fc9aaa64a0861fd6381ae4202.tar.xz
(svn r7279) -Codechange: [win32] Add Windows95/98 support by using MSLU. Only workaround is that the
wide version of EnumDisplaySettings crashes on win95 no matter what, so use ANSI version. NOTE: MSLU support is only added to VS2003 project file because VS2005 compiles won't even run on Windows95.
-rw-r--r--openttd.vcproj9
-rw-r--r--video/win32_v.c7
2 files changed, 11 insertions, 5 deletions
diff --git a/openttd.vcproj b/openttd.vcproj
index d42356e2b..5660ba8f7 100644
--- a/openttd.vcproj
+++ b/openttd.vcproj
@@ -17,7 +17,7 @@
ConfigurationType="1"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2"
+ CharacterSet="1"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
@@ -97,7 +97,7 @@
ConfigurationType="1"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="FALSE"
- CharacterSet="2">
+ CharacterSet="1">
<Tool
Name="VCCLCompilerTool"
Optimization="0"
@@ -121,7 +121,7 @@
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
- AdditionalDependencies="winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib"
+ AdditionalDependencies="unicows.lib winmm.lib ws2_32.lib libpng.lib zlibstat.lib dxguid.lib"
OutputFile=".\Debug/openttd.exe"
LinkIncremental="0"
SuppressStartupBanner="TRUE"
@@ -674,6 +674,9 @@
RelativePath=".\waypoint.h">
</File>
<File
+ RelativePath=".\win32.h">
+ </File>
+ <File
RelativePath=".\music\win32_m.h">
</File>
<File
diff --git a/video/win32_v.c b/video/win32_v.c
index a2f46378e..be105c480 100644
--- a/video/win32_v.c
+++ b/video/win32_v.c
@@ -668,9 +668,12 @@ static void FindResolutions(void)
{
uint n = 0;
uint i;
- DEVMODE dm;
+ DEVMODEA dm;
- for (i = 0; EnumDisplaySettings(NULL, i, &dm) != 0; i++) {
+ /* XXX - EnumDisplaySettingsW crashes with unicows.dll on Windows95
+ * Doesn't really matter since we don't pass a string anyways, but still
+ * a letdown */
+ for (i = 0; EnumDisplaySettingsA(NULL, i, &dm) != 0; i++) {
if (dm.dmBitsPerPel == 8 && IS_INT_INSIDE(dm.dmPelsWidth, 640, MAX_SCREEN_WIDTH + 1) &&
IS_INT_INSIDE(dm.dmPelsHeight, 480, MAX_SCREEN_HEIGHT + 1)) {
uint j;