summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorglx <glx@openttd.org>2008-03-15 21:20:40 +0000
committerglx <glx@openttd.org>2008-03-15 21:20:40 +0000
commit62a7587586070bbb78ac09c72e10da76be897c11 (patch)
treee2491cc8136d425ba25a49db8b53aa6d63784ca0
parent42647b90a32095642359627298b2e349220bb051 (diff)
downloadopenttd-62a7587586070bbb78ac09c72e10da76be897c11.tar.xz
(svn r12373) -Fix [FS#1849]: win32 music driver fails if path is too long (128 chars is too much for mci it seems), so retry using the short path name (8.3 style) if available
-rw-r--r--src/music/win32_m.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/music/win32_m.cpp b/src/music/win32_m.cpp
index 8ec6756c4..8ad964977 100644
--- a/src/music/win32_m.cpp
+++ b/src/music/win32_m.cpp
@@ -61,7 +61,12 @@ static bool MidiIntPlaySong(const char *filename)
{
MidiSendCommand(_T("close all"));
- if (MidiSendCommand(_T("open \"%s\" type sequencer alias song"), OTTD2FS(filename)) != 0) return false;
+ if (MidiSendCommand(_T("open \"%s\" type sequencer alias song"), OTTD2FS(filename)) != 0) {
+ /* Let's try the "short name" */
+ TCHAR buf[MAX_PATH];
+ if (GetShortPathName(OTTD2FS(filename), buf, MAX_PATH) == 0) return false;
+ if (MidiSendCommand(_T("open \"%s\" type sequencer alias song"), buf) != 0) return false;
+ }
return MidiSendCommand(_T("play song from 0")) == 0;
}