X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgameloop.h;h=b7e048b2dd5826790bc6437d7ca222a9bdb25c42;hb=f87231eab36e900a5f96e24e5c0c6fb90ab7bf62;hp=27a6d16299b99b78536798fe269325fd5968d516;hpb=d252b040c3cfebbc8f291f1c05275dd68a1b8b09;p=supertux.git diff --git a/src/gameloop.h b/src/gameloop.h index 27a6d1629..b7e048b2d 100644 --- a/src/gameloop.h +++ b/src/gameloop.h @@ -24,24 +24,30 @@ #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 */