projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- Cleanup and rewrite some mainloop code
[supertux.git]
/
src
/
collision_hit.hpp
diff --git
a/src/collision_hit.hpp
b/src/collision_hit.hpp
index
b9ed4d5
..
0287903
100644
(file)
--- a/
src/collision_hit.hpp
+++ b/
src/collision_hit.hpp
@@
-19,6
+19,8
@@
#ifndef SUPERTUX_COLLISION_HIT_H
#define SUPERTUX_COLLISION_HIT_H
#ifndef SUPERTUX_COLLISION_HIT_H
#define SUPERTUX_COLLISION_HIT_H
+#include <float.h>
+#include <math.h>
#include "math/vector.hpp"
/**
#include "math/vector.hpp"
/**
@@
-30,12
+32,17
@@
enum HitResponse
/// don't move the object
ABORT_MOVE = 0,
/// move object out of collision and check for collisions again
/// don't move the object
ABORT_MOVE = 0,
/// move object out of collision and check for collisions again
- /// if this happens to often then the move will just be aborted
+ /// if this happens to often then the move will just be aborted
CONTINUE,
/// do the move ignoring the collision
FORCE_MOVE,
/// passes movement to collided object
CONTINUE,
/// do the move ignoring the collision
FORCE_MOVE,
/// passes movement to collided object
- PASS_MOVEMENT
+ PASS_MOVEMENT,
+
+ /// the object should not appear solid
+ PASSTHROUGH,
+ /// the object should appear solid
+ SOLID,
};
/**
};
/**
@@
-44,13
+51,19
@@
enum HitResponse
class CollisionHit
{
public:
class CollisionHit
{
public:
- /// penetration depth
- float depth;
- /// time of the collision (between 0 and 1 in relation to movement)
- float time;
- /// The normal of the side we collided with
- Vector normal;
+ CollisionHit() {
+ left = false;
+ right = false;
+ top = false;
+ bottom = false;
+ crush = false;
+ }
+
+ bool left, right;
+ bool top, bottom;
+ bool crush;
+
+ Vector slope_normal;
};
#endif
};
#endif
-