X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgameloop.h;h=b7e048b2dd5826790bc6437d7ca222a9bdb25c42;hb=f87231eab36e900a5f96e24e5c0c6fb90ab7bf62;hp=21b9e36214d9823ccf0ea5389436ea08846a900c;hpb=6e7cc3b4259e75a61df2984571d0ab1994c7cceb;p=supertux.git diff --git a/src/gameloop.h b/src/gameloop.h index 21b9e3621..b7e048b2d 100644 --- a/src/gameloop.h +++ b/src/gameloop.h @@ -3,74 +3,65 @@ 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 */ -#if !defined( SUPERTUX_GAMELOOP_H ) -#define SUPERTUX_GAMELOOP_H 1 +#ifndef SUPERTUX_GAMELOOP_H +#define SUPERTUX_GAMELOOP_H #include "sound.h" #include "type.h" #include "level.h" -/* Bounciness of distros: */ - -#define NO_BOUNCE 0 -#define BOUNCE 1 - +/* GameLoop modes */ -/* One-ups... */ +#define ST_GL_PLAY 0 +#define ST_GL_TEST 1 +#define ST_GL_LOAD_GAME 2 +#define ST_GL_LOAD_LEVEL_FILE 3 -#define DISTROS_LIFEUP 100 +// FIXME: Make this local to the gamesession +extern Level current_level; +extern int game_started; -/* Upgrade types: */ +class GameSession +{ + private: + timer_type fps_timer, frame_timer; -enum { - UPGRADE_MINTS, - UPGRADE_COFFEE, - UPGRADE_HERRING + public: + GameSession(const char * subset, int levelnb, int mode); + int run(); + void draw(); + int action(); }; -extern st_level current_level; +void activate_bad_guys(Level* plevel); +void savegame(int slot); +void loadgame(int slot); +std::string slotinfo(int slot); -/* Scores: */ +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); -#define SCORE_BRICK 5 -#define SCORE_DISTRO 25 +/** Try to grab the coin at the given coordinates */ +void trygrabdistro(float x, float y, int bounciness); -/* GameLoop modes */ +/** Try to break the brick at the given coordinates */ +void trybreakbrick(float x, float y, bool small); -#define ST_GL_PLAY 0 -#define ST_GL_TEST 1 +/** Try to get the content out of a bonus box, thus emptying it */ +void tryemptybox(float x, float y, int col_side); -/* Function prototypes: */ - -int gameloop(char * subset, int levelnb, int mode); -void savegame(void); -void loadgame(char* filename); -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); -void bumpbrick(float x, float y); -void trygrabdistro(float x, float y, int bounciness); -void trybreakbrick(float x, float y); -void tryemptybox(float x, float y); +/** 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); -void add_bouncy_distro(float x, float y); -void add_broken_brick(float x, float y); -void add_broken_brick_piece(float x, float y, float xm, float ym); -void add_bouncy_brick(float x, float y); -void add_bad_guy(float x, float y, int kind); -void add_upgrade(float x, float y, int kind); -void add_bullet(float x, float y, float xm, int dir); -#endif + +#endif /*SUPERTUX_GAMELOOP_H*/