X-Git-Url: https://irasnyder.com/gitweb/?a=blobdiff_plain;f=position.cpp;h=1d4a293fa6f2244c80c8771df5ea89783c50efcd;hb=2172ce055533d5865d58538ee00bf609e59b0f99;hp=f1cfc907572089804c6d205afb17b8543c9861d0;hpb=5c28697247e009e93b8b03bec8cdee88339d3226;p=cs356-p1-elevator.git diff --git a/position.cpp b/position.cpp index f1cfc90..1d4a293 100644 --- a/position.cpp +++ b/position.cpp @@ -44,7 +44,18 @@ Position& Position::operator+= (const float rhs) Position& Position::operator-= (const float rhs) { - *this += -rhs; + int major = (int)rhs; + int minor = (int)((rhs - major) * 10); + + major_ -= major; + minor_ -= minor; + + /* Check for underflow */ + if (minor_ < 0) + { + major_ -= 1; + minor_ += 10; + } return *this; } @@ -103,6 +114,11 @@ Position::operator float() const return temp; } +Position::operator int() const +{ + return major_; +} + std::ostream& operator<< (std::ostream& os, const Position& rhs) { os << "Position(" << rhs.major_ << "." << rhs.minor_ << ")";