// Модуль настроек для программ от cdmlex (Setup v2)
unit Setup;
// Опции
interface
procedure LoadSetupFile;
procedure SaveSetupFile;
procedure WindowCenter;
procedure UseOpt;

var
  WinH, WinW                        : Integer;
  WinColors, Music, Sound           : Byte;
  Console, FullMonitor,
  FullWin, VSync, SkyDraw           : Boolean;

implementation
uses
  Windows, zglHeader, LexUtils;


procedure CreatSetupfile;
begin
  WinW        := 1024;
  WinH        := 768;
  WinColors   := 32;
  FullWin     := FALSE;
  VSync       := FALSE;
  Music       := 10;
  Sound       := 10;
  Console     := FALSE;
  SaveSetupFile;  
end;

procedure SaveSetupFile;
var
  Options : TextFile;
begin
  AssignFile(Options, 'Setup.ini');
  Rewrite(Options);
  writeln(Options, '_cdmLex game_');
  writeln(Options, '-Опции-');
  writeln(Options, 'Использовать текущее разрешение:');
  writeln(Options, FullMonitor);
  writeln(Options, 'Ширина:');
  writeln(Options, WinW);
  writeln(Options, 'Высота:');
  writeln(Options, WinH);
  writeln(Options, 'Цвета:');
  writeln(Options, WinColors);
  writeln(Options, 'Полноэкранный режим:');
  writeln(Options, FullWin);
  writeln(Options, 'Вертикальная синхронизация:');
  writeln(Options, VSync);
  writeln(Options, 'Рисовать облака:');
  writeln(Options, SkyDraw);
  writeln(Options, 'Громкость музыки:');
  writeln(Options, Music);
  writeln(Options, 'Громкость звуков:');
  writeln(Options, Sound);
  writeln(Options, 'Режим разработчика:');
  writeln(Options, Console);
  CloseFile(Options);
end;


procedure LoadSetupFile;
/// Загрузка опций и настроек.
var
  Options  : TextFile;
  Stringer : string;
begin
  if FileEx('Setup.ini') then
  begin
    assignfile(Options, 'Setup.ini');
    reset(Options);
    readln(Options, Stringer);
    if Stringer='_cdmLex game_' then
    begin
      readln(Options);
      readln(Options);
      readln(Options, Stringer);
      FullMonitor := S2Bool(Stringer);
      readln(Options);
      readln(Options, WinW);
      readln(Options);
      readln(Options, WinH);
      readln(Options);
      readln(Options, WinColors);
      readln(Options);
      readln(Options, Stringer);
      FullWin := S2Bool(Stringer);
      readln(Options);
      readln(Options, Stringer);
      VSync := S2Bool(Stringer);
      readln(Options);
      readln(Options, Stringer);
      SkyDraw := S2Bool(Stringer);
      readln(Options);
      readln(Options, Music);
      readln(Options);
      readln(Options, Sound);
      readln(Options);
      readln(Options, Stringer);
      Console :=  S2Bool(Stringer);
      CloseFile(Options);
      if FullMonitor then
      begin
        WinW := GetSystemMetrics(SM_CXSCREEN);
        WinH := GetSystemMetrics(SM_CYSCREEN);
      end;
    end
    else
    begin
      CloseFile(Options);
      CreatSetupfile;
    end;
  end
  else
    CreatSetupfile;
end;

procedure WindowCenter;
begin
{  if not FullWin then
    zglHeader.
    Omega.OE_SetWndPosition((GetSystemMetrics(SM_CXSCREEN) - WinW) div 2,
                            (GetSystemMetrics(SM_CYSCREEN) - WinH) div 2 -20 ); }
end;

procedure UseOpt;
begin
{  OE_ChangeScreenOptions(WinW, WinH, WinColors, 0, FullWin, ffVSync);
  Omega.OE_SetWndPosition((GetSystemMetrics(SM_CXSCREEN) - WinW) div 2,
                          (GetSystemMetrics(SM_CYSCREEN) - WinH) div 2 -20 );
  Setup.SaveSetupFile;   }
end;


end.
