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);
65 extern Surface* tux_life;
66 extern std::vector<Surface*> tux_right;
67 extern std::vector<Surface*> tux_left;
68 extern Surface* smalltux_jump_left;
69 extern Surface* smalltux_jump_right;
70 extern Surface* smalltux_stand_left;
71 extern Surface* smalltux_stand_right;
72 extern Sprite* bigtux_right;
73 extern Sprite* bigtux_left;
74 extern Sprite* bigtux_right_jump;
75 extern Sprite* bigtux_left_jump;
76 extern Sprite* ducktux_right;
77 extern Sprite* ducktux_left;
78 extern Surface* skidtux_right;
79 extern Surface* skidtux_left;
80 extern Surface* firetux_right[3];
81 extern Surface* firetux_left[3];
82 extern Surface* bigfiretux_right[3];
83 extern Surface* bigfiretux_left[3];
84 extern Surface* bigfiretux_right_jump;
85 extern Surface* bigfiretux_left_jump;
86 extern Surface* duckfiretux_right;
87 extern Surface* duckfiretux_left;
88 extern Surface* skidfiretux_right;
89 extern Surface* skidfiretux_left;
90 extern Surface* cape_right[2];
91 extern Surface* cape_left[2];
92 extern Surface* bigcape_right[2];
93 extern Surface* bigcape_left[2];
98 player_keymap_type keymap;
100 player_input_type input;
112 base_type previous_base;
113 Timer invincible_timer;
114 Timer skidding_timer;
121 int key_event(SDLKey key, int state);
123 void action(double frame_ratio);
127 void collision(void* p_c_object, int c_object);
131 void player_remove_powerups();
132 void keep_in_bounds();
137 void handle_horizontal_input();
138 void handle_vertical_input();
139 void remove_powerups();
142 #endif /*SUPERTUX_PLAYER_H*/