void cleanup(void); int addtext(int x, int y, int size, char *string, SDL_Color *c, int delay, int ttype); void addoutlinetext(int x, int y, int size, char *msg, SDL_Color *col, SDL_Color *bgcol, int delay, int ttype); void drawscore(void); void drawbosshealth(void); void drawtext(void); void movetext(void); void removeall(void); void drawlevel(void); void removesprite(sprite_t *s); void removenetting(sprite_t *s); void drawnetting(sprite_t *s); void dogravity(sprite_t *s); void dotileeffects(sprite_t *s); int movex(sprite_t *s,double amt,int onpurpose); void bouncesprite(sprite_t *s); int movesprite(sprite_t *s); int isinwater(sprite_t *s); int isinwaterpoint(int x, int y); int isroofabove(sprite_t *s); int isroofnabove(sprite_t *s,int howfar); int isonground(sprite_t *s); int isongroundpoint(sprite_t *s, int x, int y); int isonladder(sprite_t *s); int isonbridge(sprite_t *s); int isladderabove(sprite_t *s); int dofruiteffect(sprite_t *pp, sprite_t *s); void checkcollide(sprite_t *s); void checkcollideplatform(sprite_t *s); void die(sprite_t *s); void nextlevel(void); void jump(sprite_t *s, int dir); double getspeed(sprite_t *s ); void adjustheight(sprite_t *s); void adjustx(sprite_t *s, int newframe); void tick(void); void usage(void); int canmove(sprite_t *pl); int canturn(sprite_t *pl); int initsound(void); int loadfx(int sid, char *filename); void playfx(int num); void playmusic(Mix_Music *toplay); void stopmusic(void); void channeldone(int channel); int moveto(sprite_t *p, int dstx, int dsty, double xspeed,double yspeed); SDL_Surface *grabbehind(sprite_t *s, SDL_Surface *surf); void dumpsprites(void); int countmonsters(int montype); int getpoints(int id); int isladder(int tid); char *addcommas(char *buffer, long num); int addscore(sprite_t *s, long amt); void extralife(sprite_t *s); void doice(void); void doflood(void); void undoflood(void); void checklevelend(void); void checksprites(void); void moveallsprites(void); void checkcollideall(void); void drawallsprites(void); void checkwrap(sprite_t *s); int getcurworld(void); int getcurlevel(void); int getmonjumpspeed(sprite_t *s); int getjumpdelay(int mid); void togglepause(void); void togglefullscreen(void); void initsdl(void); void getfruit(sprite_t *giveto, sprite_t *fruit, int multiplier); int haspowerup(sprite_t *s, int pid); sprite_t *haspowerupany(int pid); void gaincard(sprite_t *s, int cardid); int getpokereffect(sprite_t *pl); void dopokereffect(sprite_t *pl, int effect); char *getpokermsg(int effect); char *getpokermsg2(int effect, char *buf); void handleinput(void); int keydown(int whichplayer, int checkfor); void trytojump(sprite_t *pl); void trytoslam(sprite_t *pl); void trytoshoot(sprite_t *pl); void docannoneffect(sprite_t *pp); void dotitlescreen(void); void startgame(void); void uncatch(sprite_t *s); void makeinvuln(sprite_t *s); void handletitleinput(int whichplayer, int key); void setjoymappings(void); //int keytojoybutton(int key); int joybuttondown(int whichplayer, int key); int joybuttontokey(int buttonnum); void drawcredits(void); int drawoutlinetext(SDL_Surface *where,int x, int y, int size, char *msg, SDL_Color *col, SDL_Color *bgcol); void drawoutlinetextcentre(SDL_Surface *where,int y, int size, char *msg, SDL_Color *col, SDL_Color *bgcol); int socket_readline(int sock, char *out); void showhiscores(void); void checkhiscores(sprite_t *s); int gethiscores(int easyscores); void drawhiscores(void); int submithiscore(int score,int level, char *name); void getinput(void); int isendoflev(void); void keeponscreen(sprite_t *s); void stopteleporting(sprite_t *s); void losepowerup(sprite_t *s); void disablepowerups(int pid); int easymode(void); int uncaughtmonsters(void); void swimup(sprite_t *pl); void swimdown(sprite_t *pl); double getdistance(double x1, double y1, double x2, double y2); void doplayermovement(sprite_t *pl); double getxdisttoplayer(sprite_t *s, sprite_t **pl); double getydisttoplayer(sprite_t *s); int playersalive(void); int inintro(void); sprite_t *isplayerbelow(sprite_t *s); sprite_t *isplayerabove(sprite_t *s); sprite_t *isplayerright(sprite_t *s); sprite_t *isplayerahead(sprite_t *s); SDL_Color *getcolour(int id); SDL_Color *getbgcolour(int id); void dointroseq(void); int addcredit(void); int getpnum(sprite_t *s); int isonplatform(double x, double y); int countbabies(sprite_t *s, int babytype); int isice(int id); int savebmp(SDL_Surface *which); void melttile(int tx,int ty, int howlong);