Beispiel #1
0
void
AudioProcessor::set_state(const AudioProcessorState *state)
{
  if (!state) return;

  // Channel order
  set_input_order(state->input_order);
  set_output_order(state->output_order);
  // Master gain
  set_master(state->master);
  // AGC
  set_auto_gain(state->auto_gain);
  set_normalize(state->normalize);
  set_attack(state->attack);
  set_release(state->release);
  // DRC
  set_drc(state->drc);
  set_drc_power(state->drc_power);
  // Matrix
  // (!) Auto matrix option must be set before setting the matrix
  // because when auto matrix is on, mixer rejects the new matrix.
  set_auto_matrix(state->auto_matrix);
  set_matrix(state->matrix);
  // Automatrix options
  set_normalize_matrix(state->normalize_matrix);
  set_voice_control(state->voice_control);
  set_expand_stereo(state->expand_stereo);
  // Automatrix levels
  set_clev(state->clev);
  set_slev(state->slev);
  set_lfelev(state->lfelev);
  // Input/output gains
  set_input_gains(state->input_gains);
  set_output_gains(state->output_gains);
  // SRC
  set_src_quality(state->src_quality);
  set_src_att(state->src_att);
  // Eqalizer
  set_eq(state->eq);
  if (state->eq_master_bands)
    set_eq_bands(CH_NONE, state->eq_master_bands, state->eq_master_nbands);
  for (int ch = 0; ch < CH_NAMES; ch++)
    if (state->eq_bands[ch])
      set_eq_bands(ch, state->eq_bands[ch], state->eq_nbands[ch]);
  // Bass redirection
  set_bass_redir(state->bass_redir);
  set_bass_freq(state->bass_freq);
  set_bass_channels(state->bass_channels);
  // Delays
  set_delay(state->delay);
  set_delay_units(state->delay_units);
  set_delays(state->delays);
  // Dithering
  set_dithering(state->dithering);
}
Beispiel #2
0
void Erupter::fire()
{
    bool result = false;

    GravityBullet *bullet = new GravityBullet(get_string("bullet"), m_media);
    if (bullet) {
        int dx = rand() % (get_attribute("fire_dx") - 1) + 1;
        int dy = get_attribute("fire_dy");
        if (get_reference() == Right) {
           result = bullet->fire(m_x, m_y, dx, -dy);
        }
        else {
           result = bullet->fire(m_x, m_y, -dx, -dy);
        }

        if (result) {
            set_attack();
            m_bullets.push_back(bullet);
        }
    }
}
Beispiel #3
0
void MekaDragon::move(Map *map)
{
    Monster::move(map);

    switch(m_action) {
        case Still:
            set_action(Move);
            break;

        case Move:
            face_reference(get_attribute("turn_width"));
            set_lock_direction(true);
            if (m_horizontal_dir == HorizontalForward) {

                if (m_dir == Right) {
                    set_vx(get_attribute("move_speed"));
                }
                else {
                    set_vx(-get_attribute("move_speed"));
                }
                animate_move();

                if (abs(m_xref - m_x) < get_attribute("attack_distance")) {
                    m_horizontal_dir = HorizontalBackward;
                }
            }
            else if (m_horizontal_dir == HorizontalBackward) {

                if (m_dir == Right) {
                    set_vx(-get_attribute("move_speed"));
                }
                else {
                    set_vx(get_attribute("move_speed"));
                }
                animate_move();

                if (abs(m_xref - m_x) > get_attribute("retreat_distance") ||
                    check_behind(map)) {
                    m_horizontal_dir = HorizontalForward;
                }
            }

            if (m_attack_now ||
                m_attack_timer.expired(get_attribute("attack_timer"))) {
                m_attack_timer.reset();
                m_attack_now = false;
                set_attack();
            }
            break;

        case Attack:
            if (m_idle_timer.check(get_attribute("attack_idle"))){
                fire();
            }
            break;

        case Hit:
            m_idle_timer.reset();
            m_attack_now = true;
            break;

        default:
            break;
    }

    unsigned n = m_bullets.size();
    for (unsigned i = 0; i < n; i++) {
        m_bullets[i]->move(map);
    }
}
Combat_Screen::Combat_Screen(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Combat_Screen)
{
    ui->setupUi(this);

    set_health();
    set_attack();

    enemy_display_timer = new QTimer;
    hero_display_timer = new QTimer;
    defend_timer = new QTimer;
    attack_timer = new QTimer;
    enemy_timer = new QTimer;

    hero_action_label = new QLabel;
    enemy_action_label = new QLabel;

    enemy_health_display = new QLabel;
    enemy_health_display->setNum(enemy_health);

    attack_button = new QPushButton;
    attack_button->setText("ATTACK");
    attack_button->setDefault(true);

    defend_button = new QPushButton;
    defend_button->setText("DEFEND");

    hero_health_bar = new QProgressBar;
    hero_health_bar->setValue(hero_health);

    QVBoxLayout *left_layout = new QVBoxLayout;
    left_layout->addWidget(hero_health_bar);
    left_layout->addSpacing(100);
    left_layout->addWidget(attack_button);
    left_layout->addWidget(defend_button);

    QLabel *enemy_title = new QLabel;
    QLabel *hp_label = new QLabel;
    enemy_title->setText(enemy_name);
    hp_label->setText(" HP");

    QHBoxLayout *top_right_layout = new QHBoxLayout;
    top_right_layout->addWidget(enemy_title);
    top_right_layout->addWidget(hp_label);
    top_right_layout->addWidget(enemy_health_display);

    QVBoxLayout *right_layout = new QVBoxLayout;
    right_layout->addLayout(top_right_layout);
    right_layout->addStretch();

    QHBoxLayout *top_layout = new QHBoxLayout;
    top_layout->addLayout(left_layout);
    top_layout->addSpacing(100);
    top_layout->addLayout(right_layout);

    QVBoxLayout *bottom_layout = new QVBoxLayout;
    bottom_layout->addWidget(hero_action_label);
    bottom_layout->addWidget(enemy_action_label);

    QVBoxLayout *main_layout = new QVBoxLayout;
    main_layout->addLayout(top_layout);
    main_layout->addLayout(bottom_layout);

    setLayout(main_layout);

    enemy_timer->start(6000);

    QObject::connect(attack_button,SIGNAL(clicked()),
                     this,SLOT(calculate_attack()));

    QObject::connect(enemy_timer,SIGNAL(timeout()),
                     this,SLOT(calculate_enemy_attack()));

    QObject::connect(defend_button,SIGNAL(clicked()),
                     this,SLOT(set_defend()));


}
Beispiel #5
0
void MummyDragon::move(Map *map)
{
    Monster::move(map);

    switch(m_action) {
        case Still:
            set_action(Move);
            break;

        case Move:
            if (m_is_flying) {
                set_speed(0, m_fly_speed);
                if (m_fly_timer.check(m_fly_time) ||
                    m_y < m_top || m_y > m_bottom) {
                    m_fly_timer.reset();
                    m_is_flying = false;
                }
            }
            else {
                if (get_left() < m_left || get_right() > m_right) {
                    swap_move_dir();
                    if (m_turn_counter.expired(get_attribute("num_turns"))) {
                        m_fly_time = 600;
                        if (m_y < m_top + 100) {
                            m_fly_speed = get_attribute("fly_speed");
                        }
                        else {
                            m_fly_speed = -get_attribute("fly_speed");
                        }
                        m_is_flying = true;
                    }
                    else {
                        m_attack_timer.enable(true);
                    }
                }

                if (m_dir == Right) {
                    set_speed(get_move_speed(map), 0);
                }
                else {
                    set_speed(-get_move_speed(map), 0);
                }
            }

            animate_move();

            if (m_attack_timer.expired(get_attribute("attack_timer"))) {
                m_attack_timer.enable(false);
                set_attack();
            }
            break;

        case Attack:
            fire();
            break;

        case Hit:
            m_fly_time = get_attribute("fly_time_after_hit");
            m_fly_speed = -get_attribute("fly_speed");
            m_is_flying = true;
            break;

        default:
            break;
    }

    unsigned n = m_bullets.size();
    for (unsigned i = 0; i < n; i++) {
        m_bullets[i]->move(map);
    }
}