X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgameloop.h;h=b7e048b2dd5826790bc6437d7ca222a9bdb25c42;hb=f87231eab36e900a5f96e24e5c0c6fb90ab7bf62;hp=31230a58dea7e726ba1b23c3518acfadbc5ea897;hpb=c1911c9050af3456fa60ab2322bc33fe823824db;p=supertux.git diff --git a/src/gameloop.h b/src/gameloop.h index 31230a58d..b7e048b2d 100644 --- a/src/gameloop.h +++ b/src/gameloop.h @@ -24,28 +24,43 @@ #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: */ -class Tile; - -Tile* gettile(float x, float y); -int gameloop(const char * subset, int levelnb, int mode); -void savegame(int slot); -void loadgame(int slot); -void slotinfo(char **pinfo, int slot); -bool issolid(float x, float y); -bool isbrick(float x, float y); -bool isice(float x, float y); -bool isfullbox(float x, float y); -bool rectcollision(base_type* one, base_type* two); -void drawshape(float x, float y, unsigned int c); -unsigned int 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*/