2 // Interface: player/tux
7 // Author: Tobias Glaesser <tobi.web@gmx.de>, (C) 2003
9 // Copyright: See COPYING file that comes with this distribution
13 #ifndef SUPERTUX_PLAYER_H
14 #define SUPERTUX_PLAYER_H
21 #include "collision.h"
27 #define TUX_SAFE_TIME 750
28 #define TUX_INVINCIBLE_TIME 10000
29 #define TIME_WARNING 20000 /* When to alert player they're low on time! */
33 #define DISTROS_LIFEUP 100
38 #define SCORE_DISTRO 25
42 struct player_keymap_type
51 struct player_input_type
61 void player_input_init(player_input_type* pplayer_input);
63 extern texture_type tux_life;
64 extern std::vector<texture_type> tux_right;
65 extern std::vector<texture_type> tux_left;
66 extern texture_type smalltux_jump_left;
67 extern texture_type smalltux_jump_right;
68 extern texture_type smalltux_stand_left;
69 extern texture_type smalltux_stand_right;
70 extern texture_type bigtux_right[3];
71 extern texture_type bigtux_left[3];
72 extern texture_type bigtux_right_jump;
73 extern texture_type bigtux_left_jump;
74 extern texture_type ducktux_right;
75 extern texture_type ducktux_left;
76 extern texture_type skidtux_right;
77 extern texture_type skidtux_left;
78 extern texture_type firetux_right[3];
79 extern texture_type firetux_left[3];
80 extern texture_type bigfiretux_right[3];
81 extern texture_type bigfiretux_left[3];
82 extern texture_type bigfiretux_right_jump;
83 extern texture_type bigfiretux_left_jump;
84 extern texture_type duckfiretux_right;
85 extern texture_type duckfiretux_left;
86 extern texture_type skidfiretux_right;
87 extern texture_type skidfiretux_left;
88 extern texture_type cape_right[2];
89 extern texture_type cape_left[2];
90 extern texture_type bigcape_right[2];
91 extern texture_type bigcape_left[2];
96 player_input_type input;
97 player_keymap_type keymap;
111 base_type previous_base;
112 timer_type invincible_timer;
113 timer_type skidding_timer;
114 timer_type safe_timer;
115 timer_type frame_timer;
120 int key_event(SDLKey key, int state);
126 void collision(void* p_c_object, int c_object);
130 void player_remove_powerups();
131 void keep_in_bounds();
135 void handle_horizontal_input(int dir);
136 void handle_vertical_input();
137 void remove_powerups();
140 #endif /*SUPERTUX_PLAYER_H*/