Small patch to make Civ3 a bit happier
Steven Edwards
steven_ed4153 at yahoo.com
Tue Jul 23 16:52:33 CDT 2002
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 at 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
More information about the wine-patches
mailing list