-extern std::vector<Surface*> tux_right;
-extern std::vector<Surface*> tux_left;
-extern Surface* smalltux_jump_left;
-extern Surface* smalltux_jump_right;
-extern Surface* smalltux_stand_left;
-extern Surface* smalltux_stand_right;
-extern Sprite* bigtux_right;
-extern Sprite* bigtux_left;
-extern Sprite* bigtux_right_jump;
-extern Sprite* bigtux_left_jump;
-extern Sprite* ducktux_right;
-extern Sprite* ducktux_left;
-extern Surface* skidtux_right;
-extern Surface* skidtux_left;
-extern Surface* firetux_right[3];
-extern Surface* firetux_left[3];
-extern Surface* bigfiretux_right[3];
-extern Surface* bigfiretux_left[3];
-extern Surface* bigfiretux_right_jump;
-extern Surface* bigfiretux_left_jump;
-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
+
+extern Sprite* smalltux_gameover;
+extern Sprite* smalltux_star;
+extern Sprite* largetux_star;
+
+struct PlayerSprite
+{
+ Sprite* stand_left;
+ Sprite* stand_right;
+ Sprite* walk_right;
+ Sprite* walk_left;
+ Sprite* jump_right;
+ Sprite* jump_left;
+ Sprite* kick_left;
+ Sprite* kick_right;
+ Sprite* skid_right;
+ Sprite* skid_left;
+ Sprite* grab_left;
+ Sprite* grab_right;
+ Sprite* duck_right;
+ Sprite* duck_left;
+};
+
+extern PlayerSprite smalltux;
+extern PlayerSprite largetux;
+extern PlayerSprite firetux;
+extern PlayerSprite icetux;
+
+class Player : public MovingObject, public Drawable