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); }
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); } } }
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())); }
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); } }