projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
The BIG COMMIT(tm)
[supertux.git]
/
src
/
badguy.h
diff --git
a/src/badguy.h
b/src/badguy.h
index
f5cd806
..
5b94445
100644
(file)
--- a/
src/badguy.h
+++ b/
src/badguy.h
@@
-24,17
+24,20
@@
#define SUPERTUX_BADGUY_H
#include "SDL.h"
#define SUPERTUX_BADGUY_H
#include "SDL.h"
-#include "defines.h"
-#include "bitmask.h"
-#include "type.h"
+
+#include "utils/lispreader.h"
#include "timer.h"
#include "timer.h"
-#include "texture.h"
-#include "physic.h"
+#include "math/physic.h"
+#include "defines.h"
+#include "special/moving_object.h"
#include "collision.h"
#include "collision.h"
-#include "sprite.h"
-#include "moving_object.h"
-#include "drawable.h"
#include "serializable.h"
#include "serializable.h"
+#include "scene.h"
+
+using namespace SuperTux;
+
+/* Timing constants */
+#define KICKING_TIME .2
/* Bad guy kinds: */
enum BadGuyKind {
/* Bad guy kinds: */
enum BadGuyKind {
@@
-45,28
+48,32
@@
enum BadGuyKind {
BAD_STALACTITE,
BAD_FLAME,
BAD_FISH,
BAD_STALACTITE,
BAD_FLAME,
BAD_FISH,
+ BAD_FLAMEFISH,
BAD_BOUNCINGSNOWBALL,
BAD_FLYINGSNOWBALL,
BAD_SPIKY,
BAD_SNOWBALL,
BAD_WINGLING,
BAD_WALKINGTREE,
BAD_BOUNCINGSNOWBALL,
BAD_FLYINGSNOWBALL,
BAD_SPIKY,
BAD_SNOWBALL,
BAD_WINGLING,
BAD_WALKINGTREE,
- NUM_BadGuyKinds
+ NUM_BadGuyKinds,
+
+ BAD_INVALID
};
BadGuyKind badguykind_from_string(const std::string& str);
std::string badguykind_to_string(BadGuyKind kind);
};
BadGuyKind badguykind_from_string(const std::string& str);
std::string badguykind_to_string(BadGuyKind kind);
-void load_badguy_gfx();
-void free_badguy_gfx();
+
+#if 0
class Player;
class Player;
+class BadGuySpecs;
/* Badguy type: */
/* Badguy type: */
-class BadGuy : public MovingObject, public
Drawable, public
Serializable
+class BadGuy : public MovingObject, public Serializable
{
public:
/* Enemy modes: */
{
public:
/* Enemy modes: */
- enum BadGuy
Mod
e {
+ enum BadGuy
Stat
e {
NORMAL=0,
FLAT,
KICK,
NORMAL=0,
FLAT,
KICK,
@@
-89,9
+96,9
@@
public:
BGM_SMALL
};
public:
BGM_SMALL
};
public:
- DyingType dying;
- BadGuyKind kind;
- BadGuy
Mode mod
e;
+ DyingType
dying;
+ BadGuyKind
kind;
+ BadGuy
State stat
e;
/** If true the enemy will stay on its current platform, ie. if he
reaches the edge he will turn around and walk into the other
/** If true the enemy will stay on its current platform, ie. if he
reaches the edge he will turn around and walk into the other
@@
-99,33
+106,33
@@
public:
bool stay_on_platform;
Direction dir;
bool stay_on_platform;
Direction dir;
+ Vector start_position;
Timer frozen_timer; // gets frozen when a ice shot hits it
private:
Timer frozen_timer; // gets frozen when a ice shot hits it
private:
- bool removable;
bool seen;
int squishcount; /// number of times this enemy was squiched
Vector target; // Target that badguy is aiming for (wingling uses this)
Timer timer;
bool seen;
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;
Physic physic;
float angle;
- Sprite* sprite_left;
- Sprite* sprite_right;
+ std::string action_left, action_right;
+
+ BadGuySpecs* specs;
int animation_offset;
public:
int animation_offset;
public:
- BadGuy(
DisplayManager& display_manager,
BadGuyKind kind, float x, float y);
- BadGuy(
DisplayManager& display_manager,
BadGuyKind kind, LispReader& reader);
+ BadGuy(BadGuyKind kind, float x, float y);
+ BadGuy(BadGuyKind kind, LispReader& reader);
virtual ~BadGuy();
virtual void write(LispWriter& writer);
virtual void action(float frame_ratio);
virtual ~BadGuy();
virtual void write(LispWriter& writer);
virtual void action(float frame_ratio);
- virtual void draw(
Camera& viewport, int layer
);
+ virtual void draw(
DrawingContext& context
);
virtual void collision(const MovingObject& other, int type);
void collision(void* p_c_object, int c_object,
virtual void collision(const MovingObject& other, int type);
void collision(void* p_c_object, int c_object,
@@
-136,6
+143,11
@@
public:
*/
void kill_me(int score);
*/
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();
+
private:
void init();
private:
void init();
@@
-153,16
+165,10
@@
private:
void action_wingling(double frame_ratio);
void action_walkingtree(double frame_ratio);
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();
/** handles falling down. disables gravity calculation when we're back on
* ground */
void fall();
- /** let the player jump a bit (used when you hit a badguy) */
- void make_player_jump(Player* player);
-
/** Turn enemy into a bomb. To explode right way pass true */
void explode(bool right_away);
/** Turn enemy into a bomb. To explode right way pass true */
void explode(bool right_away);
@@
-176,13
+182,10
@@
private:
void squish(Player* player);
/** squish ourself, give player score and set dying to DYING_SQICHED */
void squish_me(Player* player);
void squish(Player* player);
/** squish ourself, give player score and set dying to DYING_SQICHED */
void squish_me(Player* player);
- /** set
image
of the badguy */
- void set_
sprite(Sprite* left, Sprite*
right);
+ /** set
sprite's action
of the badguy */
+ void set_
action(std::string action_left, std::string action_
right);
};
};
-#endif /*SUPERTUX_BADGUY_H*/
-
-/* Local Variables: */
-/* mode:c++ */
-/* End: */
+#endif
+#endif /*SUPERTUX_BADGUY_H*/