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/
/*
 * catRefInfo.h
 *	 Category Reference info
 *   ____            _
 *  |  _ \ ___  __ _| |_ __ ___  ___
 *  | |_) / _ \/ _` | | '_ ` _ \/ __|
 *  |  _ <  __/ (_| | | | | | | \__ \
 *  |_| \_\___|\__,_|_|_| |_| |_|___/
 *
 * 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 _CATREFINFO_H
#define	_CATREFINFO_H


class cWeather;
class cSeason;

class CatRefInfo {
public:
	CatRefInfo();
	~CatRefInfo();
	void	clear();
	void	load(xmlNodePtr rootNode);
	void	loadSeasons(xmlNodePtr curNode);
	void	save(xmlNodePtr curNode) const;
	bstring str() const;
	void	copyVars(const CatRefInfo* cri);
	bool	swap(Swap s);
	const cWeather* getWeather() const;
	
	bstring getFishing() const;
	int getId() const;
	bstring getArea() const;
	bstring getName() const;
	bstring getWorldName() const;
	bstring getYearsSince() const;
	bstring getParent() const;
	int getYearOffset() const;
	int getLimbo() const;
	int getRecall() const;
	int getTeleportWeight() const;
	int getTeleportZone() const;
	int getTrackZone() const;

	std::map<Season,cSeason*> seasons;	// the seaons hold the weather

	// Some code is written such that these attributes need to be public.
	// That code ought to be rewritten:
	// Config::finishSwap in swap.cpp
	// getSpecialArea in rooms.cpp
	int		limbo;
	int		recall;
protected:
	bstring fishing;

	int		id;			// 0 for unique rooms, a number for areas
	bstring	area;		// "area" is a special area for the overland
	bstring name;		// display purposes only
	bstring worldName;	// for cmdTime
	bstring yearsSince;	// for printtime
	bstring parent;		// which catrefinfo to inherit limbo/recall from, misc by default
	int		yearOffset;
	int		teleportWeight;
	int		teleportZone;
	int		trackZone;
};


#endif	/* _CATREFINFO_H */