Removed theme submodule, ...

* Removed theme submodule.
  * This should be handled by the CI.
* Fixed effects not disappearing when they should (cull / repeat)
This commit is contained in:
TrickyLeifa 2024-05-23 00:02:07 +02:00
parent d135bbc511
commit 29284c0b21
12 changed files with 22 additions and 9 deletions

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "bin/base/themes"]
path = bin/base/themes
url = https://github.com/AttorneyOnline/AO2-Themes.git

Binary file not shown.

Before

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

@ -1 +0,0 @@
Subproject commit 32a130d1a35220b27deecf22f59c83e92cac1fee

View File

@ -143,6 +143,11 @@ void AnimationLayer::jumpToFrame(int number)
} }
} }
bool AnimationLayer::isPlayOnce()
{
return m_play_once;
}
void AnimationLayer::setPlayOnce(bool enabled) void AnimationLayer::setPlayOnce(bool enabled)
{ {
m_play_once = enabled; m_play_once = enabled;
@ -324,6 +329,7 @@ void AnimationLayer::frameTicker()
return; return;
} }
stopPlayback();
return; return;
} }
@ -595,11 +601,20 @@ void BackgroundAnimationLayer::loadAndPlayAnimation(QString fileName)
} }
#endif #endif
setFileName(file_path); bool is_different_file = file_path != this->fileName();
if (is_different_file)
{
setFileName(file_path);
}
VPath design_path = ao_app->get_background_path("design.ini"); VPath design_path = ao_app->get_background_path("design.ini");
setTransformationMode(ao_app->get_scaling(ao_app->read_design_ini("scaling", design_path))); setTransformationMode(ao_app->get_scaling(ao_app->read_design_ini("scaling", design_path)));
setStretchToFit(ao_app->read_design_ini("stretch", design_path).startsWith("true")); setStretchToFit(ao_app->read_design_ini("stretch", design_path).startsWith("true"));
startPlayback();
if (is_different_file)
{
startPlayback();
}
} }
SplashAnimationLayer::SplashAnimationLayer(AOApplication *ao_app, QWidget *parent) SplashAnimationLayer::SplashAnimationLayer(AOApplication *ao_app, QWidget *parent)
@ -640,7 +655,7 @@ void EffectAnimationLayer::setHideWhenStopped(bool enabled)
void EffectAnimationLayer::maybeHide() void EffectAnimationLayer::maybeHide()
{ {
if (m_hide_when_stopped) if (m_hide_when_stopped && isPlayOnce())
{ {
hide(); hide();
} }

View File

@ -62,6 +62,8 @@ public:
int currentFrameNumber(); int currentFrameNumber();
void jumpToFrame(int number); void jumpToFrame(int number);
bool isPlayOnce();
void setPlayOnce(bool enabled); void setPlayOnce(bool enabled);
void setStretchToFit(bool enabled); void setStretchToFit(bool enabled);
void setResetCacheWhenStopped(bool enabled); void setResetCacheWhenStopped(bool enabled);

View File

@ -3157,6 +3157,8 @@ void Courtroom::do_effect(QString fx_path, QString fx_sound, QString p_char, QSt
QString effect = ao_app->get_effect(fx_path, p_char, p_folder); QString effect = ao_app->get_effect(fx_path, p_char, p_folder);
if (effect == "") if (effect == "")
{ {
ui_vp_effect->stopPlayback();
ui_vp_effect->hide();
return; return;
} }
@ -3173,8 +3175,6 @@ void Courtroom::do_effect(QString fx_path, QString fx_sound, QString p_char, QSt
ui_vp_effect->setTransformationMode(ao_app->get_scaling(ao_app->get_effect_property(fx_path, p_char, p_folder, "scaling"))); ui_vp_effect->setTransformationMode(ao_app->get_scaling(ao_app->get_effect_property(fx_path, p_char, p_folder, "scaling")));
ui_vp_effect->setStretchToFit(ao_app->get_effect_property(fx_path, p_char, p_folder, "stretch").startsWith("true")); ui_vp_effect->setStretchToFit(ao_app->get_effect_property(fx_path, p_char, p_folder, "stretch").startsWith("true"));
ui_vp_effect->setFlipped(ao_app->get_effect_property(fx_path, p_char, p_folder, "respect_flip").startsWith("true") && m_chatmessage[FLIP].toInt() == 1); ui_vp_effect->setFlipped(ao_app->get_effect_property(fx_path, p_char, p_folder, "respect_flip").startsWith("true") && m_chatmessage[FLIP].toInt() == 1);
ui_vp_effect->setPlayOnce(false); // The effects themselves dictate whether or not they're looping.
// Static effects will linger.
bool looping = ao_app->get_effect_property(fx_path, p_char, p_folder, "loop").startsWith("true"); bool looping = ao_app->get_effect_property(fx_path, p_char, p_folder, "loop").startsWith("true");