/*
    Program:		"MINI-LEMINGI"

    Modul:		Elementy Swiata

    Autor:		Damian Wojtowicz
    Weryfikator:	Michal Zmijewski
    Tester:		Anna Doros

    Krotki opis:	W pliku tym znajduja sie stale wykorzystywane
			w programie dotyczace obiektow klasy Leming i  jej
			podklas.
*/

#ifndef __STALE_LEMING_H
#define __STALE_LEMING_H

/* czasy trwania czynnosci i wielkosci ekstremalne dla leminga */
#define PREDKOSC_W_WODZIE	 10
#define PREDKOSC_W_POWIETRZU	  5
#define SPADANIE_W_WODZIE	  8
#define SPADANIE_W_POWIETRZU	  4
#define POJEMNOSC_PLUC		 80
#define MAKSYMALNY_SKOK		 40
#define CZAS_ZMIANY_STANU	  4

/* czasy trwania czynnosci dla komandosa */
#define CZAS_STANIA		 10
#define CZAS_KOPANIA		 24
#define CZAS_BUDOWANIA		 20
#define CZAS_PICIA		 24
#define ZAPAS_SIL_KOPACZA	  5
#define ZAPAS_SIL_SCHODKARZA	  5
#define ZAPAS_SIL_PIJUSA	  5

/* kierunek poruszania sie elementu */
#define DOL		 2
#define PRZOD		 1
#define GORA		 4

/* zwrot nosa (nie zmieniac wartosci!!!) */
#define LEWO		-1
#define PRAWO		 1

/* stan elementu swiata: 
    7 bitow na czynnosc podstawowa pozostale na okreslenie dodatkowych 
    stanow (np. w wodzie, pracuje)
    np.: stan == IDZIE + PRACUJE + W_WODZIE oznacz ze leming idac pracuje 
	oraz znajduje sie w wodzie
*/
/* stan podstawowy (czynnosc) */
#define IDZIE			   1
#define STOI			   8	/* bloker i schodkarz */
#define SPADA			   2
#define ZAWRACA			   4
#define NARODZINY		  16
#define DOSZEDL			  32
#define UMIERA			  64
/* stan - czy pracuje (idzie stoi) */
#define PRACUJE			 256	/* komandos pracujacy */
/* stan - czy znajduje sie w wodzie */
#define W_WODZIE		 512
/* stan - dodatek do umiera: od czego umiera */
#define W_KWASIE		1024
#define OD_BOMBY		2048

/* rodzaj stanu */
#define CZYNNOSC	       	 127	/* IDZIE + STOI + ... + UMIERA */
#define CZY_PRACUJE		 256
#define CZY_WODA	       	 512
#define CZY_KWAS	       	1024
#define CZY_OD_BOMBY	       	2048

#endif