Merge pull request #468 from AttorneyOnline/fix/cont-hitch-mitigation

Mitigate hitching when using continuous playback, fix a botch in handling misc themes
This commit is contained in:
oldmud0 2021-02-13 21:03:53 -06:00 committed by GitHub
commit 5fd3ed0fea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 14 deletions

View File

@ -308,7 +308,7 @@ public:
// Returns the dimensions of widget with specified identifier from p_file // Returns the dimensions of widget with specified identifier from p_file
pos_size_type get_element_dimensions(QString p_identifier, QString p_file, pos_size_type get_element_dimensions(QString p_identifier, QString p_file,
QString p_char = ""); QString p_misc = "");
// Returns the value to you // Returns the value to you
QString get_design_element(QString p_identifier, QString p_file, QString get_design_element(QString p_identifier, QString p_file,

View File

@ -261,6 +261,15 @@ void CharLayer::start_playback(QString p_image)
void AOLayer::start_playback(QString p_image) void AOLayer::start_playback(QString p_image)
{ {
if (!ao_app->is_continuous_enabled()) {
continuous = false;
force_continuous = true;
}
if ((last_path == p_image) && (!force_continuous))
return;
#ifdef DEBUG_MOVIE #ifdef DEBUG_MOVIE
actual_time.restart(); actual_time.restart();
#endif #endif
@ -268,12 +277,6 @@ void AOLayer::start_playback(QString p_image)
freeze(); freeze();
movie_frames.clear(); movie_frames.clear();
movie_delays.clear(); movie_delays.clear();
if (!ao_app->is_continuous_enabled()) {
continuous = false;
force_continuous = true;
}
QString scaling_override = QString scaling_override =
ao_app->read_design_ini("scaling", p_image + ".ini"); ao_app->read_design_ini("scaling", p_image + ".ini");
if (scaling_override != "") if (scaling_override != "")
@ -289,10 +292,6 @@ void AOLayer::start_playback(QString p_image)
m_reader.setFileName(p_image); m_reader.setFileName(p_image);
if (m_reader.loopCount() == 0) if (m_reader.loopCount() == 0)
play_once = true; play_once = true;
if ((last_path == p_image) && (!force_continuous))
continuous = true;
else if ((last_path != p_image) && !force_continuous)
continuous = false;
if (!continuous) if (!continuous)
frame = 0; frame = 0;
last_max_frames = max_frames; last_max_frames = max_frames;

View File

@ -1160,7 +1160,7 @@ void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier,
QString filename = "courtroom_design.ini"; QString filename = "courtroom_design.ini";
pos_size_type design_ini_result = pos_size_type design_ini_result =
ao_app->get_element_dimensions(p_identifier, filename, p_char); ao_app->get_element_dimensions(p_identifier, filename, ao_app->get_chat(p_char));
if (design_ini_result.width < 0 || design_ini_result.height < 0) { if (design_ini_result.width < 0 || design_ini_result.height < 0) {
qDebug() << "W: could not find \"" << p_identifier << "\" in " << filename; qDebug() << "W: could not find \"" << p_identifier << "\" in " << filename;

View File

@ -318,14 +318,14 @@ QPoint AOApplication::get_button_spacing(QString p_identifier, QString p_file)
pos_size_type AOApplication::get_element_dimensions(QString p_identifier, pos_size_type AOApplication::get_element_dimensions(QString p_identifier,
QString p_file, QString p_file,
QString p_char) QString p_misc)
{ {
pos_size_type return_value; pos_size_type return_value;
return_value.x = 0; return_value.x = 0;
return_value.y = 0; return_value.y = 0;
return_value.width = -1; return_value.width = -1;
return_value.height = -1; return_value.height = -1;
QString f_result = get_design_element(p_identifier, p_file, p_char); QString f_result = get_design_element(p_identifier, p_file, p_misc);
QStringList sub_line_elements = f_result.split(","); QStringList sub_line_elements = f_result.split(",");