X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fplayer.h;h=36b678ecce21eec3154d95da82d5d079353e8a54;hb=b81753b1f8057b416026644df7fd448ae3df3148;hp=e65d11ba65ec1d26cc14883414504c8c84d8eb71;hpb=43ae91e84ae574464a2ff634daa8a16e253b47fa;p=supertux.git diff --git a/src/player.h b/src/player.h index e65d11ba6..36b678ecc 100644 --- a/src/player.h +++ b/src/player.h @@ -19,13 +19,34 @@ #include "timer.h" #include "texture.h" #include "collision.h" +#include "sound.h" +#include "physic.h" /* Times: */ -#define TUX_SAFE_TIME 16 +#define TUX_SAFE_TIME 750 #define TUX_INVINCIBLE_TIME 10000 #define TIME_WARNING 20000 /* When to alert player they're low on time! */ +/* One-ups... */ + +#define DISTROS_LIFEUP 100 + +/* Scores: */ + +#define SCORE_BRICK 5 +#define SCORE_DISTRO 25 + +typedef struct player_keymap_type +{ + int jump; + int duck; + int left; + int right; + int fire; +} +player_keymap_type; + typedef struct player_input_type { int right; @@ -37,13 +58,16 @@ typedef struct player_input_type } player_input_type; +void player_input_init(player_input_type* pplayer_input); + typedef struct player_type { player_input_type input; + player_keymap_type keymap; + int score; + int distros; int got_coffee; int size; - int skidding; - int safe; int duck; int dying; int dir; @@ -52,12 +76,18 @@ typedef struct player_type int frame; int lives; base_type base; + base_type old_base; + base_type previous_base; timer_type invincible_timer; - timer_type jump_timer; + timer_type skidding_timer; + timer_type safe_timer; + timer_type frame_timer; + physic_type vphysic; + physic_type hphysic; } player_type; -texture_type tux_life, +extern texture_type tux_life, tux_right[3], tux_left[3], bigtux_right[3], bigtux_left[3], bigtux_right_jump, bigtux_left_jump, @@ -72,6 +102,7 @@ texture_type tux_life, bigcape_right[2], bigcape_left[2]; void player_init(player_type* pplayer); +int player_key_event(player_type* pplayer, SDLKey key, int state); void player_level_begin(player_type* pplayer); void player_action(player_type* pplayer); void player_input(player_type* pplayer); @@ -82,5 +113,7 @@ void player_kill(player_type *pplayer, int mode); void player_dying(player_type *pplayer); void player_remove_powerups(player_type *pplayer); void player_keep_in_bounds(player_type *pplayer); +int player_on_ground(player_type *pplayer); +int player_under_solid(player_type *pplayer); #endif /*SUPERTUX_PLAYER_H*/