X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fcollision_hit.hpp;h=02879039a12ccadb6387e0550d3407c2a05b1801;hb=273bb1e9d8f4a625abce2fbcb6d0c215988cc655;hp=81547d8c6e0c8aa12fb254468cee24c83a2a6fd8;hpb=02288dc76442bd6616a200a2d22c0954d2fc8180;p=supertux.git diff --git a/src/collision_hit.hpp b/src/collision_hit.hpp index 81547d8c6..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,11 +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, - TEST + /// passes movement to collided object + PASS_MOVEMENT, + + /// the object should not appear solid + PASSTHROUGH, + /// the object should appear solid + SOLID, }; /** @@ -43,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 -