X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fgameloop.h;h=b7e048b2dd5826790bc6437d7ca222a9bdb25c42;hb=f87231eab36e900a5f96e24e5c0c6fb90ab7bf62;hp=f7464a11629236286d8fe7078f916bbbb48fba07;hpb=2f395aba3974db45f45a8587ed423a3abeab4cd5;p=supertux.git diff --git a/src/gameloop.h b/src/gameloop.h index f7464a116..b7e048b2d 100644 --- a/src/gameloop.h +++ b/src/gameloop.h @@ -3,75 +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: */ +/* GameLoop modes */ -#define NO_BOUNCE 0 -#define BOUNCE 1 +#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; -/* One-ups... */ +extern int game_started; -#define DISTROS_LIFEUP 100 +class GameSession +{ + private: + timer_type fps_timer, frame_timer; - -/* Upgrade types: */ - -enum { - UPGRADE_MINTS, - UPGRADE_COFFEE, - UPGRADE_HERRING + public: + GameSession(const char * subset, int levelnb, int mode); + int run(); + void draw(); + int action(); }; -/* Array sizes: */ - -#define NUM_BOUNCY_DISTROS 8 -#define NUM_BROKEN_BRICKS 32 -#define NUM_BOUNCY_BRICKS 4 -#define NUM_FLOATING_SCORES 6 -#define NUM_UPGRADES 2 +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); -/* Scores: */ +/** Try to grab the coin at the given coordinates */ +void trygrabdistro(float x, float y, int bounciness); -#define SCORE_BRICK 5 -#define SCORE_DISTRO 25 +/** Try to break the brick at the given coordinates */ +void trybreakbrick(float x, float y, bool small); -/* Function prototypes: */ +/** Try to get the content out of a bonus box, thus emptying it */ +void tryemptybox(float x, float y, int col_side); -int gameloop(void); -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(itop_type* one, itop_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*/