diff -r 6e641b5453f9 -r 1a6148b4de3b hedgewars/uFLData.pas --- a/hedgewars/uFLData.pas Tue Dec 01 23:37:10 2015 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -unit uFLData; -interface - -function getThemesList: PPChar; cdecl; -procedure freeThemesList(list: PPChar); cdecl; -function getThemeIcon(themeName: PChar; buffer: PChar; buflen: Longword): Longword; cdecl; - -const colorsSet: array[0..8] of shortstring = ( - '16712196' - , '4817089' - , '1959610' - , '11878895' - , '10526880' - , '2146048' - , '16681742' - , '6239749' - , '16776961'); - -implementation -uses uPhysFSLayer; - -function getThemesList: PPChar; cdecl; -var list, res, tmp: PPChar; - i, size: Longword; -begin - list:= pfsEnumerateFiles('Themes'); - size:= 0; - tmp:= list; - while tmp^ <> nil do - begin - inc(size); - inc(tmp) - end; - - res:= GetMem((3 + size) * sizeof(PChar)); - res^:= PChar(list); - inc(res); - res^:= PChar(res + size + 2); - inc(res); - - getThemesList:= res; - - for i:= 1 to size do - begin - if pfsExists('/Themes/' + shortstring(list^) + '/icon.png') then - begin - res^:= list^; - inc(res) - end; - - inc(list) - end; - - res^:= nil -end; - -procedure freeThemesList(list: PPChar); cdecl; -var listEnd: PPChar; -begin - dec(list); - listEnd:= PPChar(list^); - dec(list); - - pfsFreeList(PPChar(list^)); - freeMem(list, (listEnd - list) * sizeof(PChar)) -end; - -function getThemeIcon(themeName: PChar; buffer: PChar; buflen: Longword): Longword; cdecl; -var s: shortstring; - f: PFSFile; -begin - s:= '/Themes/' + shortstring(themeName) + '/icon@2x.png'; - - f:= pfsOpenRead(s); - - if f = nil then - getThemeIcon:= 0 - else - begin - getThemeIcon:= pfsBlockRead(f, buffer, buflen); - pfsClose(f) - end; -end; - -end.