// настроечные таблицы для игры

#define FADE_GAME_TIME        500   // время для перехода между менюшками при помощи fade
#define FADE_LOGO_TIME        1000  // время для перехода между менюшками при помощи fade в стартовых заставках
#define MAX_SAVE              5

#define MAX_BALL_SPEED        500   // максимальная скорость движения шарика (было 400)
#define MIN_BALL_SPEED        80    // минимальная скорость движения шарика (было 100)
#define NORMAL_BALL_SPEED     110   // начальная скорость движения шарика (вернуть 190)
//#define STEP_BALL_SPEED       25   // шаг с которым меняется скорость движения шарика бонусами
#define BONUS_BALL_SPEED      20    // шаг с которым меняется скорость движения шарика бонусами в процентах (24)
#define INC_BALL_SPEED        50    // шаг увеличения скорости движения шарика от 100 столкновений (было 50)
#define INC_BALL_SPEED_9LEVEL 100    // шаг увеличения скорости движения шарика от 100 столкновений (было 50) на 9 уровне (с 5 по 9 интерполируется)

//#define SCORES_FOR_LIFE       2000     // добавляем жизнь за столько очков
#define SCORES_FOR_BONUS      100      // добавляем столько очков за взятие бонуса
#define SCORES_FOR_NEG_BONUS  200      // добавляем столько очков за взятие отрицательного бонуса
#define SCORES_FOR_CRYSTALL   100      // добавляем столько очков за взятие кристалла
#define SCORES_FOR_CRYSTALL_BIG   1000      // добавляем столько очков за взятие большого кристалла
#define SCORES_FOR_CRYSTALL_FLY   10   //за взятие кристалла на летном уровне
static int SCORES_BY_MEDAL[4] = {0, 100, 300, 500};

#define MAX_LIVES_COUNT         10     // максимальное кол-во жизней
// максимальное кол-во жизней в gamebar. менять смысла нет, т.к для этого нужен zmpeter
#define MAX_LIVES_GAMEBAR       5

#define GUN_RELOAD_TIME       80    // время перезарядки пулемета в ms (было 40)
#define MISSILE_RELOAD_TIME   500   // время перезарядки ракетницы в ms

#define SCREEN_FIELD_LEFT     10    // границы экрана в пределах которых движется шарик
#define SCREEN_FIELD_RIGHT    775   //
#define SCREEN_FIELD_VEHI_LIMIT -10  // расстояние на которое может выехать тележка за пределы экрана (было 30)

#define FLAGMAN_Y             30    // расстояние от нижнего края на котором ездит тележка
#define FLAGMAN_Z             0     // высота на которой ездит тележка (без нужды не менять)

#ifndef WIND_SQUALL_FREQ
#define WIND_SQUALL_FREQ      50    // порыв ветра будет в среднем раз в данное количество секунд
#endif

#define MUSIC_MENU "music\\menu_mus.ogg"
#define MUSIC_LOGO "music\\menu_mus.ogg"

int ObjectForWind[100] = {0};//346,377,489, 0};
int BonusObject[100]   = {100, 101, 102, 103, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 0};

int StartNextMap     = 0; // время для начала отсчета для загрузки следующей карты
string NextMapName   = "";// имя загружаемого файла


LoadNextMap(string name)
{
  Effect(EFF_FADE,0,0,FADE_GAME_TIME);
  NextMapName = name;
  StartNextMap = GetTime();
}

//Возвращает 1 приблизительно один раз в секунду
//при вызове в одном такте данной функции повторно
//она все равно вернет то-же значение что и в первый вызов
OneTimeInSecond()
{
  static int old_time=0;
  if( (GetTime()-old_time) > 1023 || old_time > GetTime() )
    old_time = GetTime();
  if( GetTime()==old_time )
    return 1;
  return 0;
}

//Возвращает 1 приблизительно один раз в 5 секунд
//при вызове в одном такте данной функции повторно
//она все равно вернет то-же значение что и в первый вызов
OneTimeIn5Second()
{
  static int old_time=0;
  if( (GetTime()-old_time) > 1023 || old_time > GetTime() )
    old_time = GetTime();
  if( GetTime()==old_time )
    return 1;
  return 0;
}


//------------------------------------------------------------------------------------------
OneTimeInQuarterSecond()
{
    static int old_time=0;
    if( (GetTime()-old_time) > 255 || old_time > GetTime() )
        old_time=GetTime();
    if( GetTime()==old_time )
        return 1;
    return 0;
}


