mud++0.35/etc/
mud++0.35/etc/guilds/
mud++0.35/help/propert/
mud++0.35/mudC/
mud++0.35/player/
mud++0.35/src/interface/
mud++0.35/src/os/cygwin32/
mud++0.35/src/os/win32/
mud++0.35/src/os/win32/bcppbuilder/
mud++0.35/src/osaddon/
mud++0.35/src/util/
/*
....[@@@..[@@@..............[@.................. 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
------------------------------------------------------------------------------
mudpptempl.cc
*/

// TEMPLATE CLASS INSTANCES FOR MUD++ SERVER

/*
 * Rationale for that file is to be able to reuse all template objects
 * (LList, HashTable and Array) in another project. Until now templates 
 * were instantiated in class file.
 * Now we have separate instance file for each project.
 */

#ifdef __GNUC__
#define DEF_TEMPLATE( Templ , x ) template class Templ< x >
#else // Solaris Proworks C++ 4.0.x
#define DEF_TEMPLATE( Templ , x ) class Templ< x >
#endif


#define DEF_ARRAY( x )      DEF_TEMPLATE( Array , x )
#define DEF_LLIST( x )      DEF_TEMPLATE( LList , x )
#define DEF_HASHTABLE( x )  DEF_TEMPLATE( HashTable, x )

#include "array.h"
#include "array.cc"
#include "llist.h"
#include "llist.cc"
#include "hash.h"
#include "hash.cc"


class Action;
class Attack;
class Area;
class Affect;
class Char;
class Description;
class HashNode;
class Help;
class Modifier;
class Node;
class Host;
class NPC;
class Object;
class PC;
class Property;
class Room;
class Repop;
class ShopKeeper;
class ShopTrade;
class Social;
class Spell;
struct TriggerData;
class VMachine;

#include "config.h"
#include "guild.h"
#include "vmtypes.h"
#include "asmobjfile.h"
#include "asmparser.h"
#include "asmloader.h"
#include "erratum.h"

DEF_ARRAY( Node * );
DEF_ARRAY( String );
DEF_ARRAY( struct GuildSkill );
DEF_ARRAY( struct GuildSpell );
DEF_ARRAY( int );
DEF_ARRAY( char * );
DEF_ARRAY( u16 );
DEF_ARRAY( asmobjconst );
DEF_ARRAY( vmfun );
DEF_ARRAY( vmfunmap );
DEF_ARRAY( vmstack );
DEF_ARRAY( VMachine *);


DEF_LLIST( Action );
DEF_LLIST( Attack );
DEF_LLIST( Area );
DEF_LLIST( Affect );
DEF_LLIST( Char );
DEF_LLIST( Description );
DEF_LLIST( Guild );
DEF_LLIST( HashNode );
DEF_LLIST( Help );
DEF_LLIST( int );
DEF_LLIST( label );
DEF_LLIST( Modifier );
DEF_LLIST( Host );
DEF_LLIST( NPC );
DEF_LLIST( Object );
DEF_LLIST( PC );
DEF_LLIST( Room );
DEF_LLIST( Repop );
DEF_LLIST( ShopKeeper );
DEF_LLIST( ShopTrade );
DEF_LLIST( Social );
DEF_LLIST( Spell );
DEF_LLIST( struct TriggerData );
DEF_LLIST( VMObject );
DEF_LLIST( VMachine );


DEF_HASHTABLE( Help );
DEF_HASHTABLE( Object );
DEF_HASHTABLE( Room );
DEF_HASHTABLE( NPC );
DEF_HASHTABLE( Property );