X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgameloop.h;h=b7e048b2dd5826790bc6437d7ca222a9bdb25c42;hb=f87231eab36e900a5f96e24e5c0c6fb90ab7bf62;hp=0c23c95e414dbcfb0111e1ecfda2007b6cc040c6;hpb=7eeb14fedff6a08ac52fa63270f8bbd398e99b21;p=supertux.git diff --git a/src/gameloop.h b/src/gameloop.h index 0c23c95e4..b7e048b2d 100644 --- a/src/gameloop.h +++ b/src/gameloop.h @@ -3,11 +3,11 @@ Super Tux - Game Loop! - by Bill Kendrick + by Bill Kendrick & Tobias Glaesser bill@newbreedsoftware.com http://www.newbreedsoftware.com/supertux/ - April 11, 2000 - Junuary 1st, 2004 + April 11, 2000 - March 15, 2004 */ #ifndef SUPERTUX_GAMELOOP_H @@ -22,27 +22,45 @@ #define ST_GL_PLAY 0 #define ST_GL_TEST 1 #define ST_GL_LOAD_GAME 2 +#define ST_GL_LOAD_LEVEL_FILE 3 + +// FIXME: Make this local to the gamesession +extern Level current_level; extern int game_started; -extern st_level current_level; - -/* Function prototypes: */ - -int gameloop(char * subset, int levelnb, int mode); -void savegame(int slot); -void loadgame(int slot); -void slotinfo(char **pinfo, int slot); -int issolid(float x, float y); -int isbrick(float x, float y); -int isice(float x, float y); -int isfullbox(float x, float y); -int rectcollision(base_type* one, base_type* two); -void drawshape(float x, float y, unsigned char c); -unsigned char shape(float x, float y); + +class GameSession +{ + private: + timer_type fps_timer, frame_timer; + + public: + GameSession(const char * subset, int levelnb, int mode); + int run(); + void draw(); + int action(); +}; + +void activate_bad_guys(Level* plevel); +void savegame(int slot); +void loadgame(int slot); +std::string slotinfo(int slot); + +bool rectcollision(base_type* one, base_type* two); +void drawshape(float x, float y, unsigned int c, Uint8 alpha = 255); void bumpbrick(float x, float y); + +/** Try to grab the coin at the given coordinates */ void trygrabdistro(float x, float y, int bounciness); -void trybreakbrick(float x, float y); + +/** Try to break the brick at the given coordinates */ +void trybreakbrick(float x, float y, bool small); + +/** Try to get the content out of a bonus box, thus emptying it */ void tryemptybox(float x, float y, int col_side); + +/** Try to bumb a badguy that might we walking above Tux, thus shaking + the tile which the badguy is walking on an killing him this way */ void trybumpbadguy(float x, float y); #endif /*SUPERTUX_GAMELOOP_H*/