CC = g++ -g
LIB = -lncurses -lpthread
OBJECTS = main.o map.o row.o console.o sprite.o block.o wall.o player.o beast.o super.o baby.o egg.o
PROG = beast

$(PROG): $(OBJECTS)
	$(CC) -o $(PROG) $(OBJECTS) $(LIB)

main.o: main.cc map.h row.h console.h wall.h block.h player.h beast.h super.h baby.h egg.h
	$(CC) -c main.cc

console.o: console.cc console.h
	$(CC) -c console.cc

map.o: map.cc map.h console.h row.h
	$(CC) -c map.cc

row.o: row.cc row.h
	$(CC) -c row.cc

sprite.o: sprite.cc sprite.h console.h
	$(CC) -c sprite.cc

block.o: block.cc block.h sprite.h console.h
	$(CC) -c block.cc

wall.o: wall.cc wall.h sprite.h console.h
	$(CC) -c wall.cc

point.o: point.cc point.h
		$(CC) -c point.cc

player.o: player.cc player.h sprite.h main.h
		$(CC) -c player.cc

beast.o: beast.cc beast.h sprite.h main.h
		$(CC) -c beast.cc

super.o: super.cc super.h sprite.h main.h
		$(CC) -c super.cc

baby.o: baby.cc baby.h sprite.h main.h
		$(CC) -c baby.cc

egg.o: egg.cc egg.h beast.h sprite.h
	$(CC) -c egg.cc

chartest.o: chartest.cc map.h console.h wall.h sprite.h
		g++ -c chartest.cc

chartest: chartest.o
		g++ -o chartest chartest.o console.o map.o wall.o sprite.o row.o -lncurses

clean: 
		rm beast *.o
