const
COORDSFILE = '_coords.txt';
var
coords: array of coord;
count: byte;
broadcast: boolean;
procedure saveToFile(map: string);
var
i: byte;
temp: string;
begin
temp := '';
for i := 0 to count do begin
if (coords[i].lable = '///DELETED///') or (coords[i].lable = nil) then
continue;
temp := temp + floatToStr(coords[i].x) + '///' + floatToStr(coords[i].y) + '///' + coords[i].lable + '///'+#10;
end;
writeFile(map+COORDSFILE, temp);
writeln('[Teleport] Saved to '+map+COORDSFILE)
end;
procedure loadCoords(mapname: string);
var
fileContents, name: string;
parts: tStringArray;
x, y: single;
i: byte;
begin
if not fileExists(mapname+COORDSFILE) then begin
writeFile(mapname+COORDSFILE, ' ');
end;
fileContents := readFile(mapname+COORDSFILE);
parts := xSplit(fileContents, #10);
count := 0;
for i := 0 to getArrayLength(coords) - 1 do begin
if maskCheck(parts[i], '*///*///*///*') then begin
x := strToFloat(getPiece(parts[i], '///', 0));
y := strToFloat(getPiece(parts[i], '///', 1));
name := getPiece(parts[i], '///', 2);
coords[count].lable := name;
coords[count].x := x;
coords[count].y := y;
count := count + 1;
setArrayLength(coords, count+1);
end;
end;
writeln('[Teleport] Loaded ' + intToStr(count) + ' coordinates from ' + mapname+COORDSFILE);
end;
procedure ActivateServer();
begin
setArrayLength(coords, 1);
broadcast := false;
writeln('[Teleport] Looking for ' + COORDSFILE + '...');
if fileExists(COORDSFILE) then begin
writeln('[Teleport] Loading coordinates...');
if currentMap = nil then begin
loadCoords('init');
end else begin
loadCoords(currentMap);
end;
writeln('[Teleport] Loading complete.');
end else begin
writeln('[Teleport] Failed loading ' + COORDSFILE + ': File does not exist Creating...!');
if currentMap = nil then begin
writeFile('init'+COORDSFILE, ' ');
end else begin
writeFile(currentMap+COORDSFILE, ' ');
end;
end;
end;