unit uVar;

interface

uses zglHeader,
     LightEngine2d;

const
  SCREEN_WIDTH  = 800;
  SCREEN_HEIGHT = 600;


type TGameStatus = (gsSplit, gsMenu, gsGame);

    TMember = record
      plr   : boolean;       // упрваляется игроком?
      move  : boolean;       // надо идти
      pos   : zglTPoint2d;   // позиция
      fPos  : zglTPoint2d;   // конечная позиция движения
      ang   : single;        // угол
      frame : byte;          // кадр анимации
      phase : byte;          // "фаза" т.е. действие которое он сейчас выполняет
      reload, reload_timer: integer;       // время перезарядки
      rpm, rpm_timer : integer; // темп срельбы, задержка.
      switch, switch_down, switch_min: single;        // радиус разброса
      shots, max_shots : integer; // колличество паторонов в наличи и боезапас
      wpnID : byte;
    end;

    TTeam = record
      members : array [1..3] of TMember;
      hp      : integer;
    end;

    TEnemy = record
      exist : boolean;
      Dead  : boolean;
      eType : byte;
      frame : byte;
      HP    : integer;
      pos   : zglTPoint2d;   // позиция
      fPos  : zglTPoint2d;   // конечная позиция движения
      ang, fang   : single;
    end;

    TBullet = record
      exist : boolean;
      pos   : zglTPoint2d;
      ang   : single;
      spd   : single;
      dmg   : integer;
      dist  : integer;
      powUp : boolean;
    end;

    TBlood = record
      exist : boolean;
      pos   : zglTPoint2d;
    end;

var dirGui : string = 'data\gui\';
    dirRes : string = 'data\tex\';
    dirSnd : string = 'data\snd\';
    dirMap : string = 'data\map\';
    gs     : TGameStatus = gsGame;

var fnt    : zglPFont;
    texBtn : zglPTexture;
    texBLt : zglPTexture;
    texLght: zglPTexture;
    texTile: zglPTexture;


    texDirt: zglPTexture;
    texMan : zglPTexture;

    texEn1 : zglPTexture;
    texEn2 : zglPTexture;
    texEn3 : zglPTexture;
    texEn4 : zglPTexture;
    texEn5 : zglPTexture;
    
    texBllt: zglPTexture;
    texBlood : zglPTexture;
    texTrace: zglPTexture;
    texBloodOld : zglPTexture;
    texRadar : zglPTexture;

    sndShoot, sndShoot2, sndShoot3 : zglPSound;

    rt : zglPRenderTarget;

var a, fCounter : integer;
    Team     : TTeam;
    enemies  : array [1..256] of TEnemy;
    bullets  : array [1..128] of TBullet;
    blood    : array [1..128] of TBlood;
    NewBlood : boolean;

    Camera  : zglTCamera2D;
    Light, light2, light3, light4, l1, l2, l3  : PLightSource;

    lightON : boolean = true;
    DebugOn : boolean;
implementation

end.
