/*
**  $VER: misc.e V0.8B
**
**  (C) Copyright 1996-1997 DreamWorld Productions.
**      All Rights Reserved.
**
*/

OPT MODULE
OPT EXPORT
OPT PREPROCESS

MODULE 'gms/dpkernel','system/register'

/****************************************************************************
** Object Referencing structure.
*/

CONST REFVERSION     = 1,
      TAGS_REFERENCE = $FFFB0000 OR ID_REFERENCE

OBJECT reference
  head[1]     :ARRAY OF head    /* Standard header */
  next        :PTR TO reference /* Next reference */
  prev        :PTR TO reference /* Previous reference */
  objectid    :INT              /* ID of the object */
  pad         :INT              /* Reserved */
  objectname  :LONG             /* Name of the object */
  modname     :LONG             /* Name of the module containing the object */
  checkfile   :LONG             /* CheckFile code */
  modnumber   :INT              /* Module ID number */
ENDOBJECT

CONST REFA_OBJECTID   = TWORD OR 20,
      REFA_OBJECTNAME = TAPTR OR 24,
      REFA_MODNAME    = TAPTR OR 28,
      REFA_CHECKFILE  = TAPTR OR 32,
      REDA_MODNUMBER  = TWORD OR 36

/****************************************************************************
** Universal Structure, used in the CopyStructure() routine.
*/

OBJECT universe
  head[1]      :ARRAY OF head
  palette      :LONG   
  planes       :INT   
  scrwidth     :INT   
  scrheight    :INT   
  picwidth     :INT   
  picbytewidth :INT   
  picheight    :INT   
  task         :LONG   
  planesize    :LONG   
  amtcolours   :LONG   
  scrmode      :INT   
  scrtype      :INT   
  source       :LONG   
  screenlink   :LONG   
  rasterlist   :LONG   
  scrxoffset   :INT   
  scryoffset   :INT   
  picyoffset   :INT   
  picxoffset   :INT   
  channel      :INT   
  priority     :INT   
  length       :LONG   
  octave       :INT   
  volume       :INT   
ENDOBJECT

/****************************************************************************
** The SysObject structure.  Private.
*/

CONST SOVERSION      = 1,
      TAGS_SYSOBJECT = $FFFB0000 OR ID_SYSOBJECT

OBJECT sysobject
  head[1]     :ARRAY OF head
  prev        :PTR TO sysobject /* Previous object in list */
  next        :PTR TO sysobject /* Next object in list */
  objectid    :INT              /* Unique ID of the object, eg ID_PICTURE */
  classid     :INT              /* Class reference ID */
  name        :LONG             /* Full name of the object */
  copytounv   :LONG
  copyfromunv :LONG
  checkfile   :LONG
  load        :LONG
  display     :LONG
  get         :LONG
  free        :LONG
  init        :LONG
  read        :LONG
  write       :LONG
  open        :LONG
  hide        :LONG
  close       :LONG
  save        :LONG
  query       :LONG
  activate    :LONG
  deactivate  :LONG
  draw        :LONG
  clear       :LONG
ENDOBJECT

CONST SOA_PREV        = 12 OR TAPTR,
      SOA_NEXT        = 16 OR TAPTR,
      SOA_OBJECTID    = 20 OR TWORD,
      SOA_CLASSID     = 22 OR TWORD,
      SOA_NAME        = 24 OR TAPTR,
      SOA_COPYTOUNV   = 28 OR TAPTR,
      SOA_COPYFROMUNV = 32 OR TAPTR,
      SOA_CHECKFILE   = 36 OR TAPTR,
      SOA_LOAD        = 40 OR TAPTR,
      SOA_DISPLAY     = 44 OR TAPTR,
      SOA_GET         = 48 OR TAPTR,
      SOA_FREE        = 52 OR TAPTR,
      SOA_INIT        = 56 OR TAPTR,
      SOA_READ        = 60 OR TAPTR,
      SOA_WRITE       = 64 OR TAPTR,
      SOA_OPEN        = 68 OR TAPTR,
      SOA_HIDE        = 72 OR TAPTR,
      SOA_CLOSE       = 76 OR TAPTR,
      SOA_SAVE        = 80 OR TAPTR,
      SOA_QUERY       = 84 OR TAPTR,
      SOA_ACTIVATE    = 88 OR TAPTR,
      SOA_DEACTIVATE  = 92 OR TAPTR,
      SOA_DRAW        = 96 OR TAPTR,
      SOA_CLEAR       = 100 OR TAPTR

