1 //  SuperTux
2 //  Copyright (C) 2006 Matthias Braun <matze@braunis.de>
3 //                2018 Ingo Ruhnke <grumbel@gmail.com>
4 //
5 //  This program is free software: you can redistribute it and/or modify
6 //  it under the terms of the GNU General Public License as published by
7 //  the Free Software Foundation, either version 3 of the License, or
8 //  (at your option) any later version.
9 //
10 //  This program is distributed in the hope that it will be useful,
11 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
12 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 //  GNU General Public License for more details.
14 //
15 //  You should have received a copy of the GNU General Public License
16 //  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 
18 #ifndef HEADER_SUPERTUX_COLLISION_COLLISION_GROUP_HPP
19 #define HEADER_SUPERTUX_COLLISION_COLLISION_GROUP_HPP
20 
21 enum CollisionGroup {
22   /** Objects in DISABLED group are not tested for collisions */
23   COLGROUP_DISABLED = 0,
24 
25   /** Tested against:
26       - tiles + attributes
27       - static obstacles
28       - touchables
29       - other moving objects
30       and it counts as an obstacle during static collision phase.
31 
32       Use for kinematic moving objects like platforms and rocks. */
33   COLGROUP_MOVING_STATIC,
34 
35   /** Tested against:
36       - tiles + attributes
37       - static obstacles
38       - touchables
39       - other moving objects
40 
41       Use for ordinary objects. */
42   COLGROUP_MOVING,
43 
44   /** Tested against:
45       - tiles + attributes
46       - static obstacles
47 
48       Use for interactive particles and decoration. */
49   COLGROUP_MOVING_ONLY_STATIC,
50 
51   /** Tested against:
52       - moving objects
53       and it counts as an obstacle during static collision phase.
54 
55       Use for static obstacles that Tux walks on. */
56   COLGROUP_STATIC,
57 
58   /** Tested against:
59       - moving objects
60 
61       Use for triggers like spikes/areas or collectibles like coins. */
62   COLGROUP_TOUCHABLE
63 };
64 
65 #endif
66 
67 /* EOF */
68