diff options
Diffstat (limited to 'src/courtroom.cpp')
| -rw-r--r-- | src/courtroom.cpp | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 751f9a8..e8b58a4 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -44,7 +44,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() ui_viewport = new QWidget(this); ui_vp_background = new BackgroundLayer(ui_viewport, ao_app); - ui_vp_speedlines = new ForegroundLayer(ui_viewport, ao_app); + ui_vp_speedlines = new SplashLayer(ui_viewport, ao_app); ui_vp_player_char = new CharLayer(ui_viewport, ao_app); ui_vp_sideplayer_char = new CharLayer(ui_viewport, ao_app); ui_vp_sideplayer_char->hide(); @@ -67,13 +67,18 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() ui_vp_message->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui_vp_message->setReadOnly(true); - ui_vp_testimony = new InterfaceLayer(this, ao_app); + ui_vp_testimony = new SplashLayer(this, ao_app); ui_vp_testimony->set_play_once(false); ui_vp_testimony->setAttribute(Qt::WA_TransparentForMouseEvents); - ui_vp_wtce = new InterjectionLayer(this, ao_app); + ui_vp_wtce = new SplashLayer(this, ao_app); ui_vp_wtce->set_play_once(true); + ui_vp_wtce->continuous = false; + ui_vp_wtce->force_continuous = true; ui_vp_wtce->setAttribute(Qt::WA_TransparentForMouseEvents); - ui_vp_objection = new InterjectionLayer(this, ao_app); + ui_vp_objection = new SplashLayer(this, ao_app); + ui_vp_objection->set_play_once(true); + ui_vp_objection->continuous = false; + ui_vp_objection->force_continuous = true; ui_vp_objection->setAttribute(Qt::WA_TransparentForMouseEvents); ui_ic_chatlog = new QTextEdit(this); @@ -115,6 +120,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow() ui_music_display = new InterfaceLayer(this, ao_app); ui_music_display->set_play_once(false); + ui_music_display->transform_mode = Qt::SmoothTransformation; ui_music_display->setAttribute(Qt::WA_TransparentForMouseEvents); ui_music_name = new ScrollText(ui_music_display); @@ -1998,6 +2004,7 @@ void Courtroom::chatmessage_dequeue() QString f_char = m_chatmessage[CHAR_NAME]; f_custom_theme = ao_app->get_chat(f_char); } + ui_vp_chat_arrow->transform_mode = ao_app->get_misc_scaling(f_custom_theme); ui_vp_chat_arrow->load_image("chat_arrow", f_custom_theme); // Nothing to parse in the queue @@ -2592,18 +2599,16 @@ void Courtroom::initialize_chatbox() // This should probably be called only if any change from the last chat // arrow was actually detected. - if (current_misc != last_misc) { - pos_size_type design_ini_result = ao_app->get_element_dimensions( - "chat_arrow", "courtroom_design.ini", customchar); - if (design_ini_result.width < 0 || design_ini_result.height < 0) { - qDebug() << "W: could not find \"chat_arrow\" in courtroom_design.ini"; - ui_vp_chat_arrow->hide(); - } - else { - ui_vp_chat_arrow->move(design_ini_result.x + ui_vp_chatbox->x(), design_ini_result.y + ui_vp_chatbox->y()); - ui_vp_chat_arrow->combo_resize(design_ini_result.width, - design_ini_result.height); - } + pos_size_type design_ini_result = ao_app->get_element_dimensions( + "chat_arrow", "courtroom_design.ini", customchar); + if (design_ini_result.width < 0 || design_ini_result.height < 0) { + qDebug() << "W: could not find \"chat_arrow\" in courtroom_design.ini"; + ui_vp_chat_arrow->hide(); + } + else { + ui_vp_chat_arrow->move(design_ini_result.x + ui_vp_chatbox->x(), design_ini_result.y + ui_vp_chatbox->y()); + ui_vp_chat_arrow->combo_resize(design_ini_result.width, + design_ini_result.height); } pos_size_type default_width = ao_app->get_element_dimensions( @@ -2719,7 +2724,7 @@ void Courtroom::handle_ic_speaking() filename = "prosecution_speedlines"; else filename = "defense_speedlines"; - ui_vp_speedlines->load_image(filename, m_chatmessage[CHAR_NAME]); + ui_vp_speedlines->load_image(filename, m_chatmessage[CHAR_NAME], ao_app->get_char_shouts(m_chatmessage[CHAR_NAME])); } // Check if this is a talking color (white text, etc.) @@ -3308,12 +3313,14 @@ void Courtroom::chat_tick() f_char = m_chatmessage[CHAR_NAME]; f_custom_theme = ao_app->get_chat(f_char); } - ui_vp_chat_arrow->load_image("chat_arrow",f_custom_theme); // Chat stopped being processed, indicate that. + ui_vp_chat_arrow->transform_mode = ao_app->get_misc_scaling(f_custom_theme); + ui_vp_chat_arrow->load_image("chat_arrow", f_custom_theme); // Chat stopped being processed, indicate that. additive_previous = additive_previous + filter_ic_text(f_message, true, -1, m_chatmessage[TEXT_COLOR].toInt()); QString f_message_filtered = filter_ic_text(f_message, true, -1, m_chatmessage[TEXT_COLOR].toInt()); for (int c = 0; c < max_colors; ++c) { + additive_previous = additive_previous.replace("$c" + QString::number(c), char_color_rgb_list.at(c).name(QColor::HexRgb)); f_message_filtered = f_message_filtered.replace("$c" + QString::number(c), char_color_rgb_list.at(c).name(QColor::HexRgb)); } additive_previous = additive_previous + f_message_filtered; @@ -3448,6 +3455,7 @@ void Courtroom::chat_tick() // Do the colors, gradual showing, etc. in here QString f_message_filtered = filter_ic_text(f_message, true, tick_pos, m_chatmessage[TEXT_COLOR].toInt()); for (int c = 0; c < max_colors; ++c) { + additive_previous = additive_previous.replace("$c" + QString::number(c), char_color_rgb_list.at(c).name(QColor::HexRgb)); f_message_filtered = f_message_filtered.replace("$c" + QString::number(c), char_color_rgb_list.at(c).name(QColor::HexRgb)); } ui_vp_message->setHtml(additive_previous + f_message_filtered); @@ -3772,6 +3780,7 @@ void Courtroom::handle_song(QStringList *p_contents) void Courtroom::handle_wtce(QString p_wtce, int variant) { QString sfx_file = "courtroom_sounds.ini"; + QString bg_misc = ao_app->read_design_ini("misc", ao_app->get_background_path("design.ini")); QString sfx_name; QString filename; ui_vp_wtce->set_static_duration(wtce_static_time); @@ -3780,7 +3789,7 @@ void Courtroom::handle_wtce(QString p_wtce, int variant) if (p_wtce == "testimony1") { sfx_name = "witness_testimony"; filename = "witnesstestimony"; - ui_vp_testimony->load_image("testimony", ""); + ui_vp_testimony->load_image("testimony", "", bg_misc); } // cross examination else if (p_wtce == "testimony2") { @@ -3802,7 +3811,6 @@ void Courtroom::handle_wtce(QString p_wtce, int variant) ui_vp_testimony->stop(); } } - QString bg_misc = ao_app->read_design_ini("misc", ao_app->get_background_path("design.ini")); sfx_player->play(ao_app->get_sfx(sfx_name, bg_misc)); ui_vp_wtce->load_image(filename, "", bg_misc); ui_vp_wtce->set_play_once(true); |
