roh/conf.old/area/
roh/config/code/python/
roh/config/game/area/
roh/config/game/signs/
roh/help/dmhelp/
roh/help/help/
roh/log/
roh/log/staff/
roh/monsters/ocean/
roh/objects/misc/
roh/objects/ocean/
roh/player/
roh/rooms/area/1/
roh/rooms/misc/
roh/rooms/ocean/
roh/src-2.47e/
/*
 * anchor.h
 *   Magical anchors
 *   ____            _
 *  |  _ \ ___  __ _| |_ __ ___  ___
 *  | |_) / _ \/ _` | | '_ ` _ \/ __|
 *  |  _ <  __/ (_| | | | | | | \__ \
 *  |_| \_\___|\__,_|_|_| |_| |_|___/
 *
 * Permission to use, modify and distribute is granted via the
 *  Creative Commons - Attribution - Non Commercial - Share Alike 3.0 License
 *    http://creativecommons.org/licenses/by-nc-sa/3.0/
 *
 * 	Copyright (C) 2007-2012 Jason Mitchell, Randi Mitchell
 * 	   Contributions by Tim Callahan, Jonathan Hseu
 *  Based on Mordor (C) Brooke Paul, Brett J. Vickers, John P. Freeman
 *
 */

#ifndef _ANCHOR_H
#define	_ANCHOR_H


class AreaRoom;
class BaseRoom;

class Anchor {
public:
	Anchor();
	Anchor(bstring a, const Player* player);
	~Anchor();
	void reset();

	Anchor& operator=(const Anchor& a);
	void load(xmlNodePtr curNode);
	void save(xmlNodePtr curNode) const;

	void bind(const Player* player);
	void bind(const UniqueRoom* uRoom);
	void bind(const AreaRoom* aRoom);
	void setRoom(CatRef r);

	bool is(const BaseRoom* room) const;
	bool is(const Player* player) const;
	bool is(const UniqueRoom* uRoom) const;
	bool is(const AreaRoom* aRoom) const;

	bstring getAlias() const;
	bstring getRoomName() const;
	CatRef getRoom() const;
	const MapMarker* getMapMarker() const;
protected:
	bstring alias;
	bstring roomName;
	CatRef room;
	MapMarker *mapmarker;
};


#endif	/* _ANCHOR_H */