diff options
Diffstat (limited to 'aoscene.cpp')
| -rw-r--r-- | aoscene.cpp | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/aoscene.cpp b/aoscene.cpp index c925f9c..126a604 100644 --- a/aoscene.cpp +++ b/aoscene.cpp @@ -6,23 +6,22 @@ #include <QDebug> -AOScene::AOScene(Courtroom *parent) : QLabel(parent) +AOScene::AOScene(QWidget *parent, AOApplication *p_ao_app) : QLabel(parent) { - m_courtroom = parent; + m_parent = parent; + ao_app = p_ao_app; } void AOScene::set_image(QString p_image) { - QString background_path = m_courtroom->get_background_path() + p_image; - QString default_path = m_courtroom->get_default_background_path() + p_image; + QString background_path = ao_app->get_background_path() + p_image; + QString default_path = ao_app->get_default_background_path() + p_image; QPixmap background(background_path); QPixmap default_bg(default_path); int w = this->width(); - qDebug() << "AOScene width found to be " << w; int h = this->height(); - qDebug() << "AOScene height found to be " << h; if (file_exists(background_path)) this->setPixmap(background.scaled(w, h)); @@ -35,24 +34,27 @@ void AOScene::set_legacy_desk(QString p_image) //vanilla desks vary in both width and height. in order to make that work with viewport rescaling, //some INTENSE math is needed. - QImage f_image(p_image); + QString desk_path = ao_app->get_background_path() + p_image; + QString default_path = ao_app->get_default_background_path() + p_image; - int vp_x = m_courtroom->get_vp_x(); - int vp_y = m_courtroom->get_vp_y(); - int vp_width = m_courtroom->get_vp_w(); - int vp_height = m_courtroom->get_vp_h(); + QPixmap f_desk; - double y_modifier = 147 / 192; + if (file_exists(desk_path)) + f_desk.load(desk_path); + else + f_desk.load(default_path); + + int vp_width = m_parent->width(); + int vp_height = m_parent->height(); + + //double y_modifier = 147 / 192; double w_modifier = vp_width / 256; double h_modifier = vp_height / 192; - int final_x = vp_x; - int final_y = vp_y + y_modifier * vp_height; - int final_w = w_modifier * f_image.width(); - int final_h = h_modifier * f_image.height(); + //int final_y = y_modifier * vp_height; + int final_w = w_modifier * f_desk.width(); + int final_h = h_modifier * f_desk.height(); - this->move(final_x, final_y); this->resize(final_w, final_h); - - + this->setPixmap(f_desk.scaled(final_w, final_h)); } |
