From dd61f06a18a74bf5ea8253ae3fdcbdce1945ca61 Mon Sep 17 00:00:00 2001 From: Love Billenius Date: Wed, 11 Sep 2024 17:16:15 +0200 Subject: [PATCH] Abstract Unit class --- src/Hero.cpp | 4 ++++ src/Hero.h | 8 +++++--- src/Unit.cpp | 5 +---- src/Unit.h | 8 ++++---- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Hero.cpp b/src/Hero.cpp index 8feda57..6adc69b 100755 --- a/src/Hero.cpp +++ b/src/Hero.cpp @@ -17,3 +17,7 @@ void Hero::draw(QGraphicsScene *scene) const { Unit *Hero::clone() const { return new Hero(*this); } + +bool Hero::isAlive() const { return true; } +bool Hero::isToBeJunked() const { return false; } +void Hero::doCrash() {} diff --git a/src/Hero.h b/src/Hero.h index 5db8360..1934834 100755 --- a/src/Hero.h +++ b/src/Hero.h @@ -15,10 +15,12 @@ public: Unit *clone() const override; /* - * Draws this hero onto the given QGraphicsScene. - */ + * Draws this hero onto the given QGraphicsScene. + */ void draw(QGraphicsScene *scene) const override; - + bool isAlive() const override; + bool isToBeJunked() const override; + void doCrash() override; }; #endif // HERO_H diff --git a/src/Unit.cpp b/src/Unit.cpp index 8893497..b40d796 100755 --- a/src/Unit.cpp +++ b/src/Unit.cpp @@ -59,7 +59,4 @@ void Unit::checkBounds() { } // Default implementation -bool Unit::isAlive() const { return true; } -bool Unit::isToBeJunked() const { return false; } -void Unit::doCrash() {} -void Unit::draw(QGraphicsScene *) const {} + diff --git a/src/Unit.h b/src/Unit.h index d40dbed..33a5c90 100755 --- a/src/Unit.h +++ b/src/Unit.h @@ -57,10 +57,10 @@ public: */ double distanceTo(const Unit& u) const; - virtual bool isAlive() const; - virtual bool isToBeJunked() const; - virtual void doCrash(); - virtual void draw(QGraphicsScene *scene) const; + virtual bool isAlive() const = 0; + virtual bool isToBeJunked() const = 0; + virtual void doCrash() = 0; + virtual void draw(QGraphicsScene *scene) const = 0; private: int x; // x position of this unit int y; // y position of this unit