diff -r 7de85783b823 -r 4a4f21070479 hedgewars/uWeb.pas --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hedgewars/uWeb.pas Sun Nov 11 17:15:19 2012 +0100 @@ -0,0 +1,174 @@ + +// defines functions used for web port + +unit uWeb; +interface + +type + TResourceList = record + count : Integer; + files : array[0..500] of shortstring; + end; + +function generateResourceList:TResourceList; + +implementation + +uses uConsts, uVariables, uTypes; + +function readThemeCfg:TResourceList; forward; + +function generateResourceList:TResourceList; +var + cfgRes : TResourceList; + i,j : Integer; + t, t2 : shortstring; + si : TSprite; + res : TResourceList; + +begin + + res.count := 0; + + for i:= 0 to Pred(TeamsCount) do + with TeamsArray[i]^ do + begin + Str(i, t); + + res.files[res.count] := UserPathz[ptGraves] + '/' + GraveName; + res.files[res.count + 1] := UserPathz[ptForts] + '/' + FortName; + res.files[res.count + 2] := UserPathz[ptGraphics] + '/' + FortName; + res.files[res.count + 3] := UserPathz[ptFlags] + '/' + flag; + + inc(res.count, 4); + + end; + + for si:= Low(TSprite) to High(TSprite) do + with SpritesData[si] do + begin + Str(si, t); + res.files[res.count] := UserPathz[Path] + '/' + FileName; + res.files[res.count + 1] := UserPathz[AltPath] + '/' + FileName; + inc(res.count, 2); + + end; + + for i:= 0 to Pred(ClansCount) do + with CLansArray[i]^ do + begin + for j:= 0 to Pred(TeamsNumber) do + begin + with Teams[j]^ do + begin + Str(i, t); + Str(j, t2); + res.files[res.count] := UserPathz[ptForts] + '/' + FortName; + inc(res.count); + + end; + end; + end; + + cfgRes := readThemeCfg(); + + for i:= 0 to Pred(cfgRes.count) do + begin + res.files[res.count] := cfgRes.files[i]; + inc(res.count); + end; + + res.files[res.count] := UserPathz[ptFlags] + '/cpu'; + inc(res.count); + + res.files[res.count] := UserPathz[ptFlags] + '/hedgewars'; + inc(res.count); + + res.files[res.count] := UserPathz[ptGraphics] + '/' + cHHFileName; + inc(res.count); + + res.files[res.count] := UserPathz[ptGraphics] + '/Girder'; + inc(res.count); + + res.files[res.count] := UserPathz[ptCurrTheme] + '/LandTex'; + inc(res.count); + + res.files[res.count] := UserPathz[ptCurrTheme] + '/LandBackTex'; + inc(res.count); + + res.files[res.count] := UserPathz[ptCurrTheme] + '/Girder'; + inc(res.count); + + res.files[res.count] := UserPathz[ptCurrTheme] + '/Border'; + inc(res.count); + + res.files[res.count] := UserPathz[ptMapCurrent] + '/mask'; + inc(res.count); + + res.files[res.count] := UserPathz[ptMapCurrent] + '/map'; + inc(res.count); + + res.files[res.count] := UserPathz[ptGraphics] + '/missions'; + inc(res.count); + + res.files[res.count] := UserPathz[ptGraphics] + '/Progress'; + inc(res.count); + + res.files[res.count] := UserPathz[ptGraves] + '/Statue'; + inc(res.count); + + res.files[res.count] := UserPathz[ptGraphics] + '/' + cCHFileName; + inc(res.count); + + generateResourceList:=res; +end; + +function readThemeCfg : TResourceList; +var +s,key : shortstring; +f : TextFile; +i: Integer; +res : TResourceList; +begin + s:=Pathz[ptCurrTheme] + '/' + cThemeCFGFilename; + + Assign(f, s); + {$I-} + + filemode := 0; + Reset(f); + + res.count := 0; + + while not eof(f) do + begin + Readln(f, s); + + if Length(s) = 0 then + continue; + if s[1] = ';' then + continue; + + i:= Pos('=', s); + key:= Trim(Copy(s, 1, Pred(i))); + Delete(s, 1, i); + + if (key = 'object') or (key = 'spray') then + begin + i:=Pos(',', s); + + res.files[res.count] := Pathz[ptCurrTheme] + '/' + Trim(Copy(s, 1, Pred(i))); + res.files[res.count + 1] := Pathz[ptGraphics] + '/' + Trim(Copy(s, 1, Pred(i))); + inc(res.count, 2); + + end; + + end; + + close(f); + {$I+} + + readThemeCfg := res; +end; + +end.