/***************************************************************************/
/*  Killer List Of Video-games Database.                                   */
/*  Copyright (C) 1993  John Keay                                          */
/*                                                                         */
/*  This program is free software; you can redistribute it and/or modify   */
/*  it under the terms of the GNU General Public License as published by   */
/*  the Free Software Foundation; either version 2 of the License, or      */
/*  (at your option) any later version.                                    */
/*                                                                         */
/*  This program is distributed in the hope that it will be useful,        */
/*  but WITHOUT ANY WARRANTY; without even the implied warranty of         */
/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          */
/*  GNU General Public License for more details.                           */
/*                                                                         */
/*  You should have received a copy of the GNU General Public License      */
/*  along with this program; if not, write to the Free Software            */
/*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.              */
/*                                                                         */
/*  For more details see 'COPYING'                                         */
/*  John Keay (keay@tiuk.ti.com)                                           */
/***************************************************************************/

typedef unsigned long ulong;

typedef struct game_s {
  char *name;  
  char *date;
  char *company;
  char *produced;
  char *players;
  ulong flags;
  char *text;
  struct game_s *next;
} game_t,*game_ptr;

#define F_BNW     (1<<0)
#define F_3D      (1<<1)
#define F_LASER   (1<<2)
#define F_VECTOR  (1<<3)
#define F_PINBALL (1<<4)


typedef struct {
  game_ptr head;
  game_ptr tail;
} list_t,*list_ptr;

extern void game_print_brief PROTO((game_ptr g,FILE *out));
extern void game_print PROTO((game_ptr g,FILE *out));
extern void list_append PROTO((list_ptr l,char *filename));
extern list_ptr list_create PROTO((void));
extern list_ptr list_read PROTO((char *filename));
extern void list_destroy PROTO((list_ptr l));
extern void game_destroy PROTO((game_ptr g));
extern char *newstr PROTO((char *s));
typedef void (*print_fn)PROTO((game_ptr,FILE *));