5 * Copyright (C) 2003, 2007 Thomas Perl <thp@perli.net>
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
35 int main( int argc
, char** argv
) {
42 int sdl_flags
= SDL_SWSURFACE
| SDL_DOUBLEBUF
;
43 char datadir
[MAXPATHLEN
];
45 fprintf( stderr
, "Tennix %s\n%s\n%s\n\n", VERSION
, COPYRIGHT
, URL
);
47 srand( (unsigned)time( NULL
));
49 if( SDL_Init( SDL_INIT_VIDEO
) == -1) {
50 fprintf( stderr
, "Can't init SDL: %s\n", SDL_GetError());
56 vi
= (SDL_VideoInfo
*)SDL_GetVideoInfo();
58 if( (screen
= SDL_SetVideoMode( WIDTH
, HEIGHT
, vi
->vfmt
->BitsPerPixel
, sdl_flags
)) == NULL
) {
59 fprintf( stderr
, "Can't set video mode: %s\n", SDL_GetError());
63 SDL_WM_SetCaption( "Tennix! SDL", "Tennix");
64 SDL_ShowCursor( SDL_DISABLE
);
65 SDL_EnableKeyRepeat (SDL_DEFAULT_REPEAT_DELAY
, 1);
67 strcpy( datadir
, argv
[0]);
68 strcpy( (char*)(datadir
+strlen( dirname( datadir
))), DATADIR
);
71 init_graphics( datadir
);
75 keys
= SDL_GetKeyState( NULL
);
76 mb
= SDL_GetMouseState( &mx
, &my
);
78 if( keys
[SDLK_ESCAPE
] || keys
['q']) {
83 SDL_WM_ToggleFullScreen( screen
);
87 show_image( GR_MENU
, 180*2, 0, 255);
91 show_sprite( GR_ANIMATION
, (i
++/12%4), 4, 20*2, 30*2, 255);
92 show_sprite( GR_RACKET
, (mb
&SDL_BUTTON( SDL_BUTTON_LEFT
)) > 0, 4, mx
, my
, 255);
95 if( mb
& SDL_BUTTON( SDL_BUTTON_LEFT
)) {
96 if( M_POS_START_GAME(mx
,my
)) {
99 while( SDL_PollEvent( &e
));
101 if( M_POS_HIGH_SCORES(mx
,my
)) {
104 while( SDL_PollEvent( &e
));
105 //introimage( "data/hiscores.bmp");
107 if( M_POS_CREDITS(mx
,my
)) {
108 //introimage( "data/credits.bmp");
110 if( M_POS_QUIT(mx
,my
)) {