did some work on the gif custom classes
This commit is contained in:
parent
9031779bc9
commit
295ea74b7c
@ -34,8 +34,8 @@ SOURCES += main.cpp\
|
|||||||
hardware_functions.cpp \
|
hardware_functions.cpp \
|
||||||
aoscene.cpp \
|
aoscene.cpp \
|
||||||
aomovie.cpp \
|
aomovie.cpp \
|
||||||
aocharselect.cpp \
|
misc_functions.cpp \
|
||||||
misc_functions.cpp
|
aocharmovie.cpp
|
||||||
|
|
||||||
HEADERS += lobby.h \
|
HEADERS += lobby.h \
|
||||||
aoimage.h \
|
aoimage.h \
|
||||||
@ -53,5 +53,5 @@ HEADERS += lobby.h \
|
|||||||
hardware_functions.h \
|
hardware_functions.h \
|
||||||
aoscene.h \
|
aoscene.h \
|
||||||
aomovie.h \
|
aomovie.h \
|
||||||
aocharselect.h \
|
misc_functions.h \
|
||||||
misc_functions.h
|
aocharmovie.h
|
||||||
|
97
aocharmovie.cpp
Normal file
97
aocharmovie.cpp
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
#include "aocharmovie.h"
|
||||||
|
|
||||||
|
#include "misc_functions.h"
|
||||||
|
#include "file_functions.h"
|
||||||
|
#include "aoapplication.h"
|
||||||
|
|
||||||
|
AOCharMovie::AOCharMovie(QWidget *p_parent, AOApplication *p_ao_app) : QLabel(p_parent)
|
||||||
|
{
|
||||||
|
ao_app = p_ao_app;
|
||||||
|
|
||||||
|
m_movie = new QMovie(this);
|
||||||
|
|
||||||
|
this->setMovie(m_movie);
|
||||||
|
|
||||||
|
connect(m_movie, SIGNAL(frameChanged(int)), this, SLOT(frame_change(int)));
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOCharMovie::set(QString p_char, QString p_pre, QString p_gif)
|
||||||
|
{
|
||||||
|
m_char = p_char;
|
||||||
|
m_pre = p_pre;
|
||||||
|
m_gif = p_gif;
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOCharMovie::play_pre()
|
||||||
|
{
|
||||||
|
m_movie->stop();
|
||||||
|
|
||||||
|
QString pre_path = ao_app->get_character_path(m_char) + m_pre.toLower() + ".gif";
|
||||||
|
QString placeholder_path = ao_app->get_theme_path() + "placeholder.gif";
|
||||||
|
|
||||||
|
if (file_exists(pre_path))
|
||||||
|
m_movie->setFileName(pre_path);
|
||||||
|
else
|
||||||
|
m_movie->setFileName(placeholder_path);
|
||||||
|
|
||||||
|
this->show();
|
||||||
|
m_movie->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOCharMovie::play_talking()
|
||||||
|
{
|
||||||
|
m_movie->stop();
|
||||||
|
|
||||||
|
QString talking_path = ao_app->get_character_path(m_char) + "(b)" + m_gif.toLower() + ".gif";
|
||||||
|
QString placeholder_path = ao_app->get_theme_path() + "placeholder.gif";
|
||||||
|
|
||||||
|
if (file_exists(talking_path))
|
||||||
|
m_movie->setFileName(talking_path);
|
||||||
|
else
|
||||||
|
m_movie->setFileName(placeholder_path);
|
||||||
|
|
||||||
|
this->show();
|
||||||
|
m_movie->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOCharMovie::play_idle()
|
||||||
|
{
|
||||||
|
m_movie->stop();
|
||||||
|
|
||||||
|
QString idle_path = ao_app->get_character_path(m_char) + "(a)" + m_gif.toLower() + ".gif";
|
||||||
|
QString placeholder_path = ao_app->get_theme_path() + "placeholder.gif";
|
||||||
|
|
||||||
|
if (file_exists(idle_path))
|
||||||
|
m_movie->setFileName(idle_path);
|
||||||
|
else
|
||||||
|
m_movie->setFileName(placeholder_path);
|
||||||
|
|
||||||
|
this->show();
|
||||||
|
m_movie->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOCharMovie::stop()
|
||||||
|
{
|
||||||
|
//for all intents and purposes, stopping is the same as hiding. at no point do we want a frozen gif to display
|
||||||
|
m_movie->stop();
|
||||||
|
this->hide();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOCharMovie::combo_resize(int w, int h)
|
||||||
|
{
|
||||||
|
QSize f_size(w, h);
|
||||||
|
this->resize(f_size);
|
||||||
|
m_movie->setScaledSize(f_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AOCharMovie::frame_change(int n_frame)
|
||||||
|
{
|
||||||
|
if (n_frame == (m_movie->frameCount() - 1))
|
||||||
|
{
|
||||||
|
//we need this or else the last frame wont show
|
||||||
|
delay(m_movie->nextFrameDelay());
|
||||||
|
|
||||||
|
//signal connected to courtroom object, let it figure out what to do
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
}
|
42
aocharmovie.h
Normal file
42
aocharmovie.h
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#ifndef AOCHARMOVIE_H
|
||||||
|
#define AOCHARMOVIE_H
|
||||||
|
|
||||||
|
#include <QMovie>
|
||||||
|
#include <QLabel>
|
||||||
|
|
||||||
|
class AOApplication;
|
||||||
|
|
||||||
|
class AOCharMovie : public QLabel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
AOCharMovie(QWidget *p_parent, AOApplication *p_ao_app);
|
||||||
|
|
||||||
|
void set(QString p_char, QString p_pre, QString p_gif);
|
||||||
|
|
||||||
|
void play_pre();
|
||||||
|
void play_talking();
|
||||||
|
void play_idle();
|
||||||
|
|
||||||
|
void stop();
|
||||||
|
|
||||||
|
void combo_resize(int w, int h);
|
||||||
|
|
||||||
|
private:
|
||||||
|
AOApplication *ao_app;
|
||||||
|
|
||||||
|
QMovie *m_movie;
|
||||||
|
|
||||||
|
QString m_char = "null";
|
||||||
|
QString m_pre;
|
||||||
|
QString m_gif;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void done();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void frame_change(int n_frame);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // AOCHARMOVIE_H
|
@ -1,6 +0,0 @@
|
|||||||
#include "aocharselect.h"
|
|
||||||
|
|
||||||
AOCharSelect::AOCharSelect()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
#ifndef AOCHARSELECT_H
|
|
||||||
#define AOCHARSELECT_H
|
|
||||||
|
|
||||||
#include <QLabel>
|
|
||||||
|
|
||||||
class AOCharSelect : public QLabel
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
AOCharSelect();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // AOCHARSELECT_H
|
|
@ -17,6 +17,8 @@ AOMovie::AOMovie(QWidget *p_parent, AOApplication *p_ao_app) : QLabel(p_parent)
|
|||||||
|
|
||||||
void AOMovie::play(QString p_gif)
|
void AOMovie::play(QString p_gif)
|
||||||
{
|
{
|
||||||
|
m_movie->stop();
|
||||||
|
|
||||||
QString gif_path = ao_app->get_theme_path() + p_gif;
|
QString gif_path = ao_app->get_theme_path() + p_gif;
|
||||||
QString default_path = ao_app->get_default_theme_path() + p_gif;
|
QString default_path = ao_app->get_default_theme_path() + p_gif;
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include "hardware_functions.h"
|
#include "hardware_functions.h"
|
||||||
#include "file_functions.h"
|
#include "file_functions.h"
|
||||||
#include "datatypes.h"
|
#include "datatypes.h"
|
||||||
|
#include "debug_functions.h"
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QScrollBar>
|
#include <QScrollBar>
|
||||||
@ -20,8 +21,9 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
|
|||||||
ui_background = new AOImage(this, ao_app);
|
ui_background = new AOImage(this, ao_app);
|
||||||
|
|
||||||
ui_vp_background = new AOScene(this);
|
ui_vp_background = new AOScene(this);
|
||||||
ui_vp_player_char = new AOMovie(this, ao_app);
|
ui_vp_player_char = new AOCharMovie(this, ao_app);
|
||||||
ui_vp_desk = new AOScene(this);
|
ui_vp_desk = new AOScene(this);
|
||||||
|
ui_vp_legacy_desk = new AOScene(this);
|
||||||
ui_vp_chatbox = new AOImage(this, ao_app);
|
ui_vp_chatbox = new AOImage(this, ao_app);
|
||||||
ui_vp_showname = new QLabel(this);
|
ui_vp_showname = new QLabel(this);
|
||||||
ui_vp_message = new QPlainTextEdit(this);
|
ui_vp_message = new QPlainTextEdit(this);
|
||||||
@ -427,9 +429,7 @@ void Courtroom::set_size_and_pos(QWidget *p_widget, QString p_identifier)
|
|||||||
if (design_ini_result.width < 0 || design_ini_result.height < 0)
|
if (design_ini_result.width < 0 || design_ini_result.height < 0)
|
||||||
{
|
{
|
||||||
//at this point it's pretty much game over
|
//at this point it's pretty much game over
|
||||||
//T0D0: add message box
|
call_error(" could not find \"" + p_identifier + "\" in courtroom_design.ini");
|
||||||
qDebug() << "CRITICAL ERROR: NO SUITABLE DATA FOR SETTING " << p_identifier;
|
|
||||||
ao_app->quit();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -583,7 +583,7 @@ void Courtroom::append_server_chatmessage(QString f_message)
|
|||||||
|
|
||||||
void Courtroom::handle_chatmessage(QStringList *p_contents)
|
void Courtroom::handle_chatmessage(QStringList *p_contents)
|
||||||
{
|
{
|
||||||
QString f_message = p_contents->at(2) + ": " + p_contents->at(4) + '\n';
|
QString f_message = p_contents->at(CHAR_NAME) + ": " + p_contents->at(MESSAGE) + '\n';
|
||||||
|
|
||||||
const QTextCursor old_cursor = ui_ic_chatlog->textCursor();
|
const QTextCursor old_cursor = ui_ic_chatlog->textCursor();
|
||||||
const int old_scrollbar_value = ui_ic_chatlog->verticalScrollBar()->value();
|
const int old_scrollbar_value = ui_ic_chatlog->verticalScrollBar()->value();
|
||||||
@ -614,6 +614,9 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
|
|||||||
|
|
||||||
ui_vp_background->set_image("defenseempty.png");
|
ui_vp_background->set_image("defenseempty.png");
|
||||||
|
|
||||||
|
ui_vp_player_char->set(p_contents->at(CHAR_NAME), p_contents->at(EMOTE), p_contents->at(PRE_EMOTE));
|
||||||
|
ui_vp_player_char->play_talking();
|
||||||
|
|
||||||
//D3BUG END
|
//D3BUG END
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -631,7 +634,6 @@ void Courtroom::handle_wtce(QString p_wtce)
|
|||||||
QUrl wt_sfx(QUrl::fromLocalFile(wt_path));
|
QUrl wt_sfx(QUrl::fromLocalFile(wt_path));
|
||||||
|
|
||||||
sfx_player->stop();
|
sfx_player->stop();
|
||||||
ui_vp_wtce->stop();
|
|
||||||
sfx_player->setSource(wt_sfx);
|
sfx_player->setSource(wt_sfx);
|
||||||
|
|
||||||
sfx_player->play();
|
sfx_player->play();
|
||||||
@ -644,7 +646,6 @@ void Courtroom::handle_wtce(QString p_wtce)
|
|||||||
QUrl ce_sfx(QUrl::fromLocalFile(ce_path));
|
QUrl ce_sfx(QUrl::fromLocalFile(ce_path));
|
||||||
|
|
||||||
sfx_player->stop();
|
sfx_player->stop();
|
||||||
ui_vp_wtce->stop();
|
|
||||||
sfx_player->setSource(ce_sfx);
|
sfx_player->setSource(ce_sfx);
|
||||||
|
|
||||||
sfx_player->play();
|
sfx_player->play();
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "aopacket.h"
|
#include "aopacket.h"
|
||||||
#include "aoscene.h"
|
#include "aoscene.h"
|
||||||
#include "aomovie.h"
|
#include "aomovie.h"
|
||||||
|
#include "aocharmovie.h"
|
||||||
#include "datatypes.h"
|
#include "datatypes.h"
|
||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
@ -89,8 +90,9 @@ private:
|
|||||||
AOImage *ui_background;
|
AOImage *ui_background;
|
||||||
|
|
||||||
AOScene *ui_vp_background;
|
AOScene *ui_vp_background;
|
||||||
AOMovie *ui_vp_player_char;
|
AOCharMovie *ui_vp_player_char;
|
||||||
AOScene *ui_vp_desk;
|
AOScene *ui_vp_desk;
|
||||||
|
AOScene *ui_vp_legacy_desk;
|
||||||
AOImage *ui_vp_chatbox;
|
AOImage *ui_vp_chatbox;
|
||||||
QLabel *ui_vp_showname;
|
QLabel *ui_vp_showname;
|
||||||
QPlainTextEdit *ui_vp_message;
|
QPlainTextEdit *ui_vp_message;
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
QString AOApplication::get_base_path(){
|
QString AOApplication::get_base_path(){
|
||||||
|
|
||||||
#ifdef OMNI_DEBUG
|
#ifdef OMNI_DEBUG
|
||||||
return "/media/omnitroid/Data/winshare/AO/client/base/";
|
return "/media/omnitroid/Data/winshare/AO/client/4chan_base/";
|
||||||
#else
|
#else
|
||||||
return (QDir::currentPath() + "/base/");
|
return (QDir::currentPath() + "/base/");
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user