diff options
| author | in1tiate <32779090+in1tiate@users.noreply.github.com> | 2021-01-19 05:32:11 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-19 14:32:11 +0300 |
| commit | 894b2b2a0e6bb2744e92a2d8ed363a39d7ae59b1 (patch) | |
| tree | d5c0868152ca9958173f5e4f857a2fd98cfce56b /src/aomovie.cpp | |
| parent | 21b4aa5072755923f5f555605ef4dc2b01857579 (diff) | |
Consolidate AOScene, AOMovie, and AOCharMovie into one class, add support for (c) animations, implement emote continuity, add scaling overrides to all layer types, allow for stretch-to-fill images, allow for additional effect configuration (#302)
* Rewrite AOScene and remove the need for AOMovie and AOCharMovie by consolidation
* Rename AOScene to AOLayer, apply suggestions to improve functionality
* Implement suggested change to allocation
* Switch from pointer to field, fix ui_vp_player_char not resetting play_once
* Use the variable gif_name instead of the string "gif_name"
Oops.
* Total rewrite of AOLayer (again)
* Add support for (c) animations, do some housekeeping
* allow themes to override misc chatboxes
* add support for pulling InterfaceLayer elements from theme/misc
* mistakes were made
* move all frame fx functionality to CharLayer subclass
* virtual functions are cool mkay
* remove evidence of my incompetence
* allow themes to override font design inis under theme/misc
* Proper support for theme/misc chatbox, fixes
* Fix chatbox dimensions not updating and inline color causing missingnos
* rename chat markdown to chat markup
* add missing misc overrides
* quick hotfix for chatblank and misc overrides
* Fix oversight with backgrounds causing them to be culled
* Same as last commit but for FG layer
* amend comment to explain impossible shenanigans
* Adjust ForegroundLayer to take charname rather than miscname, allow for checking in char folder
* fix an incredibly embarrassing pathing bug
* add scaling overrides for all layer types, parent orphaned viewport elements to the viewport
* stupid fix because themes use "custom.png" as a button
* switch to .append()
* Revert "Merge branch 'aoscene_rewrite' of https://github.com/AttorneyOnline/AO2-Client into aoscene_rewrite"
This reverts commit bdeb1bff7639d522031aab3c133a83b0e2a291df, reversing
changes made to 125ee63b97a6f6c156e69525d88fddc625e7a978.
* switch to .append() (again)
* move function call to fix showname length calculation error
* fix nonlooping character animations being broken Again
* unparent elements from the viewport and do fancy masking arithmetic instead
* use override keyword
* move scaling override to char.ini, allow stretching, restructure effect property loading
* fix some redundancy
* unparent chat_arrow from chatbox to prevent accidental masking
* at no point do we want a frozen gif to display
* overhaul how wtce is handled
* oops
* also let sounds be pulled from theme miscs
* i should probably compile before i push
* actually make it work
* don't check a default bg
* readd 1x1 stretch thing
* actually the 1x1 thing was a bad idea
* Add missing parenthesis
* Use load_image instead of play
play is a nonexistent method now
* Remote shout_message and usages because it does nothing
* Remove multiple redefinitions
* Add in missing brackets and indent to fix build
I have know idea what this does but it brings fear
* fix build error
* fix chat arrow and remove duped code
* remove more duped code and fix misc themes
* only update chat_arrow when needed
* consolidate log_chatmessage and display_log_chatmessage
Co-authored-by: scatterflower <marisaposs@gameboyprinter.moe>
Co-authored-by: Skye Deving <76892045+skyedeving@users.noreply.github.com>
Co-authored-by: oldmud0 <oldmud0@users.noreply.github.com>
Diffstat (limited to 'src/aomovie.cpp')
| -rw-r--r-- | src/aomovie.cpp | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/src/aomovie.cpp b/src/aomovie.cpp deleted file mode 100644 index 196c1d3e..00000000 --- a/src/aomovie.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include "aomovie.h" - -#include "courtroom.h" -#include "file_functions.h" -#include "misc_functions.h" - -AOMovie::AOMovie(QWidget *p_parent, AOApplication *p_ao_app) : QLabel(p_parent) -{ - ao_app = p_ao_app; - - m_movie = new QMovie(); - m_movie->setCacheMode(QMovie::CacheAll); - - this->setMovie(m_movie); - - timer = new QTimer(this); - timer->setTimerType(Qt::PreciseTimer); - timer->setSingleShot(true); - - connect(m_movie, SIGNAL(frameChanged(int)), this, SLOT(frame_change(int))); - connect(timer, SIGNAL(timeout()), this, SLOT(timer_done())); -} - -void AOMovie::set_play_once(bool p_play_once) { play_once = p_play_once; } - -void AOMovie::play(QString p_image, QString p_char, QString p_custom_theme, - int duration) -{ - m_movie->stop(); - - QString shout_path = p_image; - if (!file_exists(p_image)) { - QList<QString> pathlist; - - pathlist = { - ao_app->get_image_suffix( - ao_app->get_character_path(p_char, p_image)), // Character folder - ao_app->get_image_suffix(ao_app->get_base_path() + "misc/" + - p_custom_theme + "/" + p_image), // Misc path - ao_app->get_image_suffix(ao_app->get_custom_theme_path( - p_custom_theme, p_image)), // Custom theme path - ao_app->get_image_suffix(ao_app->get_theme_path(p_image)), // Theme path - ao_app->get_image_suffix( - ao_app->get_default_theme_path(p_image)), // Default theme path - ao_app->get_image_suffix( - ao_app->get_theme_path("placeholder")), // Placeholder path - ao_app->get_image_suffix(ao_app->get_default_theme_path( - "placeholder")), // Default placeholder path - }; - - for (QString path : pathlist) { - if (file_exists(path)) { - shout_path = path; - break; - } - } - } - - m_movie->setFileName(shout_path); - - if (m_movie->loopCount() == 0) - play_once = true; - - this->show(); - m_movie->start(); - if (m_movie->frameCount() == 0 && duration > 0) - timer->start(duration); -} - -void AOMovie::stop() -{ - m_movie->stop(); - this->hide(); -} - -void AOMovie::frame_change(int n_frame) -{ - // If it's a "static movie" (only one frame - png image), we can't change - // frames - ignore this function (use timer instead). If the frame didn't reach - // the last frame or the movie is continuous, don't stop the movie. - if (m_movie->frameCount() == 0 || n_frame < (m_movie->frameCount() - 1) || - !play_once) - return; - // we need this or else the last frame wont show - timer->start(m_movie->nextFrameDelay()); -} - -void AOMovie::timer_done() -{ - this->stop(); - // signal connected to courtroom object, let it figure out what to do - done(); -} - -void AOMovie::combo_resize(int w, int h) -{ - QSize f_size(w, h); - this->resize(f_size); - m_movie->setScaledSize(f_size); -} |
