/*
....[@@@..[@@@..............[@.................. 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@falcon.mercer.peachnet.edu
MUD++ development mailing list mudpp-list@spice.com
------------------------------------------------------------------------------
npc.h
*/
#ifndef _NPC_H
#define _NPC_H
#include "char.h"
extern const bitType npc_bit_list[];
const int NPC_UNDEFINED = 0; // Dont use !
const int NPC_UNUSED1 = 1;
const int NPC_WIMPY = 2;
const int NPC_AGGRESSIVE = 3;
const int NPC_SENTINEL = 4;
const int NPC_STAY_ZONE = 5;
const int NPC_SCAVENGER = 6;
const int NPC_FRIENDLY = 7;
const int NPC_TAME = 8;
const int NPC_CHARMED = 9;
const int NPC_BANKER = 10;
const int NPC_TRAINER = 11;
const int NPC_PRACTICER = 12;
const int MAX_NPC_BIT_FIELDS = 1;
class NPC : public Char
{
protected:
//Index index;
unsigned long npc_bits[ 1 ];
Repop *repop;
public:
NPC()
: repop(0)
{
memset( npc_bits, 0, sizeof( npc_bits[0] ) * 1 );
}
NPC( const NPC & x )
: Char( x ), // propagate up the hierarchy
repop(0)
{
memcpy( (void *)npc_bits, (void *)x.npc_bits,
sizeof( npc_bits[0] ) * MAX_NPC_BIT_FIELDS );
}
virtual ~NPC();
bool isNPC() { return true; }
void out( const char * );
void out( const String & x ) { NPC::out( x.chars() ); }
virtual void pulse();
void fromWorld();
void toWorld();
// const Index & getIndex() const { return index; }
// void setIndex( const Index & x ) { index = x; }
// void setIndexScope( const String & x ) { index.setScope( x ); }
// void setIndexKey( const String & x ) { index.setKey( x ); }
// const String getIndexScope() const { return index.getScope(); }
// const String getIndexKey() const { return index.getKey(); }
void setRepop( Repop * x ) { repop = x; }
Repop * getRepop() { return repop; }
int readProtoFrom( InFile &in ) {}
int writeProtoTo( OutFile &out ) const {}
int readFrom( InFile &in );
int writeTo( OutFile &out ) const;
virtual void look( Object * );
virtual void look( Char * );
};
#endif