I have tested this and StarWars Galactic Battlegrounds (DX 8.1) For Civ3 I always run with a Desktop = to get it to play nice. There are a few bug I with both report tommrow. I have been a little to busy to do a proper bug till then. Thanks Steven --- Lionel Ulmer <lionel.ulmer@free.fr> wrote: > Hi all, > > Civ3 seems to have a bug in one of his code path (in the sense that if a > function fails, it goes in a function that triggers a division by zero). The > offending function is 'CreateScalableFontResourceA'. Thanks to Ove and David > for pointing to me this fact (that I would have spend ages finding on my own > :-) ). > > One easy way to fix it would be to always return TRUE here and that would > fix Civ3. But a nicer way (and also correct way) to have the same effect is > to take into account the fact that if you ever played it under Windows, the > '.fot' file (that should be created by 'CreateScalableFontResourceA') is > still present. And that should make the function fail. > > And for people not having played it with Windows, they can always do a > 'touch LSANS.fot' in the Civ3 directory to make it run :-) > > Now, the very best way would be to know the .FOT file format and to create > one when this function is called (and also enable .FOT font loading later > on). But I will let this as an exercise for motivated font / ressource gurus > :-) > > Changelog: > Properly check that the font ressource is not already there. > > Lionel > > -- > Lionel Ulmer - http://www.bbrox.org/ > > Index: objects/font.c > =================================================================== > RCS file: /home/wine/wine/objects/font.c,v > retrieving revision 1.76 > diff -u -r1.76 font.c > --- objects/font.c 22 Jun 2002 01:19:29 -0000 1.76 > +++ objects/font.c 23 Jul 2002 19:53:38 -0000 > @@ -1964,6 +1964,8 @@ > LPCSTR lpszFontFile, > LPCSTR lpszCurrentPath ) > { > + HANDLE f; > + > /* fHidden=1 - only visible for the calling app, read-only, not > * enumbered with EnumFonts/EnumFontFamilies > * lpszCurrentPath can be NULL > @@ -1971,6 +1973,13 @@ > FIXME("(%ld,%s,%s,%s): stub\n", > fHidden, debugstr_a(lpszResourceFile), debugstr_a(lpszFontFile), > debugstr_a(lpszCurrentPath) ); > + > + /* If the output file already exists, return the ERROR_FILE_EXISTS error as specified in > MSDN */ > + if ((f = CreateFileA(lpszResourceFile, 0, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, > 0)) != INVALID_HANDLE_VALUE) { > + CloseHandle(f); > + SetLastError(ERROR_FILE_EXISTS); > + return FALSE; > + } > return FALSE; /* create failed */ > } > > __________________________________________________ Do You Yahoo!? Yahoo! Health - Feel better, live better http://health.yahoo.com