[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