/*
....[@@@..[@@@..............[@.................. MUD++ is a written from
....[@..[@..[@..[@..[@..[@@@@@....[@......[@.... scratch multi-user swords and
....[@..[@..[@..[@..[@..[@..[@..[@@@@@..[@@@@@.. sorcery game written in C++.
....[@......[@..[@..[@..[@..[@....[@......[@.... This server is an ongoing
....[@......[@..[@@@@@..[@@@@@.................. development project. All
................................................ contributions are welcome.
....Copyright(C).1995.Melvin.Smith.............. Enjoy.
------------------------------------------------------------------------------
Melvin Smith (aka Fusion) msmith@hom.net
MUD++ development mailing list mudpp@van.ml.org
------------------------------------------------------------------------------
guild.h
*/
#include "skill.h"
#include "spell.h"
#include "array.h"
#include "llist.h"
#define GUILD_DIR "../etc/guilds/"
#define GUILD_FILE "guilds.lst"
class Guild : public Streamable
{
protected:
String name;
String description;
int min_level;
int xp_penalty;
// etc...
// we can add bitfields for quick have/have_not skill/spell lookups
public:
Array< struct GuildSkill > skills;
Array< struct GuildSpell > spells;
Guild()
: min_level(1), xp_penalty(10)
{}
Guild( const String & nam )
: name(nam), min_level(1), xp_penalty(10)
{}
~Guild()
{}
String & getName() { return name; }
virtual int readFrom( StaticInput & );
virtual int writeTo( Output & ) const;
// read and write guild, skill and spell data to separate files
int load();
int save();
};
extern LList< Guild > guilds;
void saveGuilds();
void loadGuilds();