hedgewars/uFLTeams.pas
branchqmlfrontend
changeset 12861 95d903b976d0
parent 12860 1b2b84315d27
child 12862 90f927b4b9e1
--- a/hedgewars/uFLTeams.pas	Sun Dec 17 00:09:24 2017 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-unit uFLTeams;
-interface
-uses uFLTypes;
-
-function createRandomTeam: TTeam;
-procedure sendTeamConfig(hp: LongInt; var team: TTeam);
-
-function getTeamsList: PPChar; cdecl;
-procedure freeTeamsList;
-
-function teamByName(s: shortstring): PTeam;
-
-procedure sendTeam(var team: TTeam);
-procedure removeTeam(teamName: shortstring);
-
-implementation
-uses uFLUtils, uFLIPC, uPhysFSLayer, uFLThemes, uFLNet;
-
-const MAX_TEAM_NAMES = 128;
-var
-    teamsList: PTeam;
-    teamsNumber: Longword;
-    listOfTeamNames: array[0..MAX_TEAM_NAMES] of PChar;
-
-
-function createRandomTeam: TTeam;
-var t: TTeam;
-    i: Longword;
-begin
-    with t do
-    begin
-        teamName:= 'team' + inttostr(random(100));
-
-        for i:= 0 to 7 do
-            with hedgehogs[i] do
-            begin
-                name:= 'hedgehog ' + inttostr(i);
-                hat:= 'NoHat'
-            end;
-
-        botLevel:= 0;
-        hogsNumber:= 4
-    end;
-    createRandomTeam:= t
-end;
-
-
-procedure sendTeamConfig(hp: LongInt; var team: TTeam);
-var i: Longword;
-begin
-    with team do
-    begin
-        ipcToEngine('eaddteam <hash> ' + colorsSet[color] + ' ' + teamName);
-
-        if extDriven then
-            ipcToEngine('erdriven');
-
-        for i:= 0 to Pred(hogsNumber) do
-        begin
-            ipcToEngine('eaddhh ' + IntToStr(botLevel) + ' ' + IntToStr(hp) + ' ' + hedgehogs[i].name);
-            ipcToEngine('ehat ' + hedgehogs[i].hat);
-        end;
-    end
-end;
-
-
-procedure loadTeam(var team: TTeam; fileName: shortstring);
-var f: PFSFile;
-    section: LongInt;
-    l: shortstring;
-begin
-    section:= -1;
-    f:= pfsOpenRead(fileName);
-
-    while (not pfsEOF(f)) do
-    begin
-        pfsReadLn(f, l);
-
-        if l = '' then
-        else if l = '[Team]' then 
-            section:= -2
-        else if copy(l, 1, 9) = '[Hedgehog' then
-            section:= StrToInt(copy(l, 10, 1))
-        else if section = -2 then
-        begin // [Team]
-            if copy(l, 1, 5) = 'Name=' then
-                team.teamName:= midStr(l, 6)
-            else if copy(l, 1, 6) = 'Grave=' then
-                team.grave:= midStr(l, 7)
-            else if copy(l, 1, 5) = 'Fort=' then
-                team.fort:= midStr(l, 6)
-            else if copy(l, 1, 5) = 'Flag=' then
-                team.flag:= midStr(l, 6)
-            else if copy(l, 1, 10) = 'Voicepack=' then
-                team.voice:= midStr(l, 11)
-            else if copy(l, 1, 11) = 'Difficulty=' then
-                team.botLevel:= StrToInt(midStr(l, 12))
-        end else if (section >= 0) and (section <= 7) then
-        begin // [Hedgehog*]
-            if copy(l, 1, 5) = 'Name=' then
-                team.hedgehogs[section].name:= midStr(l, 6)
-            else if copy(l, 1, 4) = 'Hat=' then
-                team.hedgehogs[section].hat:= midStr(l, 5)
-        end;
-    end;
-
-    pfsClose(f)
-end;
-
-
-procedure loadTeams;
-var filesList, tmp: PPChar;
-    team: PTeam;
-    s: shortstring;
-    l: Longword;
-begin
-    filesList:= pfsEnumerateFiles('/Config/Teams');
-    teamsNumber:= 0;
-
-    tmp:= filesList;
-    while tmp^ <> nil do
-    begin
-        s:= shortstring(tmp^);
-        l:= length(s);
-        if (l > 4) and (copy(s, l - 3, 4) = '.hwt') then inc(teamsNumber);
-        inc(tmp)
-    end;
-
-    // TODO: no teams at all?
-    teamsList:= GetMem(sizeof(teamsList^) * teamsNumber);
-
-    team:= teamsList;
-    tmp:= filesList;
-    while tmp^ <> nil do
-    begin
-        s:= shortstring(tmp^);
-        l:= length(s);
-        if (l > 4) and (copy(s, l - 3, 4) = '.hwt') then 
-            begin
-                loadTeam(team^, '/Config/Teams/' + s);
-                inc(team)
-            end;
-        inc(tmp)
-    end;
-
-    pfsFreeList(filesList)
-end;
-
-
-function getTeamsList: PPChar; cdecl;
-var i, t, l: Longword;
-    team: PTeam;
-begin
-    if teamsList = nil then
-        loadTeams;
-
-    t:= teamsNumber;
-    if t >= MAX_TEAM_NAMES then 
-        t:= MAX_TEAM_NAMES;
-
-    team:= teamsList;
-    for i:= 0 to Pred(t) do
-    begin
-        l:= length(team^.teamName);
-        if l >= 255 then l:= 254;
-        team^.teamName[l + 1]:= #0;
-        listOfTeamNames[i]:= @team^.teamName[1];
-        inc(team)
-    end;
-
-    listOfTeamNames[t]:= nil;
-
-    getTeamsList:= listOfTeamNames
-end;
-
-function teamByName(s: shortstring): PTeam;
-var i: Longword;
-    team: PTeam;
-begin
-    team:= teamsList;
-    i:= 0;
-    while (i < teamsNumber) and (team^.teamName <> s) do
-    begin
-        inc(team);
-        inc(i)
-    end;
-
-    if i < teamsNumber then teamByName:= team else teamByName:= nil
-end;
-
-procedure freeTeamsList;
-begin
-    if teamsList <> nil then
-        FreeMem(teamsList, sizeof(teamsList^) * teamsNumber)
-end;
-
-procedure sendTeam(var team: TTeam);
-var i: Longword;
-begin
-    with team do
-    begin
-        sendNetLn('ADD_TEAM');
-        sendNetLn(teamName);
-        sendNetLn(IntToStr(color));
-        sendNetLn(grave);
-        sendNetLn(fort);
-        sendNetLn(voice);
-        sendNetLn(flag);
-        sendNetLn(IntToStr(botLevel));
-        for i := 0 to 7 do
-        begin
-            sendNetLn(hedgehogs[i].name);
-            sendNetLn(hedgehogs[i].hat);
-        end;
-        sendNetLn('')
-    end;
-end;
-
-procedure removeTeam(teamName: shortstring);
-begin
-    sendNetLn('REMOVE_TEAM');
-    sendNet(teamName)
-end;
-
-end.