*** empty log message ***
authorMatthew Mondor <mmondor@pulsar-zone.net>
Sun, 7 Jan 2007 09:21:30 +0000 (09:21 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Sun, 7 Jan 2007 09:21:30 +0000 (09:21 +0000)
mmsoftware/paradise_adventure/src/main.c
mmsoftware/paradise_adventure/src/screen.c

index 069b3a4..2f58374 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: main.c,v 1.1 2007/01/07 07:51:12 mmondor Exp $ */
+/* $Id: main.c,v 1.2 2007/01/07 09:21:30 mmondor Exp $ */
 
 /*
  * Copyright (c) 2006, Matthew Mondor
@@ -58,7 +58,6 @@ static char           *painting_file = NULL, *music_file = NULL;
 int
 main(int argc, char **argv)
 {
-       Mix_Music       *mus;
 
        /* Initialization */
        screen_init();
@@ -84,15 +83,14 @@ main(int argc, char **argv)
                    Mix_GetError());
                exit(EXIT_FAILURE);
        }
-       snd_test = sample_load("snd/test.wav");
        (void) Mix_AllocateChannels(4);
        (void) Mix_ReserveChannels(2);
-       if ((mus = Mix_LoadMUS("mus/1.ogg")) == NULL) {
+       if ((music = Mix_LoadMUS("mus/1.ogg")) == NULL) {
                (void) fprintf(stderr, "main() - Mix_LoadMUS() - %s\n",
                    Mix_GetError());
                exit(EXIT_FAILURE);
        }
-       if (Mix_PlayMusic(mus, -1) != 0) {
+       if (Mix_PlayMusic(music, -1) != 0) {
                (void) fprintf(stderr, "main() - Mix_PlayMusic() - %s\n",
                    Mix_GetError());
                exit(EXIT_FAILURE);
@@ -105,7 +103,11 @@ main(int argc, char **argv)
                SDL_Event       ev;
 
                while (SDL_PollEvent(&ev)) {
-                       handle_uevent(&ev);
+                       switch (ev.type) {
+                       case SDL_QUIT:
+                               main_quit = 1;
+                               break;
+                       }
                }
        }
 
@@ -115,349 +117,3 @@ main(int argc, char **argv)
 
        exit(EXIT_SUCCESS);
 }
-
-static void
-handle_uevent(SDL_Event *ev)
-{
-
-       if (ev->type == SDL_MOUSEMOTION)
-           return;
-
-       /*
-        * Quit commands events.
-        */
-       if ((ev->type == SDL_KEYDOWN && ev->key.keysym.sym == SDLK_ESCAPE) ||
-           ev->type == SDL_QUIT) {
-               main_quit = 1;
-               return;
-       }
-
-       /*
-        * Button events.  joy_angle affects several of them.
-        * We currently ignore release events.
-        */
-       if (ev->type == SDL_JOYBUTTONDOWN) {
-
-               if (ev->jbutton.state != 1)
-                       return;
-
-               switch (ev->jbutton.button) {
-               case 0:
-                       send_event(UE_TORP);
-                       break;
-               case 1:
-                       send_event(UE_PHASER);
-                       break;
-               case 2:
-                       send_event(UE_DIRECTION, joy_angle);
-                       break;
-               case 3:
-                       send_event(UE_PLASMA);
-                       break;
-               case 4:
-                       send_event(UE_SHIELD);
-                       break;
-               case 5:
-                       send_event(UE_CLOAK);
-                       break;
-               case 6:
-                       send_event(UE_THRUST_ACC);
-                       break;
-               case 7:
-                       send_event(UE_THRUST_DEC);
-                       break;
-               }
-
-               return;
-       }
-
-       /*
-        * Keyboard events
-        */
-       if (ev->type == SDL_KEYDOWN) {
-               int     angle = joy_angle;
-
-               switch (ev->key.keysym.sym) {
-               /* Angle changes */
-               case SDLK_i:
-                       angle = 192;
-                       break;
-               case SDLK_o:
-                       angle = 224;
-                       break;
-               case SDLK_l:
-                       angle = 0;
-                       break;
-               case SDLK_PERIOD:
-                       angle = 32;
-                       break;
-               case SDLK_COMMA:
-                       angle = 64;
-                       break;
-               case SDLK_m:
-                       angle = 96;
-                       break;
-               case SDLK_j:
-                       angle = 128;
-                       break;
-               case SDLK_u:
-                       angle = 160;
-                       break;
-               /* Navigation change */
-               case SDLK_d:
-                       send_event(UE_DIRECTION, joy_angle);
-                       break;
-               case SDLK_z:
-                       send_event(UE_THRUST_ACC);
-                       break;
-               case SDLK_a:
-                       send_event(UE_THRUST_DEC);
-                       break;
-               /* Weapons */
-               case SDLK_SPACE:
-                       send_event(UE_TORP);
-                       break;
-               case SDLK_f:
-                       send_event(UE_PHASER);
-                       break;
-               case SDLK_g:
-                       send_event(UE_PLASMA);
-                       break;
-               /* Toggles */
-               case SDLK_s:
-                       send_event(UE_SHIELD);
-                       break;
-               case SDLK_w:
-                       send_event(UE_CLOAK);
-                       break;
-               default:
-                       break;
-               }
-
-               if (joy_angle != angle)
-                       joy_angle = angle;
-               return;
-       }
-
-       return;
-}
-
-static void
-send_event(int type, ...)
-{
-       int     ch, err = 0;
-
-       switch (type) {
-       case UE_DIRECTION:
-               err = cpacket_direction_send(((int *)&type)[1]);
-               break;
-       case UE_TORP:
-               if ((ch = Mix_PlayChannel(-1, snd_torp, 0)) != -1)
-                       Mix_SetPosition(ch, joy_angle, 50);
-               err = cpacket_torp_send(joy_angle);
-               break;
-       case UE_PHASER:
-               /* XXX */
-               if ((ch = Mix_PlayChannel(-1, snd_hit, 0)) != -1)
-                       Mix_SetPosition(ch, joy_angle, 50);
-               break;
-       case UE_PLASMA:
-               /* XXX */
-               if ((ch = Mix_PlayChannel(-1, snd_explode, 0)) != -1)
-                       Mix_SetPosition(ch, joy_angle, 50);
-               break;
-       case UE_SHIELD:
-               shields = (shields == 0 ? 1 : 0);
-               Mix_PlayChannel(1,
-                   (shields == 1 ? snd_shield : snd_unshield), 0);
-               err = cpacket_shield_send();
-               break;
-       case UE_CLOAK:
-               cloaked = (cloaked == 0 ? 1 : 0);
-               Mix_PlayChannel(2,
-                   (cloaked == 1 ? snd_cloak : snd_uncloak), 0);
-               err = cpacket_cloak_send();
-               break;
-       case UE_THRUST_ACC:
-               err = cpacket_thrust_acc_send();
-               break;
-       case UE_THRUST_DEC:
-               err = cpacket_thrust_dec_send();
-               break;
-       }
-
-       if (err == -1) {
-               (void) fprintf(stderr, "Error writing to server socket\n");
-               exit(EXIT_FAILURE);
-       }
-}
-
-/* Extern, called by spacket_eof_handler */
-void
-frame_switch(void)
-{
-
-       /* Draw text stats */
-       font_blit_string(font, 17, 461, fpsstr, 0x00, 0x00, 0x00, 0xff);
-       font_blit_string(font, 16, 460, fpsstr, 0xff, 0xff, 0xff, 0xff);
-       font_blit_string(font, 101, 461, pingstr, 0x00, 0x00, 0x00, 0xff);
-       font_blit_string(font, 100, 460, pingstr, 0xff, 0xff, 0xff, 0xff);
-       font_blit_string(font, 201, 461, shipinfostr, 0x00, 0x00, 0x00, 0xff);
-       font_blit_string(font, 200, 460, shipinfostr, 0xff, 0xff, 0xff, 0xff);
-
-       /* Switch buffers */
-       (void) SDL_Flip(screen_surface);
-
-       /* Clear new buffer */
-       /*
-       {
-               uint32_t        *ptr, *tptr;
-
-               if (SDL_MUSTLOCK(screen_surface))
-                       SDL_LockSurface(screen_surface);
-               for (ptr = screen_surface->pixels,
-                   tptr = &ptr[screen_width * screen_height];
-                   ptr < tptr; ptr = &ptr[8]) {
-                       ptr[0] = 0x00000000;
-                       ptr[1] = 0x00000000;
-                       ptr[2] = 0x00000000;
-                       ptr[3] = 0x00000000;
-                       ptr[4] = 0x00000000;
-                       ptr[5] = 0x00000000;
-                       ptr[6] = 0x00000000;
-                       ptr[7] = 0x00000000;
-               }
-               if (SDL_MUSTLOCK(screen_surface))
-                       SDL_UnlockSurface(screen_surface);
-       }
-       */
-       (void) SDL_FillRect(screen_surface, NULL, 0x00000000);
-
-       /* Update fps counter for stats */
-       fpscnt++;
-}
-
-void
-ship_draw(int id, int x, int y, double angle, uint8_t flags)
-{
-       char    str[8];
-
-       (void) surface_blit_angle(rship, x, y, angle);
-       if ((flags & SHIPF_CLOAK) != 0)
-               filledCircleRGBA(screen_surface, x, y, 25,
-                   0x00, 0x00, 0x00, 0x80);
-       if ((flags & SHIPF_SHIELD) != 0) {
-               aacircleRGBA(screen_surface, x, y, 25,
-                   0xf0, 0xf0, 0x20, 0xb0);
-               filledCircleRGBA(screen_surface, x, y, 25,
-                   0x20, 0x50, 0xf0, 0x50);
-       }
-
-       x -= 24;
-       y -= 24;
-       (void) snprintf(str, 8, "%d", id);
-       font_blit_string(font, x, y, str, 0x00, 0x00, 0x00, 0xff);
-       font_blit_string(font, x + 1, y + 1, str, 0xff, 0xff, 0xff, 0xff);
-}
-
-void
-torp_draw(int x, int y, int r)
-{
-       static const uint8_t    torp_colors[3][3] = {
-               { 0xff, 0xff, 0x00 },   /* 90% */
-               { 0xff, 0x30, 0x00 },   /* 5% */
-               { 0x00, 0x30, 0xff }    /* 5% */
-       };
-       int     rnd, c;
-
-       rnd = rand() % 100;
-       if (rnd < 5)
-               c = 2;
-       else if (rnd < 10)
-               c = 1;
-       else
-               c = 0;
-
-       filledCircleRGBA(screen_surface, x, y, 1 + (rand() % r),
-           torp_colors[c][0], torp_colors[c][1], torp_colors[c][2],
-           0x7f + (rand() % 0x80));
-}
-
-static SDL_Surface *
-bmp_load_key(void *data, size_t size)
-{
-       SDL_RWops       *rwo;
-       SDL_Surface     *s;
-       Uint32          c;
-       void            *ndata;
-       size_t          nsize;
-
-       decode(&ndata, &nsize, data, size);
-
-       if ((rwo = SDL_RWFromMem(ndata, nsize)) == NULL)
-               goto err;
-       if ((s = IMG_LoadBMP_RW(rwo)) == NULL)
-               goto err;
-       SDL_FreeRW(rwo);
-
-       c = SDL_MapRGB(s->format, 0, 0, 0);
-       if (SDL_SetColorKey(s, SDL_SRCCOLORKEY | SDL_RLEACCEL, c) == -1)
-               goto err;
-
-       return s;
-
-err:
-       (void) fprintf(stderr, "bmp_load_key() - %s\n", SDL_GetError());
-       exit(EXIT_FAILURE);
-}
-
-static int
-surface_blit_angle(SDL_Surface *s, int x, int y, int a)
-{
-       SDL_Surface     *t;
-       SDL_Rect        d;
-       int             r;
-
-       ASSERT(a > -1 && a < 256);
-
-       /*
-        * Convert 0-255 angle to 0-359 and add 90 degrees so that shapes
-        * bitmaps can point upwards, although angle 0 should point
-        * rightwards,
-        */
-       a = (a * 360 / 256) + 90;
-
-       /* Interestingly, the angle has to be reversed... */
-       if ((t = rotozoomSurface(s, -a, 1.0, 1)) != NULL) {
-               d = (SDL_Rect){x - (t->w / 2), y - (t->h / 2), 0, 0};
-               r = SDL_BlitSurface(t, NULL, screen_surface, &d);
-               SDL_FreeSurface(t);
-       } else
-               r = -1;
-
-       return r;
-}
-
-static Mix_Chunk *
-sample_load(void *data, size_t size)
-{
-       SDL_RWops       *rwo;
-       Mix_Chunk       *c;
-       void            *ndata;
-       size_t          nsize;
-
-       decode(&ndata, &nsize, data, size);
-
-       if ((rwo = SDL_RWFromMem(ndata, nsize)) == NULL)
-               goto err;
-
-       if ((c = Mix_LoadWAV_RW(rwo, 0)) == NULL)
-               goto err;
-
-       SDL_FreeRW(rwo);
-       return c;
-
-err:
-       (void) fprintf(stderr, "sample_load() - %s\n", SDL_GetError());
-       exit(EXIT_FAILURE);
-}
index ef01682..577d25b 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: screen.c,v 1.1 2007/01/07 07:51:12 mmondor Exp $ */
+/* $Id: screen.c,v 1.2 2007/01/07 09:21:30 mmondor Exp $ */
 
 /*
  * Copyright (c) 2006, Matthew Mondor
@@ -16,7 +16,6 @@
 
 #include <SDL.h>
 
-#include <conf.h>
 #include <screen.h>