/*
                                Denise-MYTH Artificial Intelligence.

                                  Copyright (C) 2000 Szymon Jessa

                                         WERSJA ANGIELSKA:

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.

                                           WERSJA POLSKA:

Niniejszy   program   jest  oprogramowaniem  wolnodostėpnym;  moūesz  go  rozprowadzaź  dalej  i/lub
modyfikowaź na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundacjė Wolnodostėpnego
Oprogramowania - wedīug wersji 2-giej tej Licencji lub którejō z póśniejszych wersji.

Niniejszy   program  rozpowszechniany  jest  z  nadziejā,  iū  bėdzie  on  uūyteczny  -  jednak  BEZ
JAKIEJKOLWIEK  GWARANCJI,  nawet  domyōlnej  gwarancji  PRZYDATNOŌCI  HANDLOWEJ albo PRZYDATNOŌCI DO
OKREŌLONYCH ZASTOSOWAĻ. W celu uzyskania bliūszych informacji - Powszechna Licencja Publiczna GNU.

Z  pewnoōciā  wraz  z niniejszym programem otrzymaīeō teū egzemplarz Powszechnej Licencji Publicznej
GNU; jeōli nie - napisz do Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

                                              KONTAKT:

snail: Szymon Jessa, ul. Warszawska 20/6, 89-600 Chojnice,
email: smoczek@ue.eti.pg.gda.pl (ew. noco@box43.gnet.pl)
phone: (052) 39-707-88

****************************************************************************************************
*/
#ifndef D4_VAR
#define D4_VAR

#ifdef AMIGA
   struct Window *window = NULL;
   struct Library *IntuitionBase = NULL;
   struct IOStdReq *writeReq = NULL;   // IORequest block pointer
   struct MsgPort *writePort = NULL;   // replyport for writes
   struct IOStdReq *readReq = NULL;    // IORequest block pointer
   struct MsgPort *readPort = NULL;    // replyport for reads
   BOOL OpenedConsole = FALSE;
   UBYTE read_buf; // pamiėź na znaki z klawiatury
   AREXXCONTEXT denise_rexx;
#endif

// zmienne globalne

struct fleksja_struct *fleksja_head=NULL; // baza danych o wyrazach (fleksja)
struct fakt_struct *fakt_head=NULL; // baza danych faktów
struct mapa_struct *mapa_head=NULL; // mapa korelacji
struct eliza_struct *eliza_head=NULL; // baza danych elizy

char denise_last_say[MAX_LINE_LENGHT]; // ostatnie zdanie Denise

struct sentence_struct sentence; // zdanie rozmówcy
struct wyrazy_struct wyrazy; // dane wyrazow w zdaniu
struct grupa_struct grupa[MAX_ILE_WYRAZOW]; // dane grup w zdaniu
struct skladnia_struct skladnia; // dane o skladni zdania
struct rozbior_struct rozbior; // poprawny rozbiór zdania - obiekt faktów
struct pytanie_struct pytanie; // pytanie tworzone przez Denise
struct dtr_struct temat; // aktualny temat
struct dtr_struct denise; // wskazuje na Denise w bazie faktów
struct dtr_rozmowca_struct rozmowca; // wskazuje na rozmówcė w bazie faktów
struct eliza_memory_struct eliza_memory; // komórka pamiėci ELIZY
char intelligence=100; // poziom inteligencji - w caīkowitych procentach

struct stream_struct stream; // struktura okreōla skād i dokād majā byź pobierane/wysyīane dane
struct short_info_struct short_info;

// other

struct
{
	char quality; // osiagniety stopien inteligencji (jakosc wykonania)
   char mode; // metoda wykonania (WNIOSKOWANIE_DZIEDZICZONE, WNIOSKOWANIE_PRZYDAWKOWE, STANDARDOWO
} status; // zawiera pola dotyczace ostatnio wykonanej funkcji (wynik)

struct
{
//tu ma byź pole bitowe!
//bit field
   char fleksja;
   char grupa;
   char skladnia;
   char fakt;
   char pytanie;

   char odpowiedz;
   char odmiana;
   char wnioskowanie;
   char eliza;

   char info;
} view={KOD_FALSE,KOD_FALSE,KOD_FALSE,KOD_FALSE,KOD_FALSE,
              KOD_FALSE,KOD_FALSE,KOD_FALSE,KOD_FALSE,KOD_FALSE};

struct
{
   ULONG ile_zdan;
   ULONG ile_fleksja_ok;
   ULONG ile_skladnia_ok;
} talk={0,0,0};

struct
{
	char odmiana;
	char nieznane;
	char nielog;
   char talk;
} save={KOD_TRUE,KOD_TRUE,KOD_TRUE,KOD_TRUE};

#ifdef DEMO
char demo_ile_zdan=0; // liczba zdaļ wpisanych przez uūytkownika (do wersji DEMO)
#endif

char fast_mode=KOD_TRUE;
char compare_mode=KOD_TRUE;
char deep_identify=KOD_TRUE;
char sentence_filter=KOD_TRUE;
char denise_mode=KOD_TRUE;
char eliza_mode=KOD_TRUE;
char mode=MODE_USER;
#endif
