Code: Select all
Export Function GetFacExtDir(x, y, dir);
var list, i;
begin
list := [];
Case dir of
0: begin
list := [[x-4, y-4, 2], [x-3, y, 1], [x+4, y, 4], [x+3, y+3, 5], [x, y+4, 0]];
end;
1: begin
list := [[x, y-4, 3], [x-3, y-3, 2], [x-3, y, 1], [x, y+3, 0], [x+4, y+4, 5]];
end;
2: begin
list := [[x, y-3, 3], [x+3, y, 4], [x, y+4, 0], [x-3, y, 1], [x-4, y-4, 2]];
end;
3: begin
list := [[x+3, y, 4], [x+4, y+4, 5], [x-4, y, 1], [x, y-4, 3], [x-3, y-3, 2]];
end;
4: begin
list := [[x, y+4, 0], [x+3, y+3, 5], [x+3, y, 4], [x, y-3, 3], [x-4, y-4, 2]];
end;
5: begin
list := [[x-4, y, 1], [x, y-4, 3], [x+4, y+4, 5], [x+3, y, 4], [x, y+3, 0]];
end;
End;
result := list;
End;
Fabryka nie musi istnieć żeby zostały zwrócone koordynaty rozbudów.
Poniżej funkcja testująca:
Code: Select all
Export Function CreateFactoryWithExt(x, y, d); // test function
var i, list, fac;
begin
list := GetFacExtDir(x, y, d);
uc_side := 1;
uc_nation := 1;
bc_type = b_factory;
fac = CreateAndPlaceBuildingXYD(x, y, d);
for i = 1 to 5 do
begin
bc_type = [b_ext_laser, b_ext_gun, b_ext_radar, b_ext_noncombat, b_ext_rocket][i];
CreateAndPlaceBuildingXYD(list[i][1], list[i][2], list[i][3]);
display_strings := list[i];
Wait(0$01);
end;
End;