1
0
Fork 0
blockofighter/src/world.h

57 lines
914 B
C
Raw Permalink Normal View History

2014-02-16 14:32:28 +00:00
#ifndef __WORLD_H_INCLUDED__
#define __WORLD_H_INCLUDED__
class World;
class ObjectLink;
#include "object.h"
#include "particle.h"
2015-06-03 12:29:34 +00:00
class ObjectLink {
2014-02-16 14:32:28 +00:00
public:
2015-06-03 12:29:34 +00:00
Object *object1, *object2;
float point1[3], point2[3];
bool enabled;
2014-02-16 14:32:28 +00:00
};
2015-06-03 12:29:34 +00:00
struct objectlinklist {
ObjectLink *link;
objectlinklist *next;
2014-02-16 14:32:28 +00:00
};
#define MAXCONTACTS 100
2015-06-03 12:29:34 +00:00
class World {
2014-02-16 14:32:28 +00:00
private:
2015-06-03 12:29:34 +00:00
objectlist *childlist;
2014-02-16 14:32:28 +00:00
2015-06-03 12:29:34 +00:00
int childcount;
Object **childs;
2014-02-16 14:32:28 +00:00
2015-06-03 12:29:34 +00:00
int particlecount;
int maxparticles;
Particle **particles;
2014-02-16 14:32:28 +00:00
2015-06-03 12:29:34 +00:00
objectlinklist *linklist;
2014-02-16 14:32:28 +00:00
public:
2015-06-03 12:29:34 +00:00
World(void);
2014-02-16 14:32:28 +00:00
void setGravity(float grav);
2015-06-03 12:29:34 +00:00
void prepare(void);
void move(void);
void draw(void);
2014-02-16 14:32:28 +00:00
2015-06-03 12:29:34 +00:00
void addChild(Object *child);
2014-02-16 14:32:28 +00:00
2015-06-03 12:29:34 +00:00
void addParticle(Particle *particle);
void removeParticle(Particle *particle);
2014-02-16 14:32:28 +00:00
2015-06-03 12:29:34 +00:00
// Point is world-relative
ObjectLink *addLink(Object *object1, Object *object2, float *point);
void renewLink(ObjectLink *link, float *point);
2014-02-16 14:32:28 +00:00
};
#endif