#ifndef _WORLD_H_
#define _WORLD_H_

#include "shapes.h"
#include "movable.h"
#include "vertex.h"

/* Because there is only one world in coursework 2, static method invocation */
/* is used for speed and ease (i.e. world_foo(world), not world->foo(world)) */
typedef struct {
	triangle* roomhelp;
	triangle* helpscreen;
	
	triangle* roommirror;
	
	triangle* roomtea;
	movable mushpos;
	
	triangle* roominfinity;
	triangle* roominfindr; /* Infinity doorway */
	triangle* roominfinnr; /* Infinity not repeating */

	triangle* corridors;

	primcylinder unitcyl; /* Note: not pointer */
} world;

void world_init(world* w);
void world_draw(world* w, movable* cam);
void world_animate(world* w, int elapsed);
void world_clipcam(movable* cam);

#endif
