Initial support for win32
[tennix.git] / tennix.c
blob01025f9cc8d6339c2103d2246a9847358553c4b8
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;
19 int sdl_flags = SDL_HWSURFACE;
21 srand( (unsigned)time( NULL));
23 if( SDL_Init( SDL_INIT_VIDEO) == -1) {
24 fprintf( stderr, "Can't init SDL: %s\n", SDL_GetError());
25 exit( 1);
28 atexit( SDL_Quit);
30 #ifdef WIN32
31 sdl_flags = SDL_SWSURFACE;
32 #endif
34 if( (screen = SDL_SetVideoMode( WIDTH, HEIGHT, 16, sdl_flags)) == NULL) {
35 fprintf( stderr, "Can't set video mode: %s\n", SDL_GetError());
36 exit( 1);
39 SDL_WM_SetCaption( "Tennix! SDL", "Tennix");
40 SDL_ShowCursor( SDL_DISABLE);
41 SDL_EnableKeyRepeat (SDL_DEFAULT_REPEAT_DELAY, 1);
43 introimage( "data/title.bmp");
45 while( 1) {
46 SDL_PollEvent( &e);
47 keys = SDL_GetKeyState( NULL);
48 mb = SDL_GetMouseState( &mx, &my);
50 if( keys[SDLK_ESCAPE] || keys['q']) {
51 break;
54 if( keys['f']) {
55 SDL_WM_ToggleFullScreen( screen);
58 clearscr();
59 show_bmp( "data/menu.bmp", 180, 0, 255);
60 show_sprite( "data/animation.bmp", (i++/12%4), 4, 20, 30, 255);
61 show_sprite( RACKET_BMP, (mb&SDL_BUTTON( SDL_BUTTON_LEFT)) > 0, 4, mx, my, 255);
62 updatescr();
64 if( mb & SDL_BUTTON( SDL_BUTTON_LEFT)) {
65 if( M_POS_START_GAME(mx,my)) {
66 game();
67 SDL_Delay( 50);
68 while( SDL_PollEvent( &e));
70 if( M_POS_HIGH_SCORES(mx,my)) {
71 introimage( "data/hiscores.bmp");
73 if( M_POS_CREDITS(mx,my)) {
74 introimage( "data/credits.bmp");
76 if( M_POS_QUIT(mx,my)) {
77 break;
80 SDL_Delay( 10);
83 SDL_Quit();
84 return 0;