diff options
| author | Samu Laaksonen <laaksonen.sj@gmail.com> | 2012-09-28 22:36:58 +0300 |
|---|---|---|
| committer | Samu Laaksonen <laaksonen.sj@gmail.com> | 2012-09-28 22:36:58 +0300 |
| commit | 1cf5a427a829b22abea7027b18a130a01da3ed6a (patch) | |
| tree | 9076e816e052bb35e52890a13562844090312be5 | |
| parent | 685fe05def77b039221edf06c74af74915d536c5 (diff) | |
| download | prism-1cf5a427a829b22abea7027b18a130a01da3ed6a.tar.gz prism-1cf5a427a829b22abea7027b18a130a01da3ed6a.zip | |
Rename commit
Renamed some files according the project name
Added base directory structure for resources
Changed more fitting parallax scrolled background to menus
- added 3 new layers as resources
Changed more cheerful buttons to menus
Added base classes to build HUD later on
Added one new test level that is size of 800*480 with tilesize of 32*32
| -rw-r--r-- | data/gfx/background/layer_one.png | bin | 0 -> 7903 bytes | |||
| -rw-r--r-- | data/gfx/background/layer_three.png | bin | 0 -> 48268 bytes | |||
| -rw-r--r-- | data/gfx/background/layer_two.png | bin | 0 -> 6292 bytes | |||
| -rw-r--r-- | data/levels/level_1.tmx | 11 | ||||
| -rw-r--r-- | data/levels/tileset/tileset.png | bin | 0 -> 695 bytes | |||
| -rw-r--r-- | libtiled/libtiled.pro | 2 | ||||
| -rw-r--r-- | prism.pri (renamed from platformer.pri) | 3 | ||||
| -rw-r--r-- | prism.pro (renamed from platformer.pro) | 0 | ||||
| -rw-r--r-- | src/ActionScene.cpp | 15 | ||||
| -rw-r--r-- | src/BarDisplay.cpp | 58 | ||||
| -rw-r--r-- | src/BarDisplay.h | 33 | ||||
| -rw-r--r-- | src/CircularDisplay.cpp | 73 | ||||
| -rw-r--r-- | src/CircularDisplay.h | 38 | ||||
| -rw-r--r-- | src/CreditsScene.cpp | 27 | ||||
| -rw-r--r-- | src/GraphicsButtonObject.cpp | 10 | ||||
| -rw-r--r-- | src/GraphicsPixmapObject.h | 4 | ||||
| -rw-r--r-- | src/HeadsUpDisplay.cpp | 22 | ||||
| -rw-r--r-- | src/HeadsUpDisplay.h | 28 | ||||
| -rw-r--r-- | src/LevelSelectionScene.cpp | 18 | ||||
| -rw-r--r-- | src/MainWindow.cpp | 2 | ||||
| -rw-r--r-- | src/MenuScene.cpp | 10 | ||||
| -rw-r--r-- | src/main.cpp | 4 | ||||
| -rw-r--r-- | src/src.pro | 14 |
23 files changed, 333 insertions, 39 deletions
diff --git a/data/gfx/background/layer_one.png b/data/gfx/background/layer_one.png Binary files differnew file mode 100644 index 0000000..51c3955 --- /dev/null +++ b/data/gfx/background/layer_one.png diff --git a/data/gfx/background/layer_three.png b/data/gfx/background/layer_three.png Binary files differnew file mode 100644 index 0000000..b5d38cb --- /dev/null +++ b/data/gfx/background/layer_three.png diff --git a/data/gfx/background/layer_two.png b/data/gfx/background/layer_two.png Binary files differnew file mode 100644 index 0000000..8c6769b --- /dev/null +++ b/data/gfx/background/layer_two.png diff --git a/data/levels/level_1.tmx b/data/levels/level_1.tmx new file mode 100644 index 0000000..6d374fc --- /dev/null +++ b/data/levels/level_1.tmx @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.0" orientation="orthogonal" width="25" height="15" tilewidth="32" tileheight="32"> + <tileset firstgid="1" name="base" tilewidth="32" tileheight="32"> + <image source="tileset/tileset.png" width="32" height="32"/> + </tileset> + <layer name="solidground" width="25" height="15"> + <data encoding="base64" compression="zlib"> + eJxjYBgFwxUwomFS1ROjZ6iDweTfoRD+2NxIT3fisn8UY2IAdcAAZA== + </data> + </layer> +</map> diff --git a/data/levels/tileset/tileset.png b/data/levels/tileset/tileset.png Binary files differnew file mode 100644 index 0000000..017027b --- /dev/null +++ b/data/levels/tileset/tileset.png diff --git a/libtiled/libtiled.pro b/libtiled/libtiled.pro index 84341d4..c7730a3 100644 --- a/libtiled/libtiled.pro +++ b/libtiled/libtiled.pro @@ -1,4 +1,4 @@ -include(../platformer.pri) +include(../prism.pri) TEMPLATE = lib TARGET = tiled diff --git a/platformer.pri b/prism.pri index 1fef270..18c2f81 100644 --- a/platformer.pri +++ b/prism.pri @@ -13,6 +13,3 @@ DEFINES += DATADIR=\"\\\"$${DATADIR}\\\"\" \ win32: { } - -RESOURCES += \ - ../resources.qrc diff --git a/platformer.pro b/prism.pro index 9035e94..9035e94 100644 --- a/platformer.pro +++ b/prism.pro diff --git a/src/ActionScene.cpp b/src/ActionScene.cpp index 9d7013c..c121f33 100644 --- a/src/ActionScene.cpp +++ b/src/ActionScene.cpp @@ -40,12 +40,10 @@ ActionScene::ActionScene(const QString &name, const QRectF &rect, GameView *pare m_clearAlert = false; m_mapReader = new MapReader; - qsrand(QTime::currentTime().msec()); + m_map = 0; + m_mapRenderer = 0; - m_hpText = new QGraphicsTextItem("HP: ", 0, this); - m_hpText->setPos(100, 10); - m_scoreText = new QGraphicsTextItem("Score: 0", 0, this); - m_scoreText->setPos(100, 20); + qsrand(QTime::currentTime().msec()); m_hero = new Hero(this, QPointF(100, 300)); connect(m_hero, SIGNAL(removeMe()), this, SLOT(removeSprite())); @@ -53,8 +51,11 @@ ActionScene::ActionScene(const QString &name, const QRectF &rect, GameView *pare ActionScene::~ActionScene() { - delete m_map; - delete m_mapReader; + if (m_map) + delete m_map; + if (m_mapReader) + delete m_mapReader; + if (m_mapRenderer) delete m_mapRenderer; } diff --git a/src/BarDisplay.cpp b/src/BarDisplay.cpp new file mode 100644 index 0000000..edab1c9 --- /dev/null +++ b/src/BarDisplay.cpp @@ -0,0 +1,58 @@ +#include "BarDisplay.h" + +BarDisplay::BarDisplay(QGraphicsItem* parent) : + QGraphicsItem(parent) +{ + m_partCount = 4; + m_maxValue = 50; + m_value = 50; + + /* TODO: + initialize this item with some kind of rectangle graphics + that supports partitioning, e.g. + [ / / ] or such + */ +} + +BarDisplay::~BarDisplay() +{ +} + +void BarDisplay::collected(int amount) +{ + m_value += amount; + + if (m_value > m_maxValue) + m_value = m_maxValue; + + updateDisplay(); +} + +void BarDisplay::consumed(int amount) +{ + m_value -= amount; + + if (m_value < 0) + m_value = 0; + + updateDisplay(); +} + +void BarDisplay::setDisplayColor(QColor col) +{ + m_displayColor = col; +} + +void BarDisplay::updateDisplay() +{ + // TODO: update graphics so user knows he is hit +} + +QRectF BarDisplay::boundingRect() const +{ + return QRectF(); +} + +void BarDisplay::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ +} diff --git a/src/BarDisplay.h b/src/BarDisplay.h new file mode 100644 index 0000000..4980f8b --- /dev/null +++ b/src/BarDisplay.h @@ -0,0 +1,33 @@ +#ifndef BarDisplay_h +#define BarDisplay_h + +#include <QGraphicsItem> + +class BarDisplay : public QGraphicsItem +{ +public: + BarDisplay(QGraphicsItem* parent = 0); + virtual ~BarDisplay(); + + virtual QRectF boundingRect() const; + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + + void collected(int); + void consumed(int); + void setDisplayColor(QColor col); + +signals: + +public slots: + +private: + int m_partCount; + int m_value; + int m_maxValue; + QColor m_displayColor; + + void updateDisplay(); + +}; + +#endif // BarDisplay_h diff --git a/src/CircularDisplay.cpp b/src/CircularDisplay.cpp new file mode 100644 index 0000000..a1a16f3 --- /dev/null +++ b/src/CircularDisplay.cpp @@ -0,0 +1,73 @@ +#include "CircularDisplay.h" + +CircularDisplay::CircularDisplay(QGraphicsItem* parent) : + QGraphicsItem(parent) +{ + m_partCount = 5; + m_maxValue = 50; + m_consumeSpeed = 5; + m_value = 10; + m_activated = false; + + /* TODO: + initialize this item with some kind of rounds graphics + that supports partitioning + */ +} + +CircularDisplay::~CircularDisplay() +{ +} + +void CircularDisplay::advance(int phase) +{ + if (phase == 0) + return; + + // TODO: consuming logic if color is activated + if (phase == 1) + { + if (m_activated) + ; + else + return; + } +} + +void CircularDisplay::setDisplayColor(QColor col) +{ + m_displayColor = col; +} + +void CircularDisplay::collected(int amount) +{ + m_value += amount; + if (m_value > m_maxValue) + m_value = m_maxValue; + + updateDisplay(); +} + +void CircularDisplay::activate() +{ + m_activated = true; +} + +void CircularDisplay::unactivate() +{ + m_activated = false; +} + +void CircularDisplay::updateDisplay() +{ + // TODO: update graphics so user knows collecting stuff does help +} + +QRectF CircularDisplay::boundingRect() const +{ + return QRectF(); +} + +void CircularDisplay::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) +{ +} diff --git a/src/CircularDisplay.h b/src/CircularDisplay.h new file mode 100644 index 0000000..6889645 --- /dev/null +++ b/src/CircularDisplay.h @@ -0,0 +1,38 @@ +#ifndef CircularDisplay_h +#define CircularDisplay_h + +#include <QGraphicsItem> + +class CircularDisplay : public QGraphicsItem +{ +public: + CircularDisplay(QGraphicsItem* parent = 0); + virtual ~CircularDisplay(); + + virtual QRectF boundingRect() const; + virtual void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); + + void advance(int phase); + + void setDisplayColor(QColor col); + void collected(int amount); + void activate(); + void unactivate(); + +signals: + +public slots: + +private: + int m_partCount; + int m_maxValue; + int m_value; + int m_consumeSpeed; + bool m_activated; + QColor m_displayColor; + + void updateDisplay(); + +}; + +#endif // CircularDisplay_h diff --git a/src/CreditsScene.cpp b/src/CreditsScene.cpp index cd1558c..edcee8f 100644 --- a/src/CreditsScene.cpp +++ b/src/CreditsScene.cpp @@ -18,8 +18,12 @@ CreditsScene::CreditsScene(const QString &name, const QRectF &rect, GameView *pa m_background = new ParallaxScrollerStatic(this); m_background->setLayerWidth(rect.width()); - m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer1.png"), QPointF(0,0), -2, 6); - m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer2.png"), QPointF(0,0), -1, 4); + //m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer1.png"), QPointF(0,0), -2, 6); + //m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer2.png"), QPointF(0,0), -1, 4); + + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_three.png"), QPointF(0,0), -3, 8); + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_two.png"), QPointF(0,0), -2, 6); + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_one.png"), QPointF(0,0), -1, 4); initializeScene(); } @@ -34,22 +38,23 @@ void CreditsScene::initializeScene() addTitle("Credits"); QGraphicsTextItem* creditText = new QGraphicsTextItem(0, this); - creditText->setHtml("<b>WalRush</b> (v. 1.0) <br><br>"\ - "WalRush was originally a project "\ - "for course in TAMK.<br><br>"\ - "Programming by:<br>"\ + creditText->setHtml("<font color=\"white\">"\ + "<b>prism</b> (v. 0.0.3) <br><br>"\ + "Game design,<br>"\ + "concept design and<br>"\ + "programming by:<br>"\ "Samu Laaksonen<br>"\ + "and <br>"\ "Oskari Timperi<br><br>"\ - "Graphics by: <br>"\ - "Lauri Paakinaho<br><br>"\ - "Copyright (c) 2010 of aforementioned persons. All rights reserved.<br>"); + "Copyright (c) 2012 of aforementioned persons. All rights reserved.<br>"\ + "</font>"); creditText->setPos(140, 130); creditText->setFont(QFont("Arial", 14)); GraphicsButtonObject *btn; - btn = new GraphicsButtonObject(QPixmap(qApp->applicationDirPath() + "/gfx/buttons/back-arrow1.png"), + btn = new GraphicsButtonObject(QPixmap(qApp->applicationDirPath() + "/data/gfx/buttons/back-arrow1.png"), 0, this); - btn->setPressedPixmap(QPixmap(qApp->applicationDirPath() + "/gfx/buttons/back-arrow2.png")); + btn->setPressedPixmap(QPixmap(qApp->applicationDirPath() + "/data/gfx/buttons/back-arrow2.png")); btn->setPos(720, 400); btn->setShapeMode(QGraphicsPixmapItem::BoundingRectShape); btn->setZValue(2); diff --git a/src/GraphicsButtonObject.cpp b/src/GraphicsButtonObject.cpp index d5697fa..a62256d 100644 --- a/src/GraphicsButtonObject.cpp +++ b/src/GraphicsButtonObject.cpp @@ -60,6 +60,7 @@ GraphicsButtonObject::GraphicsButtonObject(const QString &str, grad.setStart(0, 0); grad.setFinalStop(0, 1); + /* grad.setColorAt(0, Qt::white); grad.setColorAt(0.20, QColor(137, 175, 201)); grad.setColorAt(0.35, QColor(35, 136, 207)); @@ -67,6 +68,15 @@ GraphicsButtonObject::GraphicsButtonObject(const QString &str, grad.setColorAt(0.65, QColor(35, 136, 207)); grad.setColorAt(0.80, QColor(137, 175, 201)); grad.setColorAt(1, Qt::white); + */ + + grad.setColorAt(0, Qt::red); + grad.setColorAt(0.20, QColor(255, 127, 0)); + grad.setColorAt(0.35, QColor(255, 255, 0)); + grad.setColorAt(0.5, QColor(0, 255, 0)); + grad.setColorAt(0.65, QColor(0, 0, 255)); + grad.setColorAt(0.80, QColor(111, 0, 255)); + grad.setColorAt(1, QColor(143, 0, 255)); painter.setBrush(QBrush(grad)); painter.drawRect(4, 4, pw-8, ph-8); diff --git a/src/GraphicsPixmapObject.h b/src/GraphicsPixmapObject.h index 4ca8005..b128cf3 100644 --- a/src/GraphicsPixmapObject.h +++ b/src/GraphicsPixmapObject.h @@ -14,8 +14,8 @@ class GraphicsPixmapObject : public QObject, public QGraphicsPixmapItem { Q_OBJECT - Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity); - Q_PROPERTY(QPointF pos READ pos WRITE setPos); + Q_PROPERTY(qreal opacity READ opacity WRITE setOpacity) + Q_PROPERTY(QPointF pos READ pos WRITE setPos) public: explicit GraphicsPixmapObject(const QPixmap &pixmap, diff --git a/src/HeadsUpDisplay.cpp b/src/HeadsUpDisplay.cpp new file mode 100644 index 0000000..6aec6e3 --- /dev/null +++ b/src/HeadsUpDisplay.cpp @@ -0,0 +1,22 @@ +#include "BarDisplay.h" +#include "CircularDisplay.h" + +#include "HeadsUpDisplay.h" + +HeadsUpDisplay::HeadsUpDisplay(QGraphicsScene* anchorScene, QObject *parent) : + QObject(parent) +{ + m_healtBar = new BarDisplay(); + m_healtBar->setDisplayColor(QColor(0, 255, 255)); + m_redColor = new CircularDisplay(); + m_redColor->setDisplayColor(QColor(255, 0, 0)); + m_greenColor = new CircularDisplay(); + m_greenColor->setDisplayColor(QColor(0, 255, 0)); + m_blueColor = new CircularDisplay(); + m_blueColor->setDisplayColor(QColor(0, 0, 255)); +} + +HeadsUpDisplay::~HeadsUpDisplay() +{ + +} diff --git a/src/HeadsUpDisplay.h b/src/HeadsUpDisplay.h new file mode 100644 index 0000000..ed88270 --- /dev/null +++ b/src/HeadsUpDisplay.h @@ -0,0 +1,28 @@ +#ifndef HeadsUpDisplay_h +#define HeadsUpDisplay_h +#include <QObject> + +class QGraphicsScene; +class BarDisplay; +class CircularDisplay; + +class HeadsUpDisplay : public QObject +{ + Q_OBJECT +public: + HeadsUpDisplay(QGraphicsScene* anchorScene, QObject *parent = 0); + virtual ~HeadsUpDisplay(); + +signals: + +public slots: + +private: + BarDisplay* m_healtBar; + CircularDisplay* m_redColor; + CircularDisplay* m_greenColor; + CircularDisplay* m_blueColor; + +}; + +#endif // HeadsUpDisplay_h diff --git a/src/LevelSelectionScene.cpp b/src/LevelSelectionScene.cpp index 02516b1..aa6c607 100644 --- a/src/LevelSelectionScene.cpp +++ b/src/LevelSelectionScene.cpp @@ -19,8 +19,12 @@ LevelSelectionScene::LevelSelectionScene(const QString &name, const QRectF &rect m_background = new ParallaxScrollerStatic(this); m_background->setLayerWidth(rect.width()); - m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer1.png"), QPointF(0,0), -2, 6); - m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer2.png"), QPointF(0,0), -1, 4); + //m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer1.png"), QPointF(0,0), -2, 6); + //m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer2.png"), QPointF(0,0), -1, 4); + + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_three.png"), QPointF(0,0), -3, 8); + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_two.png"), QPointF(0,0), -2, 6); + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_one.png"), QPointF(0,0), -1, 4); initializeScene(); } @@ -36,7 +40,11 @@ void LevelSelectionScene::initializeScene() QSettings settings; - QDir levelDirectory(settings.value("path/levels").toString()); + QString path = qApp->applicationDirPath() + "/data/levels"; + + //QDir levelDirectory(settings.value("path/levels").toString()); + + QDir levelDirectory(path); /* TODO: check levels directory for levels (should be 6) and create corresponding buttons that react when pressed and lauch the level @@ -69,8 +77,8 @@ void LevelSelectionScene::initializeScene() } GraphicsButtonObject *btn; - btn = new GraphicsButtonObject(QPixmap(QApplication::applicationDirPath() + "/gfx/buttons/back-arrow1.png"), 0, this); - btn->setPressedPixmap(QPixmap(QApplication::applicationDirPath() + "/gfx/buttons/back-arrow2.png")); + btn = new GraphicsButtonObject(QPixmap(QApplication::applicationDirPath() + "/data/gfx/buttons/back-arrow1.png"), 0, this); + btn->setPressedPixmap(QPixmap(QApplication::applicationDirPath() + "/data/gfx/buttons/back-arrow2.png")); btn->setPos(720, 400); btn->setShapeMode(QGraphicsPixmapItem::BoundingRectShape); btn->setZValue(2); diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index cac85c1..6e6aa04 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -6,7 +6,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { resize(800, 480); - setWindowTitle("Generic platformer base, version 0.0.1 alpha"); + setWindowTitle("prism, version 0.0.3"); setCentralWidget(m_gameView->instance()); } diff --git a/src/MenuScene.cpp b/src/MenuScene.cpp index 1deaa66..241f423 100644 --- a/src/MenuScene.cpp +++ b/src/MenuScene.cpp @@ -15,8 +15,12 @@ MenuScene::MenuScene(const QString &name, const QRectF &rect, GameView *parent) m_background = new ParallaxScrollerStatic(this); m_background->setLayerWidth(rect.width()); - m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer1.png"), QPointF(0,0), -2, 6); - m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer2.png"), QPointF(0,0), -1, 4); + //m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer1.png"), QPointF(0,0), -2, 6); + //m_background->addParallaxScrollItem(QString(appDir + "/gfx/bg/layer2.png"), QPointF(0,0), -1, 4); + + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_three.png"), QPointF(0,0), -3, 8); + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_two.png"), QPointF(0,0), -2, 6); + m_background->addParallaxScrollItem(QString(appDir + "/data/gfx/background/layer_one.png"), QPointF(0,0), -1, 4); initializeScene(); } @@ -49,5 +53,5 @@ void MenuScene::initializeScene() connect(btn2, SIGNAL(clicked()), gameView(), SLOT(showCreditsScene())); connect(btn3, SIGNAL(clicked()), qApp, SLOT(quit())); - addTitle("Platformer"); + addTitle("prism"); } diff --git a/src/main.cpp b/src/main.cpp index 5691abc..da8d58b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,8 +22,8 @@ int main(int argc, char *argv[]) const QString &app_path = QApplication::applicationDirPath(); s.setValue("path/data", app_path); - s.setValue("path/gfx", app_path + "/gfx"); - s.setValue("path/levels", app_path + "/levels"); + s.setValue("path/gfx", app_path + "/data/gfx"); + s.setValue("path/levels", app_path + "/data/levels"); } MainWindow mw; diff --git a/src/src.pro b/src/src.pro index ff63d79..de37d2e 100644 --- a/src/src.pro +++ b/src/src.pro @@ -2,11 +2,11 @@ # Automatically generated by qmake (2.01a) Thu Mar 24 21:28:35 2011 ###################################################################### -include(../platformer.pri) +include(../prism.pri) QT += core gui opengl TEMPLATE = app -TARGET = platformer +TARGET = prism DEPENDPATH += . INCLUDEPATH += . ../libtiled INSTALLS += target @@ -33,7 +33,10 @@ HEADERS += MainWindow.h \ Sprite.h \ Collectible.h \ Hero.h \ - BasicEnemy.h + BasicEnemy.h \ + BarDisplay.h \ + CircularDisplay.h \ + HeadsUpDisplay.h SOURCES += main.cpp \ MainWindow.cpp \ @@ -52,4 +55,7 @@ SOURCES += main.cpp \ Sprite.cpp \ Collectible.cpp \ Hero.cpp \ - BasicEnemy.cpp + BasicEnemy.cpp \ + BarDisplay.cpp \ + CircularDisplay.cpp \ + HeadsUpDisplay.cpp |
