--- 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);