Support for SDL_mixer and SDL_image on win32
[tennix.git] / tennix.c
blob43375333fb813e58de82e5d8ba9bb2f8f4cd652b
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"
8 #include "sound.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 init_sound();
29 init_graphics();
31 atexit( SDL_Quit);
33 #ifdef WIN32
34 sdl_flags = SDL_SWSURFACE;
35 #endif
37 if( (screen = SDL_SetVideoMode( WIDTH, HEIGHT, 16, sdl_flags)) == NULL) {
38 fprintf( stderr, "Can't set video mode: %s\n", SDL_GetError());
39 exit( 1);
42 SDL_WM_SetCaption( "Tennix! SDL", "Tennix");
43 SDL_ShowCursor( SDL_DISABLE);
44 SDL_EnableKeyRepeat (SDL_DEFAULT_REPEAT_DELAY, 1);
46 while( 1) {
47 SDL_PollEvent( &e);
48 keys = SDL_GetKeyState( NULL);
49 mb = SDL_GetMouseState( &mx, &my);
51 if( keys[SDLK_ESCAPE] || keys['q']) {
52 break;
55 if( keys['f']) {
56 SDL_WM_ToggleFullScreen( screen);
59 clearscr();
60 show_image( GR_MENU, 180*2, 0, 255);
61 if( i%(12*4) == 0) {
62 sound_racket( 0);
64 show_sprite( GR_ANIMATION, (i++/12%4), 4, 20*2, 30*2, 255);
65 show_sprite( GR_RACKET, (mb&SDL_BUTTON( SDL_BUTTON_LEFT)) > 0, 4, mx, my, 255);
66 updatescr();
68 if( mb & SDL_BUTTON( SDL_BUTTON_LEFT)) {
69 if( M_POS_START_GAME(mx,my)) {
70 game();
71 SDL_Delay( 50);
72 while( SDL_PollEvent( &e));
74 if( M_POS_HIGH_SCORES(mx,my)) {
75 //introimage( "data/hiscores.bmp");
77 if( M_POS_CREDITS(mx,my)) {
78 //introimage( "data/credits.bmp");
80 if( M_POS_QUIT(mx,my)) {
81 break;
84 SDL_Delay( 10);
87 uninit_graphics();
89 SDL_Quit();
90 return 0;