initial import of tennix SDL port
[tennix.git] / tennix.c
blob7ad3c3099b7e5f82f2d6c1d7c548a37da69193a3
1 #include <stdio.h>
2 #include <time.h>
3 #include <SDL/SDL.h>
5 #include "tennix.h"
6 #include "game.h"
7 #include "graphics.h"
10 SDL_Surface *screen;
13 int main( int argc, char** argv) {
14 int i = 0;
15 int mx, my;
16 Uint8 *keys;
17 Uint8 mb;
18 SDL_Event e;
20 srandom( (unsigned)time( NULL));
22 if( SDL_Init( SDL_INIT_VIDEO) == -1) {
23 fprintf( stderr, "Can't init SDL: %s\n", SDL_GetError());
24 exit( 1);
27 atexit( SDL_Quit);
29 if( (screen = SDL_SetVideoMode( WIDTH, HEIGHT, 16, SDL_HWSURFACE)) == NULL) {
30 fprintf( stderr, "Can't set video mode: %s\n", SDL_GetError());
31 exit( 1);
34 SDL_WM_SetCaption( "Tennix! SDL", "Tennix");
35 SDL_ShowCursor( SDL_DISABLE);
36 SDL_EnableKeyRepeat (SDL_DEFAULT_REPEAT_DELAY, 1);
38 introimage( "data/title.bmp");
40 while( 1) {
41 SDL_PollEvent( &e);
42 keys = SDL_GetKeyState( NULL);
43 mb = SDL_GetMouseState( &mx, &my);
45 if( keys[SDLK_ESCAPE] || keys['q']) {
46 break;
49 if( keys['f']) {
50 SDL_WM_ToggleFullScreen( screen);
53 clearscr();
54 show_bmp( "data/menu.bmp", 180, 0, 255);
55 show_sprite( "data/animation.bmp", (i++/12%4), 4, 20, 30, 255);
56 show_sprite( RACKET_BMP, (mb&SDL_BUTTON( SDL_BUTTON_LEFT)) > 0, 4, mx, my, 255);
57 updatescr();
59 if( mb & SDL_BUTTON( SDL_BUTTON_LEFT)) {
60 if( M_POS_START_GAME(mx,my)) {
61 game();
62 SDL_Delay( 50);
63 while( SDL_PollEvent( &e));
65 if( M_POS_HIGH_SCORES(mx,my)) {
66 introimage( "data/hiscores.bmp");
68 if( M_POS_CREDITS(mx,my)) {
69 introimage( "data/credits.bmp");
71 if( M_POS_QUIT(mx,my)) {
72 break;
75 SDL_Delay( 10);
78 SDL_Quit();
79 return 0;