nakedmudv3.3/
nakedmudv3.3/lib/
nakedmudv3.3/lib/logs/
nakedmudv3.3/lib/misc/
nakedmudv3.3/lib/players/
nakedmudv3.3/lib/txt/
nakedmudv3.3/lib/world/
nakedmudv3.3/lib/world/examples/
nakedmudv3.3/lib/world/examples/mproto/
nakedmudv3.3/lib/world/examples/oproto/
nakedmudv3.3/lib/world/examples/reset/
nakedmudv3.3/lib/world/examples/rproto/
nakedmudv3.3/lib/world/examples/trigger/
nakedmudv3.3/lib/world/limbo/
nakedmudv3.3/lib/world/limbo/room/
nakedmudv3.3/lib/world/limbo/rproto/
nakedmudv3.3/src/alias/
nakedmudv3.3/src/char_vars/
nakedmudv3.3/src/editor/
nakedmudv3.3/src/example_module/
nakedmudv3.3/src/help/
nakedmudv3.3/src/set_val/
nakedmudv3.3/src/socials/
nakedmudv3.3/src/time/
#ifndef __OBJECT_H
#define __OBJECT_H
//*****************************************************************************
//
// object.h
//
// Contains the basic interface for working with the object data structure, and
// the functions needed to interact with it. If you plan on adding any other
// information to objects, it is strongly suggested you do so through auxiliary
// data (see auxiliary.h).
//
// For a recap, IF YOU PLAN ON ADDING ANY OTHER INFORMATION TO OBJECTS, IT
// IS STRONGLY SUGGESTED YOU DO SO THROUGH AUXILIARY DATA (see auxiliary.h).
//
//*****************************************************************************

OBJ_DATA    *newObj         ();
void         deleteObj      (OBJ_DATA *obj);

OBJ_DATA    *objRead        (STORAGE_SET *set);
STORAGE_SET *objStore       (OBJ_DATA *obj);

void         objCopyTo      (OBJ_DATA *from, OBJ_DATA *to);
OBJ_DATA    *objCopy        (OBJ_DATA *obj);

bool         objIsInstance  (OBJ_DATA *obj, const char *prototype);
bool         objIsName      (OBJ_DATA *obj, const char *name);
void         objAddChar     (OBJ_DATA *obj, CHAR_DATA *ch);
void         objRemoveChar  (OBJ_DATA *obj, CHAR_DATA *ch);



//*****************************************************************************
// set and get functions
//*****************************************************************************
const char  *objGetClass     (OBJ_DATA *obj);
const char  *objGetPrototypes(OBJ_DATA *obj);
const char  *objGetName      (OBJ_DATA *obj);
const char  *objGetKeywords  (OBJ_DATA *obj);
const char  *objGetRdesc     (OBJ_DATA *obj);
const char  *objGetDesc      (OBJ_DATA *obj);
const char  *objGetMultiName (OBJ_DATA *obj);
const char  *objGetMultiRdesc(OBJ_DATA *obj);
EDESC_SET   *objGetEdescs    (OBJ_DATA *obj);
const char  *objGetEdesc     (OBJ_DATA *obj, const char *keyword);
const char  *objGetInstances (OBJ_DATA *obj);
BUFFER      *objGetDescBuffer(OBJ_DATA *obj);
CHAR_DATA   *objGetCarrier   (OBJ_DATA *obj);
CHAR_DATA   *objGetWearer    (OBJ_DATA *obj);
OBJ_DATA    *objGetContainer (OBJ_DATA *obj);
ROOM_DATA   *objGetRoom      (OBJ_DATA *obj);
LIST        *objGetContents  (OBJ_DATA *obj);
LIST        *objGetUsers     (OBJ_DATA *obj);
int          objGetUID       (OBJ_DATA *obj);
double       objGetWeight    (OBJ_DATA *obj);
double       objGetWeightRaw (OBJ_DATA *obj);
void        *objGetAuxiliaryData(const OBJ_DATA *obj, const char *name);
BITVECTOR   *objGetBits      (OBJ_DATA *obj);

void         objSetClass     (OBJ_DATA *obj, const char *type);
void         objSetPrototypes(OBJ_DATA *obj, const char *type);
void         objAddPrototype (OBJ_DATA *obj, const char *type);
void         objSetName      (OBJ_DATA *obj, const char *name);
void         objSetKeywords  (OBJ_DATA *obj, const char *keywords);
void         objSetRdesc     (OBJ_DATA *obj, const char *rdesc);
void         objSetDesc      (OBJ_DATA *obj, const char *desc);
void         objSetMultiName (OBJ_DATA *obj, const char *multi_name);
void         objSetMultiRdesc(OBJ_DATA *obj, const char *multi_rdesc);
void         objSetEdescs    (OBJ_DATA *obj, EDESC_SET *edesc);
void         objSetCarrier   (OBJ_DATA *obj, CHAR_DATA *ch);
void         objSetWearer    (OBJ_DATA *obj, CHAR_DATA *ch);
void         objSetContainer (OBJ_DATA *obj, OBJ_DATA  *cont);
void         objSetRoom      (OBJ_DATA *obj, ROOM_DATA *room);
void         objSetWeightRaw (OBJ_DATA *obj, double weight);

#endif // __OBJECT_H