diff -r 41121e2f5c03 -r 63e2b7b2ec47 hedgewars/uStore.pas --- a/hedgewars/uStore.pas Tue Jun 30 23:25:52 2020 +0300 +++ b/hedgewars/uStore.pas Sat Jul 04 03:11:41 2020 +0200 @@ -33,6 +33,7 @@ function makeHealthBarTexture(w, h, Color: Longword): PTexture; procedure AddProgress; procedure FinishProgress; +procedure LoadFont(font: THWFont); function LoadImage(const filename: shortstring; imageFlags: LongInt): PSDL_Surface; // loads an image from the games data files @@ -362,23 +363,35 @@ end end; -procedure LoadFonts(); +procedure LoadFont(font: THWFont); var s: shortstring; - fi: THWFont; +begin + with Fontz[font] do + begin + if Handle <> nil then + begin + TTF_CloseFont(Handle); + Handle:= nil; + end; + s:= cPathz[ptFonts] + '/' + Name; + WriteToConsole(msgLoading + s + ' (' + inttostr(Height) + 'pt)... '); + Handle:= TTF_OpenFontRW(rwopsOpenRead(s), true, Height); + if SDLCheck(Handle <> nil, 'TTF_OpenFontRW', true) then exit; + TTF_SetFontStyle(Handle, style); + WriteLnToConsole(msgOK) + end; +end; + +procedure LoadFonts(); +var fi: THWFont; begin AddFileLog('LoadFonts();'); if (not cOnlyStats) then for fi:= Low(THWFont) to High(THWFont) do - with Fontz[fi] do - begin - s:= cPathz[ptFonts] + '/' + Name; - WriteToConsole(msgLoading + s + ' (' + inttostr(Height) + 'pt)... '); - Handle:= TTF_OpenFontRW(rwopsOpenRead(s), true, Height); - if SDLCheck(Handle <> nil, 'TTF_OpenFontRW', true) then exit; - TTF_SetFontStyle(Handle, style); - WriteLnToConsole(msgOK) - end; + begin + LoadFont(fi); + end; end; procedure StoreLoad(reload: boolean);