#ifndef __LIFE_H__
#define __LIFE_H__

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
#include <sys/time.h>
#include <stdint.h>
#include <sys/types.h>
#include <string.h>
#include "Globals.h"
#include "DEM.h"
#include "Random.h"

//struct Thread_I *thread_i;
//extern struct Thread_I *thread_i;
//extern struct Thread_I *thread_di_i;
//extern struct image_attr *ia;
extern pthread_mutex_t mutex1;
//extern pthread_mutex_t mutex2;
//extern struct Stats stats;
//extern struct Stats_T *stats_t;


extern struct Species ***life;
extern struct Stats *stats;
extern struct Stats_T stats_t;
extern struct image_attr *ia;
extern struct Thread_I *thread_i;

//extern struct Thread_I *thread_di_i;


extern char *life_speed_up_H;
extern char *life_speed_up_W;
extern char **fought;
extern char **mated;




void Allocate_Life_Array(size_t height, size_t width);
void FM_Alloc(unsigned int height, unsigned int width);
void FM_Reset(unsigned int height, unsigned int width);
void Gen_Tribe_Color(struct Species *one, unsigned char *rgb);
void Add_First_Life(struct Species *one);
int Is_Same_Species(struct Species *one, struct Species *two);
void Create_Life(struct Species *one, struct Species *two, struct Species *three);
float Location_Temp(uint32_t src_y, uint32_t src_x);
int Climate_Fatal(struct Species *one, uint32_t src_y, uint32_t src_x);
void *Tribe_Actions(void *tid);
//void *Drawl_Image_PT(void *tid);
void Drawl_Image(void);

#endif