UNIT Unit13;

INTERFACE

USES
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

TYPE
  TForm13 = Class(TForm)
    timer_getData: TTimer;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edit_x: TEdit;
    edit_y: TEdit;
    edit_z: TEdit;
    check_player: TCheckBox;
    GroupBox2: TGroupBox;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    edit_others_x: TEdit;
    edit_others_y: TEdit;
    edit_others_z: TEdit;
    check_others: TCheckBox;
    Label7: TLabel;
    PROCEDURE check_othersClick(Sender: TObject);
    PROCEDURE edit_others_zClick(Sender: TObject);
    PROCEDURE edit_others_yClick(Sender: TObject);
    PROCEDURE edit_others_xChange(Sender: TObject);
    PROCEDURE timer_getDataTimer(Sender: TObject);
    PROCEDURE check_playerClick(Sender: TObject);
    PROCEDURE edit_zChange(Sender: TObject);
    PROCEDURE edit_yChange(Sender: TObject);
    PROCEDURE edit_xChange(Sender: TObject);
  PRIVATE
  PUBLIC
  END;

VAR
  Form13: TForm13;

IMPLEMENTATION

USES Unit1,Unit2,Unit3,Unit5,Unit6,Unit7,Unit8,Unit9,Unit10,Unit11;

CONST
  address_settings:LongWord=$10EE0;

{$R *.dfm}

FUNCTION patch_movements_loaded:Boolean;
  CONST check_for:LongWord=$0EDCDEE9;
    address_at:LongWord=$43B23D;
  BEGIN
    IF Decode_Int(ReadMem(address_at,4))=check_for THEN result:=True
    ELSE result:=False;
  END;

PROCEDURE TForm13.edit_xChange(Sender: TObject);
  VAR tempfloat:Single;
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF TryStrToFloat(TEdit(Sender).Text,tempfloat) THEN BEGIN
        WriteMem(address_settings+$4,4,Encode_Float(tempfloat));
      END;
    END;
  END;

PROCEDURE TForm13.edit_yChange(Sender: TObject);
  VAR tempfloat:Single;
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF TryStrToFloat(TEdit(Sender).Text,tempfloat) THEN BEGIN
        WriteMem(address_settings+$8,4,Encode_Float(tempfloat));
      END;
    END;
  END;

PROCEDURE TForm13.edit_zChange(Sender: TObject);
  VAR tempfloat:Single;
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF TryStrToFloat(TEdit(Sender).Text,tempfloat) THEN BEGIN
        WriteMem(address_settings+$C,4,Encode_Float(tempfloat));
      END;
    END;
  END;

PROCEDURE TForm13.check_playerClick(Sender: TObject);
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF check_player.Checked=False THEN BEGIN
        _temp:=Encode_Int(0);
        WriteMem(address_settings,4,_temp);
      END ELSE BEGIN
        _temp:=Encode_Int(1);
        WriteMem(address_settings,4,_temp);
      END;
    END;
  END;

PROCEDURE TForm13.timer_getDataTimer(Sender: TObject);
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF NOT Form13.edit_x.Focused THEN Form13.edit_x.Text:=FloatToStr(Decode_Float(ReadMem(address_settings+$4,4)));
      IF NOT Form13.edit_y.Focused THEN Form13.edit_y.Text:=FloatToStr(Decode_Float(ReadMem(address_settings+$8,4)));
      IF NOT Form13.edit_z.Focused THEN Form13.edit_z.Text:=FloatToStr(Decode_Float(ReadMem(address_settings+$C,4)));
      IF Decode_Int(ReadMem(address_settings,4))=1 THEN
        Form13.check_player.Checked:=True
      ELSE
        Form13.check_player.Checked:=False;
      IF NOT Form13.edit_others_x.Focused THEN Form13.edit_others_x.Text:=FloatToStr(Decode_Float(ReadMem(address_settings+$14,4)));
      IF NOT Form13.edit_others_y.Focused THEN Form13.edit_others_y.Text:=FloatToStr(Decode_Float(ReadMem(address_settings+$18,4)));
      IF NOT Form13.edit_others_z.Focused THEN Form13.edit_others_z.Text:=FloatToStr(Decode_Float(ReadMem(address_settings+$1C,4)));
      IF Decode_Int(ReadMem(address_settings+$10,4))=1 THEN
        Form13.check_others.Checked:=True
      ELSE
        Form13.check_others.Checked:=False;
      Form13.check_player.Enabled:=True;
      Form13.edit_x.Enabled:=True;
      Form13.edit_y.Enabled:=True;
      Form13.edit_z.Enabled:=True;
      Form13.check_others.Enabled:=True;
      Form13.edit_others_x.Enabled:=True;
      Form13.edit_others_y.Enabled:=True;
      Form13.edit_others_z.Enabled:=True;
      Form13.Label1.Enabled:=True;
      Form13.Label2.Enabled:=True;
      Form13.Label3.Enabled:=True;
      Form13.Label4.Enabled:=True;
      Form13.Label5.Enabled:=True;
      Form13.Label6.Enabled:=True;
    END ELSE BEGIN
      Form13.check_player.Enabled:=False;
      Form13.edit_x.Enabled:=False;
      Form13.edit_y.Enabled:=False;
      Form13.edit_z.Enabled:=False;
      Form13.check_others.Enabled:=False;
      Form13.edit_others_x.Enabled:=False;
      Form13.edit_others_y.Enabled:=False;
      Form13.edit_others_z.Enabled:=False;
      Form13.Label1.Enabled:=False;
      Form13.Label2.Enabled:=False;
      Form13.Label3.Enabled:=False;
      Form13.Label4.Enabled:=False;
      Form13.Label5.Enabled:=False;
      Form13.Label6.Enabled:=False;
    END;
  END;

PROCEDURE TForm13.edit_others_xChange(Sender: TObject);
  VAR tempfloat:Single;
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF TryStrToFloat(TEdit(Sender).Text,tempfloat) THEN BEGIN
        WriteMem(address_settings+$14,4,Encode_Float(tempfloat));
      END;
    END;
  END;

PROCEDURE TForm13.edit_others_yClick(Sender: TObject);
  VAR tempfloat:Single;
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF TryStrToFloat(TEdit(Sender).Text,tempfloat) THEN BEGIN
        WriteMem(address_settings+$18,4,Encode_Float(tempfloat));
      END;
    END;
  END;

PROCEDURE TForm13.edit_others_zClick(Sender: TObject);
  VAR tempfloat:Single;
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF TryStrToFloat(TEdit(Sender).Text,tempfloat) THEN BEGIN
        WriteMem(address_settings+$1C,4,Encode_Float(tempfloat));
      END;
    END;
  END;

PROCEDURE TForm13.check_othersClick(Sender: TObject);
  BEGIN
    IF _connected AND patch_movements_loaded THEN BEGIN
      IF check_others.Checked=False THEN BEGIN
        _temp:=Encode_Int(0);
        WriteMem(address_settings+$10,4,_temp);
      END ELSE BEGIN
        _temp:=Encode_Int(1);
        WriteMem(address_settings+$10,4,_temp);
      END;
    END;
  END;

END.
