rnd-20030907-2-src
authorHolger Schemel <info@artsoft.org>
Sun, 7 Sep 2003 19:17:29 +0000 (21:17 +0200)
committerHolger Schemel <info@artsoft.org>
Sat, 30 Aug 2014 08:43:42 +0000 (10:43 +0200)
2003-09-07 src/libgame/misc.c
* added support for loading various music formats through SDL_mixer
2003-09-06 (various source files)
* fixed several nasty bugs that may have caused crashes on some systems
* added envelope content which gets displayed when collecting envelope
* added multiple change event pages for custom elements

CHANGES
ChangeLog
src/conftime.h
src/libgame/misc.c

diff --git a/CHANGES b/CHANGES
index e57b06e90501acaaa2f81ca365ec39209c4b8e77..974eff7c6047d83a8dd38dbeac8eebb019b17db2 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,10 @@ Release Version 3.0.3 [?? ??? ????]
        - fixed problem with setting mouse cursor in SDL version in fullscreen
        - fixed problem with flickering when drawing toon animations
        - fixed problem with player animation when snapping and moving
+       - fixed several nasty bugs that may have caused crashes on some systems
+       - added envelope content which gets displayed when collecting envelope
+       - added multiple change event pages for custom elements
+       - added support for loading various music formats through SDL_mixer
 
 Release Version 3.0.2 [22 AUG 2003]
 -----------------------------------
index 72a85505dafe4acfa5ecc1ae44600ba6fcea89e7..7f6dd379e34b09c8265ad94de554a4ab93727d64 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2003-09-07     src/libgame/misc.c
+       * added support for loading various music formats through SDL_mixer
+
+2003-09-06     (various source files)
+       * fixed several nasty bugs that may have caused crashes on some systems
+       * added envelope content which gets displayed when collecting envelope
+       * added multiple change event pages for custom elements
+
 2003-08-24     src/game.c
        * fixed problem with player animation when snapping and moving
 
index f75d70a6b8ae2c7fd7d2411e51a114a13dd3ca1f..c0b0e6b3b796322a12d97fbf2f231f7f8b0f75c3 100644 (file)
@@ -1 +1 @@
-#define COMPILE_DATE_STRING "[2003-09-06 22:18]"
+#define COMPILE_DATE_STRING "[2003-09-07 21:03]"
index 70b2a5d6b802ccbcbe16894a44e5778ced15cfaf..0d5a658e848b0bfef7f41385c9392a8a77ae4e3e 100644 (file)
@@ -1518,37 +1518,77 @@ boolean fileExists(char *filename)
   return (access(filename, F_OK) == 0);
 }
 
-boolean FileIsGraphic(char *filename)
+boolean fileHasPrefix(char *basename, char *prefix)
 {
-  if (strlen(filename) > 4 &&
-      strcmp(&filename[strlen(filename) - 4], ".pcx") == 0)
+  static char *basename_lower = NULL;
+  int basename_length, prefix_length;
+
+  if (basename_lower != NULL)
+    free(basename_lower);
+
+  if (basename == NULL || prefix == NULL)
+    return FALSE;
+
+  basename_lower = getStringToLower(basename);
+  basename_length = strlen(basename_lower);
+  prefix_length = strlen(prefix);
+
+  if (basename_length > prefix_length + 1 &&
+      basename_lower[prefix_length] == '.' &&
+      strncmp(basename_lower, prefix, prefix_length) == 0)
     return TRUE;
 
   return FALSE;
 }
 
-boolean FileIsSound(char *basename)
+boolean fileHasSuffix(char *basename, char *suffix)
 {
-  if (strlen(basename) > 4 &&
-      strcmp(&basename[strlen(basename) - 4], ".wav") == 0)
+  static char *basename_lower = NULL;
+  int basename_length, suffix_length;
+
+  if (basename_lower != NULL)
+    free(basename_lower);
+
+  if (basename == NULL || suffix == NULL)
+    return FALSE;
+
+  basename_lower = getStringToLower(basename);
+  basename_length = strlen(basename_lower);
+  suffix_length = strlen(suffix);
+
+  if (basename_length > suffix_length + 1 &&
+      basename_lower[basename_length - suffix_length - 1] == '.' &&
+      strcmp(&basename_lower[basename_length - suffix_length], suffix) == 0)
     return TRUE;
 
   return FALSE;
 }
 
-boolean FileIsMusic(char *basename)
+boolean FileIsGraphic(char *basename)
 {
-  /* "music" can be a WAV (loop) file or (if compiled with SDL) a MOD file */
+  return fileHasSuffix(basename, "pcx");
+}
 
+boolean FileIsSound(char *basename)
+{
+  return fileHasSuffix(basename, "wav");
+}
+
+boolean FileIsMusic(char *basename)
+{
   if (FileIsSound(basename))
     return TRUE;
 
 #if defined(TARGET_SDL)
-  if (strlen(basename) > 4 &&
-      (strcmp(&basename[strlen(basename) - 4], ".mod") == 0 ||
-       strcmp(&basename[strlen(basename) - 4], ".MOD") == 0 ||
-       strncmp(basename, "mod.", 4) == 0 ||
-       strncmp(basename, "MOD.", 4) == 0))
+  if (fileHasPrefix(basename, "mod") ||
+      fileHasSuffix(basename, "mod") ||
+      fileHasSuffix(basename, "s3m") ||
+      fileHasSuffix(basename, "it") ||
+      fileHasSuffix(basename, "xm") ||
+      fileHasSuffix(basename, "midi") ||
+      fileHasSuffix(basename, "mid") ||
+      fileHasSuffix(basename, "mp3") ||
+      fileHasSuffix(basename, "ogg"))
     return TRUE;
 #endif