[Tux4kids-commits] r1410 - in branches/commonification/tuxtype/trunk: data/images src

Bolesław Kulbabiński bolekk-guest at alioth.debian.org
Tue Aug 11 01:03:12 UTC 2009


Author: bolekk-guest
Date: 2009-08-11 01:03:12 +0000 (Tue, 11 Aug 2009)
New Revision: 1410

Modified:
   branches/commonification/tuxtype/trunk/data/images/num_0.png
   branches/commonification/tuxtype/trunk/data/images/num_1.png
   branches/commonification/tuxtype/trunk/data/images/num_2.png
   branches/commonification/tuxtype/trunk/data/images/num_3.png
   branches/commonification/tuxtype/trunk/data/images/num_4.png
   branches/commonification/tuxtype/trunk/data/images/num_5.png
   branches/commonification/tuxtype/trunk/data/images/num_6.png
   branches/commonification/tuxtype/trunk/data/images/num_7.png
   branches/commonification/tuxtype/trunk/data/images/num_8.png
   branches/commonification/tuxtype/trunk/data/images/num_9.png
   branches/commonification/tuxtype/trunk/src/fileops_media.c
   branches/commonification/tuxtype/trunk/src/fileops_media.h
   branches/commonification/tuxtype/trunk/src/main.c
   branches/commonification/tuxtype/trunk/src/playgame.c
Log:
moved number graphics into fileops_media

Modified: branches/commonification/tuxtype/trunk/data/images/num_0.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_1.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_2.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_3.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_4.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_5.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_6.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_7.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_8.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/data/images/num_9.png
===================================================================
(Binary files differ)

Modified: branches/commonification/tuxtype/trunk/src/fileops_media.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/fileops_media.c	2009-08-11 00:03:45 UTC (rev 1409)
+++ branches/commonification/tuxtype/trunk/src/fileops_media.c	2009-08-11 01:03:12 UTC (rev 1410)
@@ -2,8 +2,10 @@
 #include "globals.h"
 #include "funcs.h"
 
-Mix_Chunk* sounds[NUM_SOUNDS] = {NULL};
-Mix_Music* musics[NUM_MUSICS] = {NULL};
+static SDL_Surface* images[NUM_IMGS] = {NULL};
+static sprite* sprites[NUM_SPRITES] = {NULL};
+Mix_Chunk* sounds[NUM_SOUNDS];
+Mix_Music* musics[NUM_MUSICS];
 
 static char fn[1024];
 
@@ -30,6 +32,23 @@
   "/images/backgrounds/4.jpg"
 };
 
+static char* image_filenames[NUM_SOUNDS] = {
+  "/images/num_0.png",
+  "/images/num_1.png",
+  "/images/num_2.png",
+  "/images/num_3.png",
+  "/images/num_4.png",
+  "/images/num_5.png",
+  "/images/num_6.png",
+  "/images/num_7.png",
+  "/images/num_8.png",
+  "/images/num_9.png"
+};
+
+static char* sprite_filenames[NUM_SPRITES] = {
+  "/images/num_"
+};
+
 static char* sound_filenames[NUM_SOUNDS] = {
   "/sounds/harp.wav",
   "/sounds/pop.wav",
@@ -150,6 +169,84 @@
 }
 
 
+
+int SetImage(int id, SDL_Rect* rect)
+{
+  if(images[id])
+    SDL_FreeSurface(images[id]);
+  images[id] = NULL;
+
+  if(!settings.use_english)
+    sprintf(fn, "%s%s", settings.theme_data_path, image_filenames[id]);
+
+  if(!CheckFile(fn))
+    sprintf(fn, "%s%s", settings.default_data_path, image_filenames[id]);
+
+  if(rect)
+    images[id] = LoadImageOfBoundingBox(fn, IMG_ALPHA, rect->w, rect->h);
+  else
+    images[id] = LoadImage(fn, IMG_ALPHA);
+
+  if(NULL == images[id])
+  {
+    fprintf(stderr,
+            "\nError: I couldn't load a graphics file:\n"
+            "%s\n"
+            "The Simple DirectMedia error that occured was:\n"
+            "%s\n\n", image_filenames[id], SDL_GetError());
+    return 0;
+  }
+
+  return 1;
+}
+
+int SetSprite(int id, SDL_Rect* rect)
+{
+  if(sprites[id])
+    FreeSprite(sprites[id]);
+  sprites[id] = NULL;
+
+  if(!settings.use_english)
+    sprintf(fn, "%s%s", settings.theme_data_path, sprite_filenames[id]);
+
+  if(rect)
+    sprites[id] = LoadSpriteOfBoundingBox(fn, IMG_ALPHA, rect->w, rect->h);
+  else
+    sprites[id] = LoadSprite(fn, IMG_ALPHA);
+
+  if(NULL == sprites[id])
+  {
+    sprintf(fn, "%s%s", settings.default_data_path, sprite_filenames[id]);
+
+    if(rect)
+      sprites[id] = LoadSpriteOfBoundingBox(fn, IMG_ALPHA, rect->w, rect->h);
+    else
+      sprites[id] = LoadSprite(fn, IMG_ALPHA);
+  }
+
+  if(NULL == sprites[id])
+  {
+    fprintf(stderr,
+            "\nError: I couldn't load a graphics file:\n"
+            "%s\n"
+            "The Simple DirectMedia error that occured was:\n"
+            "%s\n\n", sprite_filenames[id], SDL_GetError());
+    return 0;
+  }
+
+  return 1;
+}
+
+SDL_Surface* GetImage(int id)
+{
+  return images[id];
+}
+
+sprite* GetSprite(int id)
+{
+  return sprites[id];
+}
+
 int LoadSoundData()
 {
   int i;
@@ -208,10 +305,26 @@
   return 1;
 }
 
-void UnloadSoundData()
+void UnloadData()
 {
   int i;
 
+  FreeBothBkgds();
+
+  for (i = 0; i < NUM_IMGS; i++)
+  {
+    if (images[i])
+      SDL_FreeSurface(images[i]);
+    images[i] = NULL;
+  }
+
+  for (i = 0; i < NUM_SPRITES; i++)
+  {
+    if (sprites[i])
+      FreeSprite(sprites[i]);
+    sprites[i] = NULL;
+  }
+
   for (i = 0; i < NUM_SOUNDS; i++)
   {
     if (sounds[i])

Modified: branches/commonification/tuxtype/trunk/src/fileops_media.h
===================================================================
--- branches/commonification/tuxtype/trunk/src/fileops_media.h	2009-08-11 00:03:45 UTC (rev 1409)
+++ branches/commonification/tuxtype/trunk/src/fileops_media.h	2009-08-11 01:03:12 UTC (rev 1410)
@@ -1,6 +1,8 @@
 #ifndef FILEOPS_MEDIA_H
 #define FILEOPS_MEDIA_H
 
+#include "globals.h"
+
 #include "SDL.h"
 #include "SDL_mixer.h"
 
@@ -29,6 +31,25 @@
 };
 
 enum {
+  IMG_NUM_0,
+  IMG_NUM_1,
+  IMG_NUM_2,
+  IMG_NUM_3,
+  IMG_NUM_4,
+  IMG_NUM_5,
+  IMG_NUM_6,
+  IMG_NUM_7,
+  IMG_NUM_8,
+  IMG_NUM_9,
+  NUM_IMGS
+};
+
+enum {
+  ANIM_NUMS,
+  NUM_SPRITES
+};
+
+enum {
   SND_HARP,
   SND_POP,
   SND_LASER,
@@ -60,11 +81,16 @@
   NUM_MUSICS
 };
 
-extern Mix_Chunk* sounds[NUM_SOUNDS];
-extern Mix_Music* musics[NUM_MUSICS];
+extern Mix_Chunk* sounds[];
+extern Mix_Music* musics[];
 
+int          SetImage(int id, SDL_Rect* rect);
+int          SetSprite(int id, SDL_Rect* rect);
+SDL_Surface* GetImage(int id);
+sprite*      GetSprite(int id);
+
 int          LoadSoundData();
-void         UnloadSoundData();
+void         UnloadData();
 
 int          LoadBothBkgds(int id);
 SDL_Surface* CurrentBkgd(void);

Modified: branches/commonification/tuxtype/trunk/src/main.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/main.c	2009-08-11 00:03:45 UTC (rev 1409)
+++ branches/commonification/tuxtype/trunk/src/main.c	2009-08-11 01:03:12 UTC (rev 1410)
@@ -270,7 +270,7 @@
 
   SaveSettings();
 
-  UnloadSoundData();
+  UnloadData();
   /* Release heap: */
   Cleanup();
 

Modified: branches/commonification/tuxtype/trunk/src/playgame.c
===================================================================
--- branches/commonification/tuxtype/trunk/src/playgame.c	2009-08-11 00:03:45 UTC (rev 1409)
+++ branches/commonification/tuxtype/trunk/src/playgame.c	2009-08-11 01:03:12 UTC (rev 1410)
@@ -76,17 +76,22 @@
 
 
 /************************************************************************/
-/*                                                                      */ 
+/*                                                                      */
 /*         "Public" functions (callable throughout program)             */
 /*                                                                      */
 /************************************************************************/
 
+void LoadCascadeMedia()
+{
+  SetSprite(ANIM_NUMS, NULL);
+}
+
+
 /*************************************************************************
 * PlayCascade : This is the main Cascade game loop               *
 *************************************************************************/
 int PlayCascade(int diflevel)
 {
-  char filename[FNLEN];
   int still_playing = 1;
   int playing_level = 1;
   int setup_new_level = 1;
@@ -125,6 +130,7 @@
 
 //	SNOW_init();
 
+  LoadCascadeMedia();
   LoadTuxAnims();
   LoadFishies();
   LoadOthers();
@@ -592,7 +598,6 @@
 static void LoadOthers(void)
 {
 	int i;
-	char filename[FNLEN];
 
 	LOG( "=LoadOthers()\n" );
 	DEBUGCODE(debug_game)
@@ -616,8 +621,7 @@
 
 	number_max_w = 0;
 	for (i = 0; i < NUM_NUMS; i++) {
-		sprintf(filename, "/images/num_%i.png", i);
-		number[i] = LoadImageNoPrefix(filename, IMG_COLORKEY );
+		number[i] = GetSprite(ANIM_NUMS)->frame[i];
 		if (number[i]->w > number_max_w)
 			number_max_w = number[i]->w;
 	}
@@ -838,12 +842,10 @@
       SDL_FreeSurface(level[i]);
     level[i] = NULL;
   }
+
   for (i = 0; i < NUM_NUMS; i++)
-  {
-    if (number[i])
-      SDL_FreeSurface(number[i]);
     number[i] = NULL;
-  }
+
   for (i = 0; i < CONGRATS_FRAMES; i++)
   {
     if (congrats[i])




More information about the Tux4kids-commits mailing list