/* This file is automatically generated by `parse-sgf-list'.
 * Do not modify it, edit `sgf-properties.list' instead.
 */


#ifndef QUARRY_SGF_PROPERTIES_H
#define QUARRY_SGF_PROPERTIES_H


#define SGF_REAL_VALUES_ALLOCATED_SEPARATELY 1


typedef enum {
  /* Value types. */
  SGF_NONE,
  SGF_NUMBER,
  SGF_DOUBLE,
  SGF_COLOR,
  SGF_FIRST_MALLOC_TYPE,
  SGF_REAL = SGF_FIRST_MALLOC_TYPE,
  SGF_SIMPLE_TEXT,
  SGF_FAKE_SIMPLE_TEXT,
  SGF_TEXT,
  SGF_LIST_OF_POINT,
  SGF_ELIST_OF_POINT,
  SGF_LIST_OF_VECTOR,
  SGF_LIST_OF_LABEL,
  SGF_FIGURE_DESCRIPTION,
  SGF_TYPE_UNKNOWN,
  SGF_LAST_MALLOC_TYPE = SGF_TYPE_UNKNOWN,

  /* Special value "type" for properties which are not stored. */
  SGF_NOT_STORED
} SgfValueType;


typedef enum {
  /* Root properties. */
  SGF_FIRST_ROOT_PROPERTY,
  SGF_FILE_FORMAT = SGF_FIRST_ROOT_PROPERTY,		/* FF */
  SGF_GAME_TYPE,					/* GM */
  SGF_CHAR_SET,						/* CA */
  SGF_STYLE,						/* ST */
  SGF_APPLICATION,					/* AP */
  SGF_BOARD_SIZE,					/* SZ */
  SGF_LAST_ROOT_PROPERTY = SGF_BOARD_SIZE,

  /* Game information properties. */
  SGF_FIRST_GAME_INFO_PROPERTY,
  SGF_GAME_NAME = SGF_FIRST_GAME_INFO_PROPERTY,		/* GN */
  SGF_EVENT,						/* EV */
  SGF_ROUND,						/* RO */
  SGF_PLACE,						/* PC */
  SGF_DATE,						/* DT */
  SGF_RULE_SET,						/* RU */

  /* `HA' and `KM' are specific to Go. */
  SGF_HANDICAP,						/* HA */
  SGF_KOMI,						/* KM */
  SGF_TIME_LIMIT,					/* TM */
  SGF_OVERTIME,						/* OT */
  SGF_PLAYER_BLACK,					/* PB */
  SGF_BLACK_TEAM,					/* BT */
  SGF_BLACK_RANK,					/* BR */
  SGF_PLAYER_WHITE,					/* PW */
  SGF_WHITE_TEAM,					/* WT */
  SGF_WHITE_RANK,					/* WR */
  SGF_ANNOTATOR,					/* AN */
  SGF_COPYRIGHT,					/* CP */
  SGF_SOURCE,						/* SO */
  SGF_USER,						/* US */
  SGF_OPENING,						/* ON */
  SGF_GAME_COMMENT,					/* GC */
  SGF_RESULT,						/* RE */
  SGF_LAST_GAME_INFO_PROPERTY = SGF_RESULT,

  /* Setup properties. */
  SGF_FIRST_SETUP_PROPERTY,
  SGF_ADD_BLACK = SGF_FIRST_SETUP_PROPERTY,		/* AB */
  SGF_ADD_WHITE,					/* AW */
  SGF_ADD_EMPTY,					/* AE */
  SGF_ADD_ARROWS,					/* AA */
  SGF_TO_PLAY,						/* PL */
  SGF_LAST_SETUP_PROPERTY = SGF_TO_PLAY,

  /* Move properties. */
  SGF_BLACK,						/* B */
  SGF_WHITE,						/* W */
  SGF_KO,						/* KO */
  SGF_MOVE_NUMBER,					/* MN */

  /* Node annotation properties. */
  SGF_NODE_NAME,					/* N */
  SGF_COMMENT,						/* C */
  SGF_HOTSPOT,						/* HO */
  SGF_UNCLEAR,						/* UC */
  SGF_VALUE,						/* V */
  SGF_GOOD_4BLACK,					/* GB */
  SGF_DAME,						/* DM */
  SGF_GOOD_4WHITE,					/* GW */

  /* Move annotation properties. */
  SGF_BAD_MOVE,						/* BM */
  SGF_DOUBTFUL,						/* DO */
  SGF_INTERESTING,					/* IT */
  SGF_TESUJI,						/* TE */

  /* Timing properties. */
  SGF_TIME_LEFT_FOR_BLACK,				/* BL */
  SGF_MOVES_LEFT_FOR_BLACK,				/* OB */
  SGF_TIME_LEFT_FOR_WHITE,				/* WL */
  SGF_MOVES_LEFT_FOR_WHITE,				/* OW */

  /* Markup properties. */
  SGF_MARK,						/* MA */
  SGF_CIRCLE,						/* CR */
  SGF_SQUARE,						/* SQ */
  SGF_TRIANGLE,						/* TR */
  SGF_SELECTED,						/* SL */
  SGF_LABEL,						/* LB */

  /* `TB' and `TW' are Go-specific. */
  SGF_BLACK_TERRITORY,					/* TB */
  SGF_WHITE_TERRITORY,					/* TW */
  SGF_ARROW,						/* AR */
  SGF_LINE,						/* LN */
  SGF_DIMMED,						/* DD */

  /* Miscellaneous properties. */
  SGF_FIGURE,						/* FG */
  SGF_PRINT_MODE,					/* PM */
  SGF_VIEW_PORT,					/* VW */

  /* Custom extension properties we support. */
  SGF_ILLEGAL_MOVE,					/* IL */

  /* The number of known properties. */
  SGF_KNOWN_PROPERTIES,

  /* Any property we don't know about (e.g. a custom extension). */
  SGF_UNKNOWN = SGF_KNOWN_PROPERTIES,

  /* Total number of all properties (known and unknown). */
  SGF_NUM_PROPERTIES
} SgfType;


#define SGF_LONG_NAMES		0


#endif /* QUARRY_SGF_PROPERTIES_H */
