added AOScene class, and basic background functionality

This commit is contained in:
David Skoland 2017-01-30 02:58:30 +01:00
parent 6e1f2cf20d
commit 922506261f
7 changed files with 84 additions and 2 deletions

View File

@ -31,7 +31,8 @@ SOURCES += main.cpp\
encryption_functions.cpp \ encryption_functions.cpp \
courtroom.cpp \ courtroom.cpp \
aocharbutton.cpp \ aocharbutton.cpp \
hardware_functions.cpp hardware_functions.cpp \
aoscene.cpp
HEADERS += lobby.h \ HEADERS += lobby.h \
aoimage.h \ aoimage.h \
@ -46,4 +47,5 @@ HEADERS += lobby.h \
encryption_functions.h \ encryption_functions.h \
courtroom.h \ courtroom.h \
aocharbutton.h \ aocharbutton.h \
hardware_functions.h hardware_functions.h \
aoscene.h

21
aoscene.cpp Normal file
View File

@ -0,0 +1,21 @@
#include "aoscene.h"
#include "courtroom.h"
#include "file_functions.h"
AOScene::AOScene(Courtroom *parent) : QLabel(parent)
{
m_courtroom = parent;
}
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;
if (file_exists(background_path))
this->setPixmap(background_path);
else
this->setPixmap(default_path);
}

21
aoscene.h Normal file
View File

@ -0,0 +1,21 @@
#ifndef AOSCENE_H
#define AOSCENE_H
#include <QLabel>
class Courtroom;
class AOScene : public QLabel
{
Q_OBJECT
public:
explicit AOScene(Courtroom *parent);
void set_image(QString p_image);
private:
Courtroom *m_courtroom;
};
#endif // AOSCENE_H

View File

@ -18,6 +18,10 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
//viewport elements like background, desk, etc. //viewport elements like background, desk, etc.
ui_vp_background = new AOScene(this);
ui_vp_background->move(m_viewport_x, m_viewport_y);
ui_vp_background->resize(m_viewport_width, m_viewport_height);
ui_ic_chatlog = new QPlainTextEdit(this); ui_ic_chatlog = new QPlainTextEdit(this);
ui_ic_chatlog->setReadOnly(true); ui_ic_chatlog->setReadOnly(true);
@ -482,6 +486,12 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
} }
//T0D0: play objection gif->preanimation if there is any //T0D0: play objection gif->preanimation if there is any
//D3BUG START
ui_vp_background->set_image("defenseempty.png");
//D3BUG END
} }
void Courtroom::on_ooc_return_pressed() void Courtroom::on_ooc_return_pressed()

View File

@ -5,6 +5,7 @@
#include "aobutton.h" #include "aobutton.h"
#include "aocharbutton.h" #include "aocharbutton.h"
#include "aopacket.h" #include "aopacket.h"
#include "aoscene.h"
#include "datatypes.h" #include "datatypes.h"
#include <QMainWindow> #include <QMainWindow>
@ -35,6 +36,11 @@ public:
void set_size_and_pos(QWidget *p_widget, QString p_identifier); void set_size_and_pos(QWidget *p_widget, QString p_identifier);
void set_taken(int n_char, bool p_taken); void set_taken(int n_char, bool p_taken);
void set_char_select_page(); void set_char_select_page();
void set_background(QString p_background){current_background = p_background;}
//implementations in path_functions.cpp
QString get_background_path();
QString get_default_background_path();
void enter_courtroom(int p_cid); void enter_courtroom(int p_cid);
@ -73,10 +79,14 @@ private:
//wether the ooc chat is server or master chat, true is server //wether the ooc chat is server or master chat, true is server
bool server_ooc = true; bool server_ooc = true;
QString current_background = "gs4";
AOImage *ui_background; AOImage *ui_background;
//T0D0: add viewport elements like background, desk, etc. //T0D0: add viewport elements like background, desk, etc.
AOScene *ui_vp_background;
QPlainTextEdit *ui_ic_chatlog; QPlainTextEdit *ui_ic_chatlog;
QPlainTextEdit *ui_ms_chatlog; QPlainTextEdit *ui_ms_chatlog;

View File

@ -279,6 +279,13 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
destruct_lobby(); destruct_lobby();
} }
else if (header == "BN")
{
if (f_contents.size() < 1)
return;
w_courtroom->set_background(f_contents.at(0));
}
//server accepting char request(CC) packet //server accepting char request(CC) packet
else if (header == "PV") else if (header == "PV")
{ {

View File

@ -1,4 +1,5 @@
#include "aoapplication.h" #include "aoapplication.h"
#include "courtroom.h"
#include <QDir> #include <QDir>
#include <QDebug> #include <QDebug>
@ -32,3 +33,13 @@ QString AOApplication::get_demothings_path()
{ {
return get_base_path() + "misc/demothings/"; return get_base_path() + "misc/demothings/";
} }
QString Courtroom::get_background_path()
{
return ao_app->get_base_path() + "background/" + current_background.toLower() + "/";
}
QString Courtroom::get_default_background_path()
{
return ao_app->get_base_path() + "background/gs4/";
}