aboutsummaryrefslogtreecommitdiff
path: root/aoscene.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'aoscene.cpp')
-rw-r--r--aoscene.cpp40
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));
}