From 97f93f7d2dd30fee884ee4eeb8a16dcb51cf4a7c Mon Sep 17 00:00:00 2001 From: dshaligram Date: Tue, 25 Nov 2008 00:01:38 +0000 Subject: Allow ziggurats placed in Pandemonium to return to the same Pan level when the player leaves the ziggurat. Breaks saves. Cleaned up up_stairs() and down_stairs() to remove spurious depth changes when changing you.level_type - depth (you.your_level) now changes only for stairs with both ends in LEVEL_DUNGEON. All levels are now saved on exit, including non LEVEL_DUNGEON levels. Re-entering non-dungeon levels from down_stairs will still delete the old level. Re-entering non-dungeon levels from up_stairs (i.e. returning to a non-dungeon level from some other place, like a ziggurat) will reload the old level. Fixed bogus marker trashing when player attempts to use a Zot entrance with insufficient runes. Delete .msg files when game ends. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@7598 c06c8d41-db1a-0410-9941-cceddc491573 --- crawl-ref/source/travel.h | 101 ---------------------------------------------- 1 file changed, 101 deletions(-) (limited to 'crawl-ref/source/travel.h') diff --git a/crawl-ref/source/travel.h b/crawl-ref/source/travel.h index 65e2bcd08a..419d0e3a32 100644 --- a/crawl-ref/source/travel.h +++ b/crawl-ref/source/travel.h @@ -179,107 +179,6 @@ enum explore_stop_type //////////////////////////////////////////////////////////////////////////// // Structs for interlevel travel. -// Identifies a level. Should never include virtual methods or -// dynamically allocated memory (see code to push level_id onto Lua -// stack in luadgn.cc) -class level_id -{ -public: - branch_type branch; // The branch in which the level is. - int depth; // What depth (in this branch - starting from 1) - level_area_type level_type; - -public: - // Returns the level_id of the current level. - static level_id current(); - - // Returns the level_id of the level that the stair/portal/whatever at - // 'pos' on the current level leads to. - static level_id get_next_level_id(const coord_def &pos); - - level_id() - : branch(BRANCH_MAIN_DUNGEON), depth(-1), - level_type(LEVEL_DUNGEON) - { - } - level_id(branch_type br, int dep, level_area_type ltype = LEVEL_DUNGEON) - : branch(br), depth(dep), level_type(ltype) - { - } - level_id(const level_id &ot) - : branch(ot.branch), depth(ot.depth), level_type(ot.level_type) - { - } - level_id(level_area_type ltype) - : branch(BRANCH_MAIN_DUNGEON), depth(-1), level_type(ltype) - { - } - - static level_id parse_level_id(const std::string &s) throw (std::string); - - unsigned short packed_place() const; - std::string describe(bool long_name = false, bool with_number = true) const; - - void clear() - { - branch = BRANCH_MAIN_DUNGEON; - depth = -1; - level_type = LEVEL_DUNGEON; - } - - int absdepth() const; - - bool is_valid() const - { - return (branch != NUM_BRANCHES && depth != -1) - || level_type != LEVEL_DUNGEON; - } - - const level_id &operator = (const level_id &id) - { - branch = id.branch; - depth = id.depth; - level_type = id.level_type; - return (*this); - } - - bool operator == ( const level_id &id ) const - { - return (level_type == id.level_type - && (level_type != LEVEL_DUNGEON - || (branch == id.branch && depth == id.depth))); - } - - bool operator != ( const level_id &id ) const - { - return !operator == (id); - } - - bool operator <( const level_id &id ) const - { - if (level_type != id.level_type) - return (level_type < id.level_type); - - if (level_type != LEVEL_DUNGEON) - return (false); - - return (branch < id.branch) || (branch==id.branch && depth < id.depth); - } - - bool operator == ( const branch_type _branch ) const - { - return (branch == _branch && level_type == LEVEL_DUNGEON); - } - - bool operator != ( const branch_type _branch ) const - { - return !operator == (_branch); - } - - - void save(writer&) const; - void load(reader&); -}; // A position on a particular level. struct level_pos -- cgit v1.2.3-54-g00ecf