From e083e2c09aad37199affe880180f2eda90d213ac Mon Sep 17 00:00:00 2001 From: Matthew Cline Date: Thu, 29 Oct 2009 00:57:54 -0700 Subject: level_pos: add methods current() and is_on() Added to level_pos the static method current(), similar to level_id::current(), and is_on(level_id lev), which returns true if the level_pos is on the given level_id. --- crawl-ref/source/travel.cc | 5 +++++ crawl-ref/source/travel.h | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/crawl-ref/source/travel.cc b/crawl-ref/source/travel.cc index 079b4a877d..f7d1a5ab5b 100644 --- a/crawl-ref/source/travel.cc +++ b/crawl-ref/source/travel.cc @@ -2934,6 +2934,11 @@ void level_id::load(reader& inf) level_type = static_cast(unmarshallShort(inf)); } +level_pos level_pos::current() +{ + return level_pos(level_id::current(), you.pos()); +} + // NOTE: see also marshall_level_pos void level_pos::save(writer& outf) const { diff --git a/crawl-ref/source/travel.h b/crawl-ref/source/travel.h index 3dcf059577..dde4ce08fc 100644 --- a/crawl-ref/source/travel.h +++ b/crawl-ref/source/travel.h @@ -197,6 +197,9 @@ struct level_pos pos.x = pos.y = -1; } + // Returns the level_pos of where the player is standing. + static level_pos current(); + bool operator == ( const level_pos &lp ) const { return id == lp.id && pos == lp.pos; @@ -217,6 +220,11 @@ struct level_pos return id.depth > -1 && pos.x != -1 && pos.y != -1; } + bool is_on( const level_id _id) + { + return id == _id; + } + void clear() { id.clear(); -- cgit v1.2.3-54-g00ecf