X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmain.c;h=eeb6b3197e6f6c4c7c79b406af970042e8aaede9;hp=427a74ebe0c8d17c98fe8a34a90fdee245363252;hb=998be01ad92a672b69b11e24d472f6c0c076817f;hpb=e582c697ddb8c9cd9d5d345beaf83c1916b849fa diff --git a/src/main.c b/src/main.c index 427a74eb..eeb6b319 100644 --- a/src/main.c +++ b/src/main.c @@ -19,44 +19,10 @@ #include "events.h" #include "joystick.h" -#if 0 -#if defined(PLATFORM_MSDOS) -#include -#endif -#endif - -#if 0 -DrawWindow window = None; -DrawBuffer backbuffer; -GC gc; -#endif - -#if 0 -GC clip_gc[NUM_BITMAPS]; -#endif GC tile_clip_gc; Bitmap pix[NUM_BITMAPS]; -#if 0 -Bitmap pix_masked[NUM_BITMAPS]; - -Bitmap tile_masked[NUM_TILES]; - -Pixmap clipmask[NUM_BITMAPS]; -#endif Pixmap tile_clipmask[NUM_TILES]; - -#if 0 -DrawBuffer drawto; -#endif - DrawBuffer drawto_field, fieldbuffer; -#if 0 -Colormap cmap; -#endif - -#if 0 -char *sound_device_name = AUDIO_DEVICE; -#endif int joystick_device = 0; char *joystick_device_name[MAX_PLAYERS] = @@ -67,36 +33,17 @@ char *joystick_device_name[MAX_PLAYERS] = DEV_JOYSTICK_3 }; -#if 0 -char *program_name = NULL; -#endif - int game_status = MAINMENU; boolean level_editor_test_game = FALSE; boolean network_playing = FALSE; -#if 0 -int button_status = MB_NOT_PRESSED; -boolean motion_status = FALSE; -#endif - int key_joystick_mapping = 0; int global_joystick_status = JOYSTICK_STATUS; int joystick_status = JOYSTICK_STATUS; -#if 0 -boolean fullscreen_available = FULLSCREEN_STATUS; -boolean fullscreen_enabled = FALSE; -#endif - boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; int redraw_x1 = 0, redraw_y1 = 0; -#if 0 -int redraw_mask; -int redraw_tiles; -#endif - short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; @@ -128,37 +75,16 @@ int SBY_Upper, SBY_Lower; int ZX,ZY, ExitX,ExitY; int AllPlayersGone; -#if 0 -int FrameCounter; -#endif - int TimeFrames, TimePlayed, TimeLeft; boolean network_player_action_received = FALSE; -#if 0 -struct LevelDirInfo *leveldir_first = NULL, *leveldir_current = NULL; -#endif struct LevelInfo level; struct PlayerInfo stored_player[MAX_PLAYERS], *local_player = NULL; struct HiScore highscore[MAX_SCORE_ENTRIES]; -#if 0 -struct SampleInfo Sound[NUM_SOUNDS]; -#endif struct TapeInfo tape; - -#if 0 -struct OptionInfo options; -#endif - struct SetupInfo setup; struct GameInfo game; - -#if 0 -struct VideoSystemInfo video; -struct AudioSystemInfo audio; -#endif - struct GlobalInfo global; /* data needed for playing sounds */ @@ -613,418 +539,18 @@ char *element_info[] = int num_element_info = sizeof(element_info)/sizeof(char *); - -#if 0 - -/* +-----------------------------------------------------------------------+ */ -/* | SDL TEST STUFF | */ -/* +-----------------------------------------------------------------------+ */ - -#if defined(TARGET_SDL) - -SDL_Surface *sdl_screen, *sdl_image_tmp, *sdl_image, *sdl_image_masked; -SDL_Surface *sdl_image2_tmp, *sdl_image2, *sdl_image2_masked; - -void TEST_SDL_BLIT_RECT(int x, int y) -{ - SDL_Rect rect_src, rect_dst; - - SDLCopyArea(pix_masked[PIX_HEROES], window, - 8 * TILEX, 8 * TILEY, TILEX, TILEY, x, y); - return; - - rect_src.x = 8 * TILEX; - rect_src.y = 8 * TILEY; - rect_src.w = TILEX; - rect_src.h = TILEY; - - rect_dst.x = x; - rect_dst.y = y; - rect_dst.w = TILEX; - rect_dst.h = TILEY; - - SDL_BlitSurface(sdl_image2_masked, &rect_src, sdl_screen, &rect_dst); - SDL_UpdateRect(sdl_screen, x, y, TILEX, TILEY); -} - -void TEST_SDL_INIT_DISPLAY() -{ - SDL_Rect rect_src, rect_dst; - - if (SDL_Init(SDL_INIT_VIDEO) < 0) - { - fprintf(stderr, "SDL_Init() failed: %s\n", SDL_GetError()); - exit(1); - } - - /* automatically cleanup SDL stuff after exit() */ - atexit(SDL_Quit); - - if ((sdl_screen = SDL_SetVideoMode(WIN_XSIZE, WIN_YSIZE, 16, SDL_HWSURFACE)) - == NULL) - { - fprintf(stderr, "SDL_SetVideoMode() failed: %s\n", SDL_GetError()); - exit(1); - } - - SDL_WM_SetCaption(WINDOW_TITLE_STRING, WINDOW_TITLE_STRING); - - if ((sdl_image_tmp = IMG_Load("graphics/RocksScreen.pcx")) == NULL) - { - fprintf(stderr, "IMG_Load() failed: %s\n", SDL_GetError()); - exit(1); - } - - sdl_image = SDL_DisplayFormat(sdl_image_tmp); - - SDL_SetColorKey(sdl_image_tmp, SDL_SRCCOLORKEY, - SDL_MapRGB(sdl_image_tmp->format, 0x00, 0x00, 0x00)); - sdl_image_masked = SDL_DisplayFormat(sdl_image_tmp); - - SDL_FreeSurface(sdl_image_tmp); - - if ((sdl_image2_tmp = IMG_Load("graphics/RocksHeroes.pcx")) == NULL) - { - fprintf(stderr, "IMG_Load() failed: %s\n", SDL_GetError()); - exit(1); - } - - sdl_image2 = SDL_DisplayFormat(sdl_image2_tmp); - SDL_FreeSurface(sdl_image2_tmp); - - sdl_image2_masked = SDL_DisplayFormat(sdl_image2); - SDL_SetColorKey(sdl_image2_masked, SDL_SRCCOLORKEY, - SDL_MapRGB(sdl_image2_masked->format, 0x00, 0x00, 0x00)); - - rect_src.x = 0; - rect_src.y = 0; - rect_src.w = sdl_image->w; - rect_src.h = sdl_image->h; - - rect_dst.x = 0; - rect_dst.y = 0; - rect_dst.w = sdl_image->w; - rect_dst.h = sdl_image->h; - - SDL_BlitSurface(sdl_image, &rect_src, sdl_screen, &rect_dst); - - /* - SDL_UpdateRect(sdl_screen, 0, 0, WIN_XSIZE, WIN_YSIZE); - */ - /* - SDL_UpdateRect(sdl_screen, 0, 0, 0, 0); - */ - SDL_Flip(sdl_screen); - - /* - SDL_Delay(5000); - */ -} - -void TEST_SDL_EVENT_LOOP() -{ - int quit_loop = 0; - - SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); - - /* - while (!quit_loop && SDL_WaitEvent(&event) >=0) - */ - - while (!quit_loop) - { - SDL_Event event; - - if (SDL_PollEvent(&event)) - { - /* hier werden die Ereignisse behandelt */ - switch(event.type) - { - case SDL_QUIT: - { - quit_loop = 1; - break; - } - - case SDL_MOUSEBUTTONDOWN: - { - int x = event.button.x; - int y = event.button.y; - - SDL_EventState(SDL_MOUSEMOTION, SDL_ENABLE); - - TEST_SDL_BLIT_RECT(x, y); - - printf("SDL_MOUSEBUTTONDOWN(%d, %d)\n", x, y); - break; - } - - case SDL_MOUSEBUTTONUP: - { - int x = event.button.x; - int y = event.button.y; - - SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); - - printf("SDL_MOUSEBUTTONUP(%d, %d)\n", x, y); - break; - } - - case SDL_MOUSEMOTION: - { - int x = event.motion.x; - int y = event.motion.y; - - TEST_SDL_BLIT_RECT(x, y); - - printf("SDL_MOUSEMOTION(%d, %d)\n", x, y); - break; - } - - default: - break; - } - } - - if (!SDL_PollEvent(NULL)) /* delay only if no pending events */ - { - printf("waiting...\n"); - Delay(100); - } - } - - SDL_FreeSurface(sdl_image); - SDL_Quit(); -} - -#define SCREEN_WIDTH 640 -#define SCREEN_HEIGHT 480 - -void WatchJoysticks() -{ - SDL_Surface *screen; - const char *name; - int i, done; - SDL_Event event; - int x, y, draw; - SDL_Rect axis_area[2]; - int joystick_nr = 0; - SDL_Joystick *joystick = Get_SDL_Joystick(joystick_nr); - - /* Set a video mode to display joystick axis position */ - screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 16, 0); - if ( screen == NULL ) { - fprintf(stderr, "Couldn't set video mode: %s\n",SDL_GetError()); - return; - } - - /* Print info about the joysticks we are watching */ - for (i=0; i<2; i++) - { - joystick = Get_SDL_Joystick(i); - - name = SDL_JoystickName(i); - printf("Watching joystick %d: (%s)\n", i, - name ? name : "Unknown Joystick"); - printf("Joystick has %d axes, %d hats, %d balls, and %d buttons\n", - SDL_JoystickNumAxes(joystick), - SDL_JoystickNumHats(joystick), - SDL_JoystickNumBalls(joystick), - SDL_JoystickNumButtons(joystick)); - } - - /* Initialize drawing rectangles */ - memset(axis_area, 0, (sizeof axis_area)); - draw = 0; - - /* Loop, getting joystick events! */ - done = 0; - while ( ! done ) { - while ( SDL_PollEvent(&event) ) { - switch (event.type) { - case SDL_JOYAXISMOTION: - joystick_nr = event.jaxis.which; - printf("Joystick %d axis %d value: %d\n", - event.jaxis.which, - event.jaxis.axis, - event.jaxis.value); - break; - case SDL_JOYHATMOTION: - joystick_nr = event.jaxis.which; - printf("Joystick %d hat %d value:", - event.jhat.which, - event.jhat.hat); - if ( event.jhat.value == SDL_HAT_CENTERED ) - printf(" centered"); - if ( event.jhat.value & SDL_HAT_UP ) - printf(" up"); - if ( event.jhat.value & SDL_HAT_RIGHT ) - printf(" right"); - if ( event.jhat.value & SDL_HAT_DOWN ) - printf(" down"); - if ( event.jhat.value & SDL_HAT_LEFT ) - printf(" left"); - printf("\n"); - break; - case SDL_JOYBALLMOTION: - joystick_nr = event.jaxis.which; - printf("Joystick %d ball %d delta: (%d,%d)\n", - event.jball.which, - event.jball.ball, - event.jball.xrel, - event.jball.yrel); - break; - case SDL_JOYBUTTONDOWN: - joystick_nr = event.jaxis.which; - printf("Joystick %d button %d down\n", - event.jbutton.which, - event.jbutton.button); - break; - case SDL_JOYBUTTONUP: - joystick_nr = event.jaxis.which; - printf("Joystick %d button %d up\n", - event.jbutton.which, - event.jbutton.button); - break; - case SDL_KEYDOWN: - if ( event.key.keysym.sym != SDLK_ESCAPE ) { - break; - } - /* Fall through to signal quit */ - case SDL_QUIT: - done = 1; - break; - default: - break; - } - } - - joystick = Get_SDL_Joystick(joystick_nr); - - /* Update visual joystick state */ - for ( i=0; i (SCREEN_WIDTH-16) ) { - x = SCREEN_WIDTH-16; - } - y = (((int)SDL_JoystickGetAxis(joystick, 1))+32768); - y *= SCREEN_HEIGHT; - y /= 65535; - if ( y < 0 ) { - y = 0; - } else - if ( y > (SCREEN_HEIGHT-16) ) { - y = SCREEN_HEIGHT-16; - } - axis_area[draw].x = (Sint16)x; - axis_area[draw].y = (Sint16)y; - axis_area[draw].w = 16; - axis_area[draw].h = 16; - SDL_FillRect(screen, &axis_area[draw], 0xFFFF); - - SDL_UpdateRects(screen, 2, axis_area); - } -} - -void TEST_SDL_JOYSTICK() -{ - const char *name; - int i; - - /* Initialize SDL (Note: video is required to start event loop) */ - if ( SDL_Init(SDL_INIT_VIDEO|SDL_INIT_JOYSTICK) < 0 ) - { - fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); - exit(1); - } - - /* Print information about the joysticks */ - printf("There are %d joysticks attached\n", SDL_NumJoysticks()); - for ( i=0; i