blob: 658adb0e98a7aaca6f662bac83910a7f93e07eec (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#ifndef WORLD_H
#define WORLD_H
#include <common.h>
#define MAX_ENTITIES 8
#define goWorldLeft(w) if(w->toLeft){w=w->toLeft;}
#define goWorldRight(w) if(w->toRight){w=w->toRight;}
class World {
private:
struct line_t {
// x = 2.0 (window width) / HLINES
double start; // Where to change to dirt, going down (y)
} __attribute__ ((packed)) *line;
unsigned int lineCount;
unsigned int entCount;
void *entity[MAX_ENTITIES];
public:
World *behind,*infront;
World *toLeft,*toRight;
World(void);
World(const float width,World *l,World *r);
void draw(void);
void detect(vec2 *v,vec2 *vel,const float width);
float getWidth(void);
void saveToFile(FILE *f,World *parent);
void loadFromFile(FILE *f,World *parent);
void addLayer(const float width);
void addEntity(void *e);
};
#endif // WORLD_H
|