rocksndiamonds-3.3.1.0
authorHolger Schemel <info@artsoft.org>
Wed, 23 Oct 2013 20:33:49 +0000 (22:33 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 09:00:00 +0000 (11:00 +0200)
* version 3.3.1.0 released
* version number set to 3.3.1.0

12 files changed:
ChangeLog
Makefile
src/Makefile
src/conf_gfx.c
src/conftime.h
src/files.c
src/game_em/sound.c
src/libgame/misc.c
src/libgame/sound.c
src/main.h
src/netserv.c
src/network.c

index 48c60341b569dc813ac46992b8ed44e4961b5417..0ae29c85ebc8d3a274f0bb11277c334d478133e5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-10-23
+       * version 3.3.1.0 released
+
+2013-10-21
+       * version number set to 3.3.1.0
+
 2012-10-13
        * fixed display of level time switching from ascending to descending
          when making use of the "time orb bug" (see element setting in editor)
index 75fde6be5e40b15ae56b27ec64ba6fce4e88df0d..b2d8476cd80dbc66d9193cbdc80a685c80bfce99 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 # =============================================================================
 # Rocks'n'Diamonds Makefile
 # -----------------------------------------------------------------------------
-# (c) 1995-2007 Holger Schemel <info@artsoft.org>
+# (c) 1995-2013 Holger Schemel <info@artsoft.org>
 # =============================================================================
 
 # -----------------------------------------------------------------------------
@@ -175,6 +175,9 @@ dist-build-win32:
 dist-build-macosx:
        # (this is done by "dist-package-macosx" target)
 
+dist-build-macosx-ppc:
+       # (this is done by "dist-package-macosx-ppc" target)
+
 dist-package-unix:
        ./Scripts/make_dist.sh unix .
 
@@ -187,6 +190,9 @@ dist-package-win32:
 dist-package-macosx:
        ./Scripts/make_dist.sh mac . $(MAKE)
 
+dist-package-macosx-ppc:
+       ./Scripts/make_dist.sh mac-ppc . $(MAKE)
+
 dist-upload-unix:
        ./Scripts/make_dist.sh unix . upload
 
@@ -199,6 +205,9 @@ dist-upload-win32:
 dist-upload-macosx:
        ./Scripts/make_dist.sh mac . upload
 
+dist-upload-macosx-ppc:
+       ./Scripts/make_dist.sh mac-ppc . upload
+
 dist-build-all:
        $(MAKE) clean
        $(MAKE) dist-build-unix         ; $(MAKE) dist-clean
@@ -209,12 +218,14 @@ dist-package-all:
        $(MAKE) dist-package-unix
        $(MAKE) dist-package-win32
        $(MAKE) dist-package-macosx
+       $(MAKE) dist-package-macosx-ppc
 #      $(MAKE) dist-package-msdos
 
 dist-upload-all:
        $(MAKE) dist-upload-unix
        $(MAKE) dist-upload-win32
        $(MAKE) dist-upload-macosx
+       $(MAKE) dist-upload-macosx-ppc
 #      $(MAKE) dist-upload-msdos
 
 dist-all: dist-build-all dist-package-all
index 9820c4de195670fd162259a870b40b1b3e58470c..3a9230f201910f9a330c03032b65e83ac01746f9 100644 (file)
@@ -110,7 +110,7 @@ endif
 
 ifeq ($(TARGET),sdl-static)            # compiling for SDL target (static)
 SYS_CFLAGS  = -DTARGET_SDL $(shell sdl-config --cflags)
-SDL_LIBS = -lSDL_image -lSDL_mixer -lSDL_net -lsmpeg
+SDL_LIBS = -lSDL_image -lSDL_mixer -lSDL_net -lsmpeg -lmikmod
 SYS_LDFLAGS = $(SDL_LIBS) $(shell sdl-config --static-libs)
 endif
 
@@ -146,7 +146,7 @@ CONFIG_GAME_DIR = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR)
 CONFIG_GAME = $(CONFIG_GAME_DIR) $(CONFIG_SCORE_ENTRIES) $(CONFIG_SPECIAL)
 
 CONFIG = $(CONFIG_GAME) $(JOYSTICK)
-DEBUG = -DDEBUG -g
+DEBUG = -DDEBUG -g
 # PROFILING = $(PROFILING_FLAGS)
 
 # OPTIONS = $(DEBUG) -Wall                     # only for debugging purposes
index c7ea0459eb926df74bf3a3e9d9e423aa0e1caeb1..b04ca43f3539c632e0e0400c607eafa4f9df314b 100644 (file)
@@ -5169,11 +5169,11 @@ struct ConfigInfo image_config[] =
   { "editor.element_border_input.ypos",                "7"                     },
 
   { "editor.cascade_list",                     "RocksMore.pcx"         },
-  { "editor.cascade_list.xpos",                        "10"                    },
+  { "editor.cascade_list.xpos",                        "9"                     },
   { "editor.cascade_list.ypos",                        "8"                     },
   { "editor.cascade_list.frames",              "1"                     },
   { "editor.cascade_list.active",              "RocksMore.pcx"         },
-  { "editor.cascade_list.active.xpos",         "9"                     },
+  { "editor.cascade_list.active.xpos",         "10"                    },
   { "editor.cascade_list.active.ypos",         "8"                     },
   { "editor.cascade_list.active.frames",       "1"                     },
 
index 5dbe469ef2d95b17dc6c9e47a15dd8b40e6ed44d..304aecb5d4e85bb5190adb114b0c44e580d3e512 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "2013-09-16 20:53"
+#define COMPILE_DATE_STRING "2013-10-23 22:33"
index 21aea23846ba9d6a060261331174d87e07e84472..7ff37822dd2d3a7ed3a2c4fe3a100d33c9319652 100644 (file)
@@ -3364,7 +3364,8 @@ static void LoadLevelFromFileInfo_RND(struct LevelInfo *level,
   else /* check for pre-2.0 file format with cookie string */
   {
     strcpy(cookie, chunk_name);
-    fgets(&cookie[4], MAX_LINE_LEN - 4, file);
+    if (fgets(&cookie[4], MAX_LINE_LEN - 4, file) == NULL)
+      cookie[4] = '\0';
     if (strlen(cookie) > 0 && cookie[strlen(cookie) - 1] == '\n')
       cookie[strlen(cookie) - 1] = '\0';
 
@@ -6416,7 +6417,8 @@ static void LoadLevelFromFileInfo_DC(struct LevelInfo *level,
   if (level_file_info->packed)
   {
     /* read "magic bytes" from start of file */
-    fgets(magic_bytes, num_magic_bytes + 1, file);
+    if (fgets(magic_bytes, num_magic_bytes + 1, file) == NULL)
+      magic_bytes[0] = '\0';
 
     /* check "magic bytes" for correct file format */
     if (!strPrefix(magic_bytes, "DC2"))
@@ -8799,7 +8801,8 @@ void LoadTapeFromFilename(char *filename)
   else /* check for pre-2.0 file format with cookie string */
   {
     strcpy(cookie, chunk_name);
-    fgets(&cookie[4], MAX_LINE_LEN - 4, file);
+    if (fgets(&cookie[4], MAX_LINE_LEN - 4, file) == NULL)
+      cookie[4] = '\0';
     if (strlen(cookie) > 0 && cookie[strlen(cookie) - 1] == '\n')
       cookie[strlen(cookie) - 1] = '\0';
 
@@ -9142,7 +9145,8 @@ void LoadScore(int nr)
     return;
 
   /* check file identifier */
-  fgets(cookie, MAX_LINE_LEN, file);
+  if (fgets(cookie, MAX_LINE_LEN, file) == NULL)
+    cookie[0] = '\0';
   if (strlen(cookie) > 0 && cookie[strlen(cookie) - 1] == '\n')
     cookie[strlen(cookie) - 1] = '\0';
 
@@ -9155,10 +9159,12 @@ void LoadScore(int nr)
 
   for (i = 0; i < MAX_SCORE_ENTRIES; i++)
   {
-    fscanf(file, "%d", &highscore[i].Score);
-    fgets(line, MAX_LINE_LEN, file);
+    if (fscanf(file, "%d", &highscore[i].Score) == EOF)
+      Error(ERR_WARN, "fscanf() failed; %s", strerror(errno));
+    if (fgets(line, MAX_LINE_LEN, file) == NULL)
+      line[0] = '\0';
 
-    if (line[strlen(line) - 1] == '\n')
+    if (strlen(line) > 0 && line[strlen(line) - 1] == '\n')
       line[strlen(line) - 1] = '\0';
 
     for (line_ptr = line; *line_ptr; line_ptr++)
index 9ed5ac3dd740fec974363087b5310ee970e1bde8..f03abf1e014abbb3c48d95f06b0117924c001396 100644 (file)
@@ -65,7 +65,7 @@ int sound_thread(void)
 {
   int audio_fd; /* file descriptor of /dev/audio or -1 if not open */
   int audio_format;
-  int sample_rate;
+  // int sample_rate;
   int fragment_size;
   unsigned char *audio_buffer; /* actual buffer pumped to /dev/audio */
   short *mix_buffer;
@@ -80,7 +80,7 @@ int sound_thread(void)
 
   audio_fd = -1;
   audio_format = AUDIO_ULAW; /* defaults for non-OSS /dev/audio */
-  sample_rate = 8000;
+  // sample_rate = 8000;
   fragment_size = 256;
   audio_buffer = 0;
   mix_buffer = 0;
@@ -242,7 +242,7 @@ int sound_thread(void)
        goto reset;
       }
 
-      sample_rate = i;
+      // sample_rate = i;
       if (ioctl(audio_fd, SNDCTL_DSP_GETBLKSIZE, &i) == -1)
       {
        Error(ERR_WARN, "unable to get block size in sound thread");
index 4c94b7784985f37b466864f8f8bbe2345fe4106b..60dbcf068c20e9d84a29a6d4de15356d1ce15892 100644 (file)
@@ -1193,7 +1193,8 @@ boolean getFileChunk(FILE *file, char *chunk_name, int *chunk_size,
   const int chunk_name_length = 4;
 
   /* read chunk name */
-  fgets(chunk_name, chunk_name_length + 1, file);
+  if (fgets(chunk_name, chunk_name_length + 1, file) == NULL)
+    return FALSE;
 
   if (chunk_size != NULL)
   {
index 0d7ed67cf8255c8fdd3cd5ac8aafb399097bfe44..ff42562a19da8ce3249efbfaea7ab9ab6fe3807d 100644 (file)
@@ -19,6 +19,7 @@
 #include <dirent.h>
 #include <signal.h>
 #include <math.h>
+#include <errno.h>
 
 #include "platform.h"
 
@@ -1152,7 +1153,7 @@ static void Mixer_Main_DSP()
 
   for (i = 0; i < audio.num_channels; i++)
   {
-    void *sample_ptr;
+    // void *sample_ptr;
     int sample_len;
     int sample_pos;
     int sample_size;
@@ -1167,7 +1168,7 @@ static void Mixer_Main_DSP()
     }
 
     /* pointer, lenght and actual playing position of sound sample */
-    sample_ptr = mixer[i].data_ptr;
+    // sample_ptr = mixer[i].data_ptr;
     sample_len = mixer[i].data_len;
     sample_pos = mixer[i].playing_pos;
     sample_size = MIN(max_sample_size, sample_len - sample_pos);
@@ -1265,7 +1266,8 @@ static void Mixer_Main_DSP()
   }
 
   /* finally play the sound fragment */
-  write(audio.device_fd, playing_buffer, fragment_size);
+  if (write(audio.device_fd, playing_buffer, fragment_size) == -1)
+    Error(ERR_WARN, "write() failed; %s", strerror(errno));
 
   if (!mixer_active_channels)
     CloseAudioDevice(&audio.device_fd);
index 75d882b494a7d7b182e91be422ab59706a31934c..434d3c93162b159d6410b9478c3cc7d5360edd77 100644 (file)
 /* program information and versioning definitions */
 #define PROGRAM_VERSION_MAJOR          3
 #define PROGRAM_VERSION_MINOR          3
-#define PROGRAM_VERSION_PATCH          0
-#define PROGRAM_VERSION_BUILD          2
+#define PROGRAM_VERSION_PATCH          1
+#define PROGRAM_VERSION_BUILD          0
 
 #define PROGRAM_TITLE_STRING           "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING          "Holger Schemel"
index 4a83492304dc2e2ee5183e44276309fe90a2cb01..b895a30318a93172e3d0284e7d27a4bf492e7702 100644 (file)
@@ -97,7 +97,8 @@ static void flushuser(struct NetworkServerPlayerInfo *player)
 #if defined(TARGET_SDL)
     SDLNet_TCP_Send(player->fd, player->writbuffer, player->nwrite);
 #else
-    write(player->fd, player->writbuffer, player->nwrite);
+    if (write(player->fd, player->writbuffer, player->nwrite) == -1)
+      Error(ERR_WARN, "write() failed; %s", strerror(errno));
 #endif
     player->nwrite = 0;
   }
@@ -586,7 +587,8 @@ void NetworkServer(int port, int serveronly)
     setsid();
     if (fork())
       exit(0);
-    chdir("/");
+    if (chdir("/") == -1)
+      Error(ERR_WARN, "chdir() failed; %s", strerror(errno));
 
     /* open a fake stdin, stdout, stderr, just in case */
     open("/dev/null", O_RDONLY);
index 9c149138113f6bf8bc41b29d73c504458a41bf77..b13e4c9a17f78943a7391c0fb5a73b39d016bc33 100644 (file)
@@ -87,7 +87,8 @@ static void SendBufferToServer(int size)
 #if defined(TARGET_SDL)
   SDLNet_TCP_Send(sfd, writbuffer, nwrite);
 #else
-  write(sfd, writbuffer, nwrite);
+  if (write(sfd, writbuffer, nwrite) == -1)
+    Error(ERR_WARN, "write() failed; %s", strerror(errno));
 #endif
   nwrite = 0;
 }