#include "SDL.h"
-#include "timer.h"
-#include "screen/surface.h"
-#include "physic.h"
-#include "sprite.h"
+#include "special/timer.h"
+#include "video/surface.h"
+#include "math/physic.h"
+#include "special/sprite.h"
#include "defines.h"
-#include "moving_object.h"
+#include "special/moving_object.h"
#include "collision.h"
#include "serializable.h"
+#include "scene.h"
+
+using namespace SuperTux;
+
+/* Timing constants (in ms): */
+
+#define KICKING_TIME 200
/* Bad guy kinds: */
enum BadGuyKind {
BAD_STALACTITE,
BAD_FLAME,
BAD_FISH,
+ BAD_FLAMEFISH,
BAD_BOUNCINGSNOWBALL,
BAD_FLYINGSNOWBALL,
BAD_SPIKY,
bool stay_on_platform;
Direction dir;
+ Vector start_position;
Timer frozen_timer; // gets frozen when a ice shot hits it
int squishcount; /// number of times this enemy was squiched
Vector target; // Target that badguy is aiming for (wingling uses this)
Timer timer;
- Vector start_position;
Physic physic;
float angle;
*/
void kill_me(int score);
+ /** initializes the badguy (when he appears on screen) */
+ void activate(Direction direction); // should only be used by BadGuy's objects
+
+ Surface* get_image()
+ { return sprite_left->get_frame(0); }
+
private:
void init();
void action_wingling(double frame_ratio);
void action_walkingtree(double frame_ratio);
- /** initializes the badguy (when he appears on screen) */
- void activate(Direction direction);
-
/** handles falling down. disables gravity calculation when we're back on
* ground */
void fall();