#ifndef GMS_OBJECTS_H
#define GMS_OBJECTS_H TRUE

/*
**  $VER: objects.h V0.8B
**
**  Object definitions.
**
**  (C) Copyright 1996-1997 DreamWorld Productions.
**      All Rights Reserved.
*/

#ifndef DPKERNEL_H
#include <games/dpkernel.h>
#endif

/****************************************************************************
** Object entries.
*/

struct ObjectEntry { /* Entry stucture for GetObjectList() */
  char  *Name;       /* Pointer to the name, may be NULL */
  APTR  Object;      /* Object is returned here */
};

struct DataHeader {  /* Private structure for object headers */
  LONG Type;         /* Type of object, eg STRC, CODE, DATA */
  LONG Next;         /* Offset towards next object */
/*char Name[];          The name of the object */
};

/*****************************************************************************
** ObjectBase Object.
*/

#define OBJVERSION 1
#define TAGS_OBJECTBASE ((ID_SPCTAGS<<16)|ID_OBJECTBASE)

struct ObjectBase {
  struct Head    Head;
  struct Source  *Source;
  struct Segment *Segments;
  APTR   Data;
};

#define OBJA_Source   (12|TAPTR)
#define OBJA_Segments (16|TAPTR)
#define OBJA_Data     (20|TAPTR)

#endif /* GMS_OBJECTS_H */

