Crash fixes (bug #0000006). Also cleaned up some includes to speed up compilation.
This commit is contained in:
parent
8fea71782d
commit
62bf2572a9
22 changed files with 208 additions and 41 deletions
|
@ -1,5 +1,9 @@
|
|||
#include <QApplication>
|
||||
#include <QtGui>
|
||||
#include <QPainter>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include "carditem.h"
|
||||
#include "carddragitem.h"
|
||||
#include "carddatabase.h"
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
#include <QtGui>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include <QDebug>
|
||||
#include "cardzone.h"
|
||||
#include "carditem.h"
|
||||
#include "player.h"
|
||||
|
@ -14,7 +17,7 @@ CardZone::CardZone(Player *_p, const QString &_name, bool _hasCardAttr, bool _is
|
|||
|
||||
CardZone::~CardZone()
|
||||
{
|
||||
qDebug(QString("CardZone destructor: %1").arg(name).toLatin1());
|
||||
qDebug() << "CardZone destructor: " << name;
|
||||
delete view;
|
||||
clearContents();
|
||||
}
|
||||
|
@ -34,7 +37,7 @@ void CardZone::clearContents()
|
|||
for (int j = 0; j < attachedCards.size(); ++j)
|
||||
attachedCards[j]->setParentItem(attachedCards[j]->getZone());
|
||||
|
||||
delete cards.at(i);
|
||||
player->deleteCard(cards.at(i));
|
||||
}
|
||||
cards.clear();
|
||||
emit cardCountChanged();
|
||||
|
|
|
@ -1,10 +1,13 @@
|
|||
#include "counter.h"
|
||||
#include "player.h"
|
||||
#include "protocol_items.h"
|
||||
#include <QtGui>
|
||||
#include <QPainter>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
|
||||
Counter::Counter(Player *_player, int _id, const QString &_name, QColor _color, int _radius, int _value, QGraphicsItem *parent)
|
||||
: QGraphicsItem(parent), player(_player), id(_id), name(_name), color(_color), radius(_radius), value(_value), aDec(0), aInc(0)
|
||||
: QGraphicsItem(parent), player(_player), id(_id), name(_name), color(_color), radius(_radius), value(_value), aDec(0), aInc(0), dialogSemaphore(false), deleteAfterDialog(false)
|
||||
{
|
||||
if (radius > Player::counterAreaWidth / 2)
|
||||
radius = Player::counterAreaWidth / 2;
|
||||
|
@ -38,6 +41,14 @@ Counter::~Counter()
|
|||
delete menu;
|
||||
}
|
||||
|
||||
void Counter::delCounter()
|
||||
{
|
||||
if (dialogSemaphore)
|
||||
deleteAfterDialog = true;
|
||||
else
|
||||
deleteLater();
|
||||
}
|
||||
|
||||
void Counter::retranslateUi()
|
||||
{
|
||||
if (menu) {
|
||||
|
@ -112,7 +123,13 @@ void Counter::incrementCounter()
|
|||
void Counter::setCounter()
|
||||
{
|
||||
bool ok;
|
||||
dialogSemaphore = true;
|
||||
int newValue = QInputDialog::getInteger(0, tr("Set counter"), tr("New value for counter '%1':").arg(name), value, 0, 2000000000, 1, &ok);
|
||||
if (deleteAfterDialog) {
|
||||
deleteLater();
|
||||
return;
|
||||
}
|
||||
dialogSemaphore = false;
|
||||
if (ok)
|
||||
player->sendGameCommand(new Command_SetCounter(-1, id, newValue));
|
||||
}
|
||||
|
|
|
@ -19,6 +19,7 @@ private:
|
|||
|
||||
QAction *aSet, *aDec, *aInc;
|
||||
QMenu *menu;
|
||||
bool dialogSemaphore, deleteAfterDialog;
|
||||
private slots:
|
||||
void incrementCounter();
|
||||
void setCounter();
|
||||
|
@ -37,6 +38,7 @@ public:
|
|||
QString getName() const { return name; }
|
||||
int getValue() const { return value; }
|
||||
void setValue(int _value);
|
||||
void delCounter();
|
||||
|
||||
void setShortcutsActive();
|
||||
void setShortcutsInactive();
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
#include <QtGui>
|
||||
#include <QApplication>
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include "deckview.h"
|
||||
#include "decklist.h"
|
||||
#include "carddatabase.h"
|
||||
#include "settingscache.h"
|
||||
#include "main.h"
|
||||
|
||||
DeckViewCardDragItem::DeckViewCardDragItem(DeckViewCard *_item, const QPointF &_hotSpot, AbstractCardDragItem *parentDrag)
|
||||
|
@ -117,8 +119,7 @@ void DeckViewCard::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
|
|||
DeckViewCardContainer::DeckViewCardContainer(const QString &_name)
|
||||
: QGraphicsItem(), name(_name), width(0), height(0), maxWidth(0)
|
||||
{
|
||||
QSettings settings;
|
||||
QString bgPath = settings.value("zonebg/table").toString();
|
||||
QString bgPath = settingsCache->getTableBgPath();
|
||||
if (!bgPath.isEmpty())
|
||||
bgPixmap.load(bgPath);
|
||||
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
#include <QtGui>
|
||||
#include <QSettings>
|
||||
#include <QLabel>
|
||||
#include <QPushButton>
|
||||
#include <QGridLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include "dlg_connect.h"
|
||||
|
||||
DlgConnect::DlgConnect(QWidget *parent)
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
#include <QtGui>
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
#include <QComboBox>
|
||||
#include <QPushButton>
|
||||
#include <QCheckBox>
|
||||
#include <QGridLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include "dlg_create_token.h"
|
||||
|
||||
DlgCreateToken::DlgCreateToken(QWidget *parent)
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
#include <QtGui>
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
#include <QCheckBox>
|
||||
#include <QPushButton>
|
||||
#include <QGridLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QSpinBox>
|
||||
#include <QGroupBox>
|
||||
#include <QMessageBox>
|
||||
#include "dlg_creategame.h"
|
||||
#include "protocol_items.h"
|
||||
|
||||
|
|
|
@ -1,5 +1,21 @@
|
|||
#include <QtGui>
|
||||
|
||||
#include <QLabel>
|
||||
#include <QLineEdit>
|
||||
#include <QComboBox>
|
||||
#include <QCheckBox>
|
||||
#include <QGroupBox>
|
||||
#include <QPushButton>
|
||||
#include <QGridLayout>
|
||||
#include <QListWidget>
|
||||
#include <QStackedWidget>
|
||||
#include <QCloseEvent>
|
||||
#include <QMessageBox>
|
||||
#include <QFileDialog>
|
||||
#include <QToolBar>
|
||||
#include <QTranslator>
|
||||
#include <QAction>
|
||||
#include <QSettings>
|
||||
#include <QApplication>
|
||||
#include <QInputDialog>
|
||||
#include "carddatabase.h"
|
||||
#include "dlg_settings.h"
|
||||
#include "main.h"
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
#include <QtGui>
|
||||
#include <QPainter>
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include <QApplication>
|
||||
#include "pilezone.h"
|
||||
#include "player.h"
|
||||
#include "carddragitem.h"
|
||||
|
@ -20,7 +22,6 @@ QRectF PileZone::boundingRect() const
|
|||
|
||||
void PileZone::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
|
||||
{
|
||||
qDebug("PileZone::paint");
|
||||
if (!cards.isEmpty()) {
|
||||
painter->save();
|
||||
cards.at(0)->paint(painter, option, widget);
|
||||
|
@ -51,7 +52,6 @@ void PileZone::handleDropEvent(int cardId, CardZone *startZone, const QPoint &/*
|
|||
|
||||
void PileZone::reorganizeCards()
|
||||
{
|
||||
qDebug(QString("PileZone: reorganize, x=%1, y=%2, w=%3, h=%4").arg(boundingRect().x()).arg(boundingRect().y()).arg(boundingRect().width()).arg(boundingRect().height()).toLatin1());
|
||||
update();
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#include <QDebug>
|
||||
|
||||
Player::Player(const QString &_name, int _id, bool _local, TabGame *_parent)
|
||||
: QObject(_parent), defaultNumberTopCards(3), lastTokenDestroy(true), name(_name), id(_id), active(false), local(_local), mirrored(false)
|
||||
: QObject(_parent), shortcutsActive(false), defaultNumberTopCards(3), lastTokenDestroy(true), name(_name), id(_id), active(false), local(_local), mirrored(false), dialogSemaphore(false)
|
||||
{
|
||||
setCacheMode(DeviceCoordinateCache);
|
||||
|
||||
|
@ -332,6 +332,8 @@ void Player::retranslateUi()
|
|||
|
||||
void Player::setShortcutsActive()
|
||||
{
|
||||
shortcutsActive = true;
|
||||
|
||||
aViewLibrary->setShortcut(tr("F3"));
|
||||
aViewTopCards->setShortcut(tr("Ctrl+W"));
|
||||
aViewGraveyard->setShortcut(tr("F4"));
|
||||
|
@ -351,6 +353,8 @@ void Player::setShortcutsActive()
|
|||
|
||||
void Player::setShortcutsInactive()
|
||||
{
|
||||
shortcutsActive = false;
|
||||
|
||||
aViewLibrary->setShortcut(QKeySequence());
|
||||
aViewTopCards->setShortcut(QKeySequence());
|
||||
aViewGraveyard->setShortcut(QKeySequence());
|
||||
|
@ -880,6 +884,14 @@ void Player::addCard(CardItem *c)
|
|||
emit newCardAdded(c);
|
||||
}
|
||||
|
||||
void Player::deleteCard(CardItem *c)
|
||||
{
|
||||
if (dialogSemaphore)
|
||||
cardsToDelete.append(c);
|
||||
else
|
||||
delete c;
|
||||
}
|
||||
|
||||
void Player::addZone(CardZone *z)
|
||||
{
|
||||
zones.insert(z->getName(), z);
|
||||
|
@ -896,6 +908,8 @@ Counter *Player::addCounter(int counterId, const QString &name, QColor color, in
|
|||
counters.insert(counterId, c);
|
||||
if (countersMenu)
|
||||
countersMenu->addMenu(c->getMenu());
|
||||
if (shortcutsActive)
|
||||
c->setShortcutsActive();
|
||||
rearrangeCounters();
|
||||
return c;
|
||||
}
|
||||
|
@ -906,7 +920,7 @@ void Player::delCounter(int counterId)
|
|||
if (!c)
|
||||
return;
|
||||
counters.remove(counterId);
|
||||
delete c;
|
||||
c->delCounter();
|
||||
rearrangeCounters();
|
||||
}
|
||||
|
||||
|
@ -914,7 +928,7 @@ void Player::clearCounters()
|
|||
{
|
||||
QMapIterator<int, Counter *> counterIterator(counters);
|
||||
while (counterIterator.hasNext())
|
||||
delete counterIterator.next().value();
|
||||
counterIterator.next().value()->delCounter();
|
||||
counters.clear();
|
||||
}
|
||||
|
||||
|
@ -1016,6 +1030,18 @@ void Player::sendCommandContainer(CommandContainer *cont)
|
|||
static_cast<TabGame *>(parent())->sendCommandContainer(cont, id);
|
||||
}
|
||||
|
||||
bool Player::clearCardsToDelete()
|
||||
{
|
||||
if (cardsToDelete.isEmpty())
|
||||
return false;
|
||||
|
||||
for (int i = 0; i < cardsToDelete.size(); ++i)
|
||||
cardsToDelete[i]->deleteLater();
|
||||
cardsToDelete.clear();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Player::cardMenuAction()
|
||||
{
|
||||
QAction *a = static_cast<QAction *>(sender());
|
||||
|
@ -1073,13 +1099,17 @@ void Player::actSetPT()
|
|||
oldPT = card->getPT();
|
||||
}
|
||||
bool ok;
|
||||
dialogSemaphore = true;
|
||||
QString pt = QInputDialog::getText(0, tr("Set power/toughness"), tr("Please enter the new PT:"), QLineEdit::Normal, oldPT, &ok);
|
||||
dialogSemaphore = false;
|
||||
if (clearCardsToDelete())
|
||||
return;
|
||||
if (!ok)
|
||||
return;
|
||||
|
||||
i.toFront();
|
||||
while (i.hasNext()) {
|
||||
CardItem *card = static_cast<CardItem *>(i.next());
|
||||
QListIterator<QGraphicsItem *> j(scene()->selectedItems());
|
||||
while (j.hasNext()) {
|
||||
CardItem *card = static_cast<CardItem *>(j.next());
|
||||
sendGameCommand(new Command_SetCardAttr(-1, card->getZone()->getName(), card->getId(), "pt", pt));
|
||||
}
|
||||
}
|
||||
|
@ -1095,7 +1125,11 @@ void Player::actSetAnnotation()
|
|||
}
|
||||
|
||||
bool ok;
|
||||
dialogSemaphore = true;
|
||||
QString annotation = QInputDialog::getText(0, tr("Set annotation"), tr("Please enter the new annotation:"), QLineEdit::Normal, oldAnnotation, &ok);
|
||||
dialogSemaphore = false;
|
||||
if (clearCardsToDelete())
|
||||
return;
|
||||
if (!ok)
|
||||
return;
|
||||
|
||||
|
@ -1147,7 +1181,11 @@ void Player::actCardCounterTrigger()
|
|||
}
|
||||
case 11: {
|
||||
bool ok;
|
||||
dialogSemaphore = true;
|
||||
int number = QInputDialog::getInteger(0, tr("Set counters"), tr("Number:"), 0, 0, MAX_COUNTERS_ON_CARD, 1, &ok);
|
||||
dialogSemaphore = false;
|
||||
if (clearCardsToDelete())
|
||||
return;
|
||||
if (!ok)
|
||||
return;
|
||||
|
||||
|
|
|
@ -106,6 +106,7 @@ private:
|
|||
*aUntapAll, *aRollDie, *aCreateToken, *aCreateAnotherToken,
|
||||
*aCardMenu;
|
||||
|
||||
bool shortcutsActive;
|
||||
int defaultNumberTopCards;
|
||||
QString lastTokenName, lastTokenColor, lastTokenPT, lastTokenAnnotation;
|
||||
bool lastTokenDestroy;
|
||||
|
@ -115,6 +116,10 @@ private:
|
|||
bool local;
|
||||
bool mirrored;
|
||||
|
||||
bool dialogSemaphore;
|
||||
bool clearCardsToDelete();
|
||||
QList<CardItem *> cardsToDelete;
|
||||
|
||||
QMap<QString, CardZone *> zones;
|
||||
TableZone *table;
|
||||
HandZone *hand;
|
||||
|
@ -157,6 +162,7 @@ public:
|
|||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);
|
||||
|
||||
void addCard(CardItem *c);
|
||||
void deleteCard(CardItem *c);
|
||||
void addZone(CardZone *z);
|
||||
|
||||
Counter *addCounter(ServerInfo_Counter *counter);
|
||||
|
|
|
@ -1,4 +1,10 @@
|
|||
#include <QtGui>
|
||||
#include <QListWidget>
|
||||
#include <QTextEdit>
|
||||
#include <QLineEdit>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include "tab_chatchannel.h"
|
||||
#include "abstractclient.h"
|
||||
#include "protocol_items.h"
|
||||
|
|
|
@ -1,17 +1,27 @@
|
|||
#include <QtGui>
|
||||
#include <QTreeView>
|
||||
#include <QFileSystemModel>
|
||||
#include <QSortFilterProxyModel>
|
||||
#include <QToolBar>
|
||||
#include <QVBoxLayout>
|
||||
#include <QHBoxLayout>
|
||||
#include <QAction>
|
||||
#include <QGroupBox>
|
||||
#include <QHeaderView>
|
||||
#include <QApplication>
|
||||
#include <QInputDialog>
|
||||
#include "tab_deck_storage.h"
|
||||
#include "remotedecklist_treewidget.h"
|
||||
#include "abstractclient.h"
|
||||
#include "decklist.h"
|
||||
#include "protocol_items.h"
|
||||
#include "window_deckeditor.h"
|
||||
#include "settingscache.h"
|
||||
|
||||
TabDeckStorage::TabDeckStorage(AbstractClient *_client)
|
||||
: Tab(), client(_client)
|
||||
{
|
||||
localDirModel = new QFileSystemModel(this);
|
||||
QSettings settings;
|
||||
localDirModel->setRootPath(settings.value("paths/decks").toString());
|
||||
localDirModel->setRootPath(settingsCache->getDeckPath());
|
||||
|
||||
sortFilter = new QSortFilterProxyModel(this);
|
||||
sortFilter->setSourceModel(localDirModel);
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
#include <QtGui>
|
||||
#include <QLabel>
|
||||
#include <QHBoxLayout>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QMessageBox>
|
||||
#include <QFileDialog>
|
||||
#include "tab_game.h"
|
||||
#include "cardinfowidget.h"
|
||||
#include "playerlistwidget.h"
|
||||
|
@ -18,6 +23,7 @@
|
|||
#include "carditem.h"
|
||||
#include "arrowitem.h"
|
||||
#include "main.h"
|
||||
#include "settingscache.h"
|
||||
|
||||
ReadyStartButton::ReadyStartButton(QWidget *parent)
|
||||
: QPushButton(parent), readyStart(false)
|
||||
|
@ -88,8 +94,7 @@ void DeckViewContainer::setButtonsVisible(bool _visible)
|
|||
void DeckViewContainer::loadLocalDeck()
|
||||
{
|
||||
QFileDialog dialog(this, tr("Load deck"));
|
||||
QSettings settings;
|
||||
dialog.setDirectory(settings.value("paths/decks").toString());
|
||||
dialog.setDirectory(settingsCache->getDeckPath());
|
||||
dialog.setNameFilters(DeckList::fileNameFilters);
|
||||
if (!dialog.exec())
|
||||
return;
|
||||
|
|
|
@ -1,4 +1,14 @@
|
|||
#include <QtGui>
|
||||
#include <QTreeView>
|
||||
#include <QCheckBox>
|
||||
#include <QPushButton>
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QTreeWidget>
|
||||
#include <QTextEdit>
|
||||
#include <QMessageBox>
|
||||
#include <QLineEdit>
|
||||
#include <QHeaderView>
|
||||
#include <QInputDialog>
|
||||
#include "tab_server.h"
|
||||
#include "gamesmodel.h"
|
||||
#include "dlg_creategame.h"
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
#include <QtGui>
|
||||
#include <QPainter>
|
||||
#include <QSet>
|
||||
#include <QGraphicsScene>
|
||||
#include <math.h>
|
||||
#include "tablezone.h"
|
||||
#include "player.h"
|
||||
#include "protocol_items.h"
|
||||
|
|
|
@ -1,4 +1,21 @@
|
|||
#include <QtGui>
|
||||
#include <QLabel>
|
||||
#include <QToolButton>
|
||||
#include <QTreeView>
|
||||
#include <QHBoxLayout>
|
||||
#include <QVBoxLayout>
|
||||
#include <QToolBar>
|
||||
#include <QTextEdit>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QCloseEvent>
|
||||
#include <QFileDialog>
|
||||
#include <QMenuBar>
|
||||
#include <QMessageBox>
|
||||
#include <QPrintPreviewDialog>
|
||||
#include <QHeaderView>
|
||||
#include <QApplication>
|
||||
#include <QClipboard>
|
||||
#include <QTextStream>
|
||||
#include "window_deckeditor.h"
|
||||
#include "window_sets.h"
|
||||
#include "carddatabase.h"
|
||||
|
@ -9,6 +26,7 @@
|
|||
#include "dlg_cardsearch.h"
|
||||
#include "dlg_load_deck_from_clipboard.h"
|
||||
#include "main.h"
|
||||
#include "settingscache.h"
|
||||
|
||||
void SearchLineEdit::keyPressEvent(QKeyEvent *event)
|
||||
{
|
||||
|
@ -270,8 +288,7 @@ void WndDeckEditor::actLoadDeck()
|
|||
return;
|
||||
|
||||
QFileDialog dialog(this, tr("Load deck"));
|
||||
QSettings settings;
|
||||
dialog.setDirectory(settings.value("paths/decks").toString());
|
||||
dialog.setDirectory(settingsCache->getDeckPath());
|
||||
dialog.setNameFilters(DeckList::fileNameFilters);
|
||||
if (!dialog.exec())
|
||||
return;
|
||||
|
@ -299,8 +316,7 @@ bool WndDeckEditor::actSaveDeck()
|
|||
bool WndDeckEditor::actSaveDeckAs()
|
||||
{
|
||||
QFileDialog dialog(this, tr("Save deck"));
|
||||
QSettings settings;
|
||||
dialog.setDirectory(settings.value("paths/decks").toString());
|
||||
dialog.setDirectory(settingsCache->getDeckPath());
|
||||
dialog.setAcceptMode(QFileDialog::AcceptSave);
|
||||
dialog.setConfirmOverwrite(true);
|
||||
dialog.setDefaultSuffix("cod");
|
||||
|
|
|
@ -17,7 +17,13 @@
|
|||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
#include <QtGui>
|
||||
#include <QMenu>
|
||||
#include <QAction>
|
||||
#include <QCloseEvent>
|
||||
#include <QMessageBox>
|
||||
#include <QMenuBar>
|
||||
#include <QPixmapCache>
|
||||
#include <QInputDialog>
|
||||
|
||||
#include "window_main.h"
|
||||
#include "dlg_connect.h"
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#include "window_sets.h"
|
||||
#include "setsmodel.h"
|
||||
#include "main.h"
|
||||
#include <QtGui>
|
||||
#include <QTreeView>
|
||||
#include <QHBoxLayout>
|
||||
|
||||
WndSets::WndSets(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
#include <QtGui>
|
||||
#include <QGraphicsLinearLayout>
|
||||
#include <QGraphicsProxyWidget>
|
||||
#include <QCheckBox>
|
||||
#include "zoneviewwidget.h"
|
||||
#include "carditem.h"
|
||||
#include "zoneviewzone.h"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include <QtGui>
|
||||
#include <math.h>
|
||||
#include <QDebug>
|
||||
#include "zoneviewzone.h"
|
||||
#include "player.h"
|
||||
#include "protocol_items.h"
|
||||
|
|
Loading…
Reference in a new issue