X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcollision_hit.hpp;h=02879039a12ccadb6387e0550d3407c2a05b1801;hb=86ad4aefa6a04c35eb0e9379ba1ed35bf09a0ea7;hp=c6c3dd82469303a13a508b24c9ce532fc87fe623;hpb=1d63ad0dfe0eedf89191627be00b2b3b1215c311;p=supertux.git diff --git a/src/collision_hit.hpp b/src/collision_hit.hpp index c6c3dd824..02879039a 100644 --- a/src/collision_hit.hpp +++ b/src/collision_hit.hpp @@ -1,7 +1,7 @@ -// $Id: collision_hit.h 2177 2004-11-24 23:10:09Z matzebraun $ +// $Id$ // -// SuperTux - A Jump'n Run -// Copyright (C) 2004 Matthias Braun // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License @@ -19,6 +19,8 @@ #ifndef SUPERTUX_COLLISION_HIT_H #define SUPERTUX_COLLISION_HIT_H +#include +#include #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 - /// 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 - 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: - /// 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 -