#ifndef SUPERTUX_COLLISION_H
#define SUPERTUX_COLLISION_H
-#include "type.h"
+#include "special/base.h"
+
+using namespace SuperTux;
class Tile;
-class World;
/* Collision objects */
enum
{
CO_BULLET,
CO_BADGUY,
- CO_PLAYER
+ CO_PLAYER,
+ CO_TRAMPOLINE,
+ CO_FLYING_PLATFORM
};
enum CollisionType {
bool issolid(float x, float y);
bool isbrick(float x, float y);
bool isice(float x, float y);
+bool isspike(float x, float y);
bool isfullbox(float x, float y);
+typedef void* (*tiletestfunction)(Tile* tile);
+/** invokes the function for each tile the baserectangle collides with. The
+ * function aborts and returns true as soon as the tiletestfunction returns
+ * != 0 then this value is returned. returns 0 if all tests failed.
+ */
+void* collision_func(const base_type& base, tiletestfunction* function);
+
+Tile* collision_goal(const base_type& base);
+
#endif /*SUPERTUX_COLLISION_H*/