unit uVar;

interface

uses zglHeader,
     LightEngine2D,
     uzglMyPart;

const
  SCREEN_WIDTH  = 800;
  SCREEN_HEIGHT = 600;

  BRIEF_1 = 'Привет! Сегодня на нашем танцполе ламбада!! Собери в цепочку ' +
            '8 человек. Для управления используй стрелки! Удачи!';

  BRIEF_2 = 'Это было здорово!! Ты ведь заметил, что со временем скорость ' +
            'танца возрастает? Давай разгонимся по полной!!!';

  BRIEF_3 = 'Советую тебе следить за уровнем "веселья". Если людям будет  ' +
            'скучно, то они будут уходить из твоего "паровозика"! Для поднятия ' +
            'настроения собирай напитки, которые появляются на танцполе! ' +
            'Давай попробуем собрать 15 человек одновременно!';

  BRIEF_4 = 'Сегодня к нам пришло так много народа! И все хочется танцевать ' +
            'ламбаду!! Так чего мы ждём? Давай заставим их двигаться!! ' +
            'Задействуй в танце 25 человек! ';

  BRIEF_5 = 'А ты знаешь, что быть в голове танца сложнее всего? Это очень ' +
            'ответственная позиция! Хочешь проверить свои навыки "Машиниста"? ' +
            'Тогда управляй "составом" полторы минуты без столкновений!';

  BRIEF_6 = 'Ты доказал, что крутой "Машинист", но давай проверим твои навыки ' +
            'ещё раз!! У тебя будет всего одна попытка! Продержись как можно ' +
            'дольше!!';

  BRIEF_7 = 'Народ на взводе и мы идём на рекорд!! Давай соберём огромный "состав" ' +
            'из 40 человек!! Не беспокойся над весельем, сейчас ни один человек не ' +
            'покинет танец, а максимальная скорость снизится! Сделаем это!';

  BRIEF_8 = 'Ты лучший танцор Ламбады в нашем клубе!! Твоё имя навечно останется у нас ' +
            'в сердцах!! Спасибо за внимание =).  Lambada-game is over =)';


type

  TGameStatus = (gsLogo, gsMenu, gsGame);
  TMenuStatus = (msMain, msLogin, msRecords, msAuthors, msSettings);
  TInGameStatus = (igsBriefing, igsGame, igsMenu, igsSucceed);

  TPoint = record
    x, y : integer;
  end;

  TMember = record
    pos    : TPoint;
    dir    : byte;
    m_type : byte;
  end;

  TSnake = record
     length : integer;
     members: array[0..63] of TMember;
  end;

var gs    : TGameStatus = gsMenu;
    ms    : TMenuStatus = msMain;
    igs   : TInGameStatus;

    field : array [1..10, 1..10] of byte;
    snake : TSnake;

    dot   : TPoint;
    dot_t : integer;

    bon   : Tpoint;
    bon_t : integer;

    pause     : integer;
    a_counter, s_counter, t_counter, tmr, time, minutes, secondes : integer;
    fr        : integer;

    memTex: array [0..4] of zglPTexture;
    flrTex: zglPTexture;
    texBrf: zglPTexture;
    texDlg: zglPTexture;
    texSpdbr: zglPTexture;
    texFunbr: zglPTexture;
    texFunIco: zglPTexture;
    texScore: zglPTexture;
    texSpeed: zglPTexture;   

    bonTex: array [0..2] of zglPTexture;

    profile : string;
    score, speed, interest, membs : integer;

    l1, l2, l3, l4, l5, l6 : PLightSource;
    a1, a2, a3, a4 : Single;

    texFire : zglPTexture;
    em_fire : TEmitter;
    fr_samp : TPartSample;

    linealpha : byte;
    m_i       : integer;

    level     : integer;
    briefings : array [0..7] of string = (BRIEF_1, BRIEF_2, BRIEF_3, BRIEF_4, BRIEF_5, BRIEF_6, BRIEF_7, BRIEF_8);

    
var fnt   : zglPFont;

    sndOn   : zglPSound;
    sndClk  : zglPSound;
    sndTake : zglPSound;
    sndMem  : zglPSound;
    sndLost : zglPSound;
    sndSced : zglPSound;

    audio : Integer;
implementation

end.
