X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fplayer.h;h=db7a0de5ca6741a6ce48373a906594d6ec364e8c;hb=90b85c87d5da62881fcb51b1f1b6767beb50d11f;hp=97e6df17d0da5b2b8226a82922aaf5758ec3364a;hpb=997685a947eaa0b269873e5956908b734cde1d76;p=supertux.git diff --git a/src/player.h b/src/player.h index 97e6df17d..db7a0de5c 100644 --- a/src/player.h +++ b/src/player.h @@ -1,14 +1,21 @@ +// $Id$ // -// Interface: player/tux +// SuperTux - A Jump'n Run +// Copyright (C) 2003 Tobias Glaesser // -// Description: -// -// -// Author: Tobias Glaesser , (C) 2003 -// -// Copyright: See COPYING file that comes with this distribution +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. // +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. // +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #ifndef SUPERTUX_PLAYER_H #define SUPERTUX_PLAYER_H @@ -39,15 +46,20 @@ #include -struct player_keymap_type +struct PlayerKeymap { +public: int jump; int duck; int left; int right; int fire; + + PlayerKeymap(); }; +extern PlayerKeymap keymap; + struct player_input_type { int right; @@ -60,21 +72,42 @@ struct player_input_type void player_input_init(player_input_type* pplayer_input); +class Sprite; + extern Surface* tux_life; -extern std::vector tux_right; -extern std::vector tux_left; -extern Surface* smalltux_jump_left; -extern Surface* smalltux_jump_right; -extern Surface* smalltux_stand_left; -extern Surface* smalltux_stand_right; -extern Surface* bigtux_right[3]; -extern Surface* bigtux_left[3]; -extern Surface* bigtux_right_jump; -extern Surface* bigtux_left_jump; -extern Surface* ducktux_right; -extern Surface* ducktux_left; -extern Surface* skidtux_right; -extern Surface* skidtux_left; + +extern Sprite* smalltux_gameover; +extern Sprite* smalltux_star; +extern Sprite* largetux_star; + +extern Sprite* smalltux_stand_left; +extern Sprite* smalltux_stand_right; +extern Sprite* smalltux_walk_right; +extern Sprite* smalltux_walk_left; +extern Sprite* smalltux_jump_left; +extern Sprite* smalltux_jump_right; +extern Sprite* smalltux_kick_left; +extern Sprite* smalltux_kick_right; +extern Sprite* smalltux_skid_left; +extern Sprite* smalltux_skid_right; +extern Sprite* smalltux_grab_left; +extern Sprite* smalltux_grab_right; + +extern Sprite* largetux_stand_left; +extern Sprite* largetux_stand_right; +extern Sprite* largetux_walk_right; +extern Sprite* largetux_walk_left; +extern Sprite* largetux_jump_right; +extern Sprite* largetux_jump_left; +extern Sprite* largetux_kick_left; +extern Sprite* largetux_kick_right; +extern Sprite* largetux_skid_right; +extern Sprite* largetux_skid_left; +extern Sprite* largetux_grab_left; +extern Sprite* largetux_grab_right; +extern Sprite* largetux_duck_right; +extern Sprite* largetux_duck_left; + extern Surface* firetux_right[3]; extern Surface* firetux_left[3]; extern Surface* bigfiretux_right[3]; @@ -85,22 +118,21 @@ extern Surface* duckfiretux_right; extern Surface* duckfiretux_left; extern Surface* skidfiretux_right; extern Surface* skidfiretux_left; -extern Surface* cape_right[2]; -extern Surface* cape_left[2]; -extern Surface* bigcape_right[2]; -extern Surface* bigcape_left[2]; class Player { - public: - player_keymap_type keymap; +public: + enum HurtMode { KILL, SHRINK }; player_input_type input; bool got_coffee; int size; bool duck; + bool holding_something; DyingType dying; - int dir; + + Direction dir; + bool jumping; int frame_; int frame_main; @@ -114,7 +146,7 @@ class Player Timer frame_timer; Physic physic; - public: +public: void init(); int key_event(SDLKey key, int state); void level_begin(); @@ -123,7 +155,7 @@ class Player void grabdistros(); void draw(); void collision(void* p_c_object, int c_object); - void kill(int mode); + void kill(HurtMode mode); void is_dying(); bool is_dead(); void player_remove_powerups(); @@ -131,10 +163,14 @@ class Player bool on_ground(); bool under_solid(); - private: +private: void handle_horizontal_input(); void handle_vertical_input(); void remove_powerups(); }; #endif /*SUPERTUX_PLAYER_H*/ + +/* Local Variables: */ +/* mode:c++ */ +/* End: */