Added AUTO option for music. Reorganised music for easier scanning.

This commit is contained in:
Steve 2016-03-03 16:16:12 +00:00
parent 92a9cd7ce6
commit c8dd06dcdc
66 changed files with 158 additions and 102 deletions

View File

@ -9,7 +9,7 @@ vpath %.h $(SEARCHPATH)
DEPS += defs.h structs.h
OBJS += ai.o
OBJS += background.o battle.o bullets.o
OBJS += battle.o bullets.o
OBJS += capitalShips.o challengeHome.o challenges.o cJSON.o
OBJS += debris.o dev.o draw.o
OBJS += effects.o entities.o extractionPoint.o
@ -22,7 +22,7 @@ OBJS += main.o messageBox.o mission.o missionInfo.o modalDialog.o
OBJS += objectives.o options.o
OBJS += player.o
OBJS += quadtree.o
OBJS += radar.o rope.o
OBJS += radar.o resources.o rope.o
OBJS += save.o script.o sound.o starfield.o starSystems.o stats.o
OBJS += testMission.o textures.o text.o title.o transition.o
OBJS += util.o

View File

@ -3,7 +3,7 @@
"description" : "Destroy all Darts",
"background" : "AUTO",
"planet" : "AUTO",
"music" : "",
"music" : "AUTO",
"player" : {
"type" : "Nymph",
"side" : "SIDE_ALLIES",

View File

@ -3,7 +3,7 @@
"description" : "Destroy all Darts",
"background" : "AUTO",
"planet" : "AUTO",
"music" : "",
"music" : "AUTO",
"player" : {
"type" : "Nymph",
"side" : "SIDE_ALLIES",

View File

@ -3,7 +3,7 @@
"description" : "Destroy all Darts",
"background" : "AUTO",
"planet" : "AUTO",
"music" : "",
"music" : "AUTO",
"player" : {
"type" : "Nymph",
"side" : "SIDE_ALLIES",

View File

@ -3,7 +3,7 @@
"description" : "Destroy all Lynxes",
"background" : "AUTO",
"planet" : "AUTO",
"music" : "",
"music" : "AUTO",
"player" : {
"type" : "Ray",
"side" : "SIDE_ALLIES",

View File

@ -3,7 +3,7 @@
"description" : "Disable all targets",
"background" : "AUTO",
"planet" : "AUTO",
"music" : "",
"music" : "AUTO",
"player" : {
"type" : "Hyena-A",
"side" : "SIDE_ALLIES",

View File

@ -3,7 +3,7 @@
"description" : "60 second battle",
"background" : "AUTO",
"planet" : "AUTO",
"music" : "",
"music" : "AUTO",
"player" : {
"type" : "Hammerhead",
"side" : "SIDE_ALLIES",

View File

@ -4,7 +4,7 @@
"requires" : 8,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/torelli.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 13,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/torelli.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 4,
"background" : "gfx/backgrounds/background04.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"epic" : {
"fighterLimit" : 12
},

View File

@ -4,7 +4,7 @@
"requires" : 12,
"background" : "gfx/backgrounds/background04.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 18,
"background" : "gfx/backgrounds/background04.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 2,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/mythos.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 4,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/mythos.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"epic" : {
"fighterLimit" : 12
},

View File

@ -4,7 +4,7 @@
"requires" : 8,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/mythos.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"epic" : {
"fighterLimit" : 12
},

View File

@ -4,7 +4,7 @@
"requires" : 3,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/determination.mp3",
"music" : "music/battle/determination.mp3",
"objectives" : [
{
"description" : "Retrieve all packages",

View File

@ -4,7 +4,7 @@
"background" : "gfx/backgrounds/background03.jpg",
"requires" : 4,
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/determination.mp3",
"music" : "music/battle/determination.mp3",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 12,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/determination.mp3",
"music" : "music/battle/determination.mp3",
"manualComplete" : 1,
"player" : {
"pilot" : "Lt. Cdr. Daniel Carr",

View File

@ -4,7 +4,7 @@
"requires" : 17,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/track-4.mp3",
"music" : "music/battle/track-4.mp3",
"manualComplete" : 1,
"player" : {
"pilot" : "Lt. Cdr. Daniel Carr",

View File

@ -4,7 +4,7 @@
"requires" : 13,
"background" : "gfx/backgrounds/background01.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/track-3.mp3",
"music" : "music/battle/track-3.mp3",
"objectives" : [
{
"description" : "Destroy incoming bombers",

View File

@ -4,7 +4,7 @@
"requires" : 18,
"background" : "gfx/backgrounds/background01.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"epic" : {
"fighterLimit" : 12
},

View File

@ -4,7 +4,7 @@
"requires" : 19,
"background" : "gfx/backgrounds/background01.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"objectives" : [
{
"description" : "Destroy munitions transports",

View File

@ -4,7 +4,7 @@
"requires" : 21,
"background" : "gfx/backgrounds/background01.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/heroism.ogg",
"music" : "music/battle/heroism.ogg",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 26,
"background" : "gfx/backgrounds/background01.jpg",
"planet" : "gfx/planets/bluePlanet.png",
"music" : "music/DST-RailJet-LongSeamlessLoop.ogg",
"music" : "music/battle/DST-RailJet-LongSeamlessLoop.ogg",
"epic" : {
"fighterLimit" : 12
},

View File

@ -4,7 +4,7 @@
"requires" : 28,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/spirit.png",
"music" : "music/InnerCore_Low.ogg",
"music" : "music/battle/InnerCore_Low.ogg",
"player" : {
"type" : "TAF",
"pilot" : "",

View File

@ -3,7 +3,7 @@
"description" : "A simple test flight. Get used to piloting your fighter, without threat of attack or any other dangers to face. There are no objectives to complete in this mission, so you may quit it at any time and move on to the next one.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"player" : {
"type" : "TAF",
"side" : "SIDE_ALLIES",

View File

@ -3,7 +3,7 @@
"description" : "Practice using your fighter's weapons against a stationary target.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"objectives" : [
{
"description" : "Destroy Dart",

View File

@ -3,7 +3,7 @@
"description" : "Most targets you face in the field will be moving. This course gives you the chance to practice taking down an enemy that moves around.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"objectives" : [
{
"description" : "Eliminate Dart",

View File

@ -3,7 +3,7 @@
"description" : "Face off against an opponent that is armed. The enemy in this course is a Dart, kitted out with twin particle cannons. It shouldn't prove too difficult a challenge.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"objectives" : [
{
"description" : "Eliminate Dart",

View File

@ -3,7 +3,7 @@
"description" : "Practice using your ECM in the next encounter. The Dart here is equipped with missiles, which will home in on you. You can thwart these attacks by careful use of your ECM. Once you are done practicing, you can destroy the Dart and move on.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"objectives" : [
{
"description" : "Eliminate Dart",

View File

@ -3,7 +3,7 @@
"description" : "Use your mag cannons to disable the enemy Dart. Disabling enemy craft and bringing the target in alive is sometimes an important step in securing lasting victory.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"objectives" : [
{
"description" : "Disable Dart",

View File

@ -3,7 +3,7 @@
"description" : "Battle along side two team mates to take on 3 enemy fighters.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"objectives" : [
{
"description" : "Eliminate Darts",

View File

@ -3,7 +3,7 @@
"description" : "Take on three enemy targets single handedly. Once again, these are Darts equipped with simple particle cannons. A single TAF should not find itself outclassed here, so long as the enemy are not allowed to gain the upper hand.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/earth.png",
"music" : "music/Battle in the winter.mp3",
"music" : "music/battle/Battle in the winter.mp3",
"objectives" : [
{
"description" : "Eliminate Darts",

View File

@ -3,7 +3,7 @@
"description" : "The Pandoran's push in to Independent space has led to a surge in pirate activity along the Confederation border. The threat needs to be dealt with immediately, starting with cutting back on the enemy presense at Temper.",
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/spirit.png",
"music" : "music/battleThemeA.mp3",
"music" : "music/battle/battleThemeA.mp3",
"objectives" : [
{
"description" : "Eliminate Darts",

View File

@ -4,7 +4,7 @@
"requires" : 1,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/spirit.png",
"music" : "music/battleThemeA.mp3",
"music" : "music/battle/battleThemeA.mp3",
"objectives" : [
{
"description" : "Eliminate Darts",

View File

@ -4,7 +4,7 @@
"requires" : 3,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/spirit.png",
"music" : "music/battleThemeA.mp3",
"music" : "music/battle/battleThemeA.mp3",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 5,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/spirit.png",
"music" : "music/battleThemeA.mp3",
"music" : "music/battle/battleThemeA.mp3",
"objectives" : [
{
"description" : "Eliminate pirate leaders",

View File

@ -4,7 +4,7 @@
"requires" : 8,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/spirit.png",
"music" : "music/battleThemeA.mp3",
"music" : "music/battle/battleThemeA.mp3",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 3,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/oracleIX.png",
"music" : "music/determination.mp3",
"music" : "music/battle/determination.mp3",
"objectives" : [
{
"description" : "Rescue all civilians",

View File

@ -4,7 +4,7 @@
"requires" : 8,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/oracleIX.png",
"music" : "music/determination.mp3",
"music" : "music/battle/determination.mp3",
"objectives" : [
{
"description" : "Rescue all civilians",

View File

@ -4,7 +4,7 @@
"requires" : 8,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/oracleIX.png",
"music" : "music/determination.mp3",
"music" : "music/battle/determination.mp3",
"objectives" : [
{
"description" : "Rescue all civilians",

View File

@ -4,7 +4,7 @@
"requires" : 13,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/oracleIX.png",
"music" : "music/determination.mp3",
"music" : "music/battle/determination.mp3",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -4,7 +4,7 @@
"requires" : 22,
"background" : "gfx/backgrounds/background03.jpg",
"planet" : "gfx/planets/oracleIX.png",
"music" : "music/track-4.mp3",
"music" : "music/battle/track-4.mp3",
"manualComplete" : 1,
"objectives" : [
{

View File

@ -99,7 +99,7 @@ void initChallengeHome(void)
endSectionTransition();
playMusic("music/covert_operations.mp3");
playMusic("music/main/covert_operations.mp3");
}
static void unlockChallenges(void)

View File

@ -20,6 +20,23 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "draw.h"
static PointF backgroundPoint[4];
void initBackground(void)
{
backgroundPoint[0].x = -SCREEN_WIDTH / 2;
backgroundPoint[0].y = -SCREEN_HEIGHT / 2;
backgroundPoint[1].x = SCREEN_WIDTH / 2;
backgroundPoint[1].y = -SCREEN_HEIGHT / 2;
backgroundPoint[2].x = -SCREEN_WIDTH / 2;
backgroundPoint[2].y = SCREEN_HEIGHT / 2;
backgroundPoint[3].x = SCREEN_WIDTH / 2;
backgroundPoint[3].y = SCREEN_HEIGHT / 2;
}
void prepareScene(void)
{
SDL_SetRenderTarget(app.renderer, app.backBuffer);
@ -125,6 +142,47 @@ void drawCircle(int cx, int cy, int radius, int r, int g, int b, int a)
SDL_SetRenderDrawBlendMode(app.renderer, SDL_BLENDMODE_NONE);
}
void scrollBackground(float x, float y)
{
int i;
for (i = 0 ; i < 4 ; i++)
{
backgroundPoint[i].x += x;
backgroundPoint[i].y += y;
if (backgroundPoint[i].x < 0)
{
backgroundPoint[i].x += (SCREEN_WIDTH * 2);
}
if (backgroundPoint[i].x >= SCREEN_WIDTH)
{
backgroundPoint[i].x -= (SCREEN_WIDTH * 2);
}
if (backgroundPoint[i].y < 0)
{
backgroundPoint[i].y += (SCREEN_HEIGHT * 2);
}
if (backgroundPoint[i].y >= SCREEN_HEIGHT)
{
backgroundPoint[i].y -= (SCREEN_HEIGHT * 2);
}
}
}
void drawBackground(SDL_Texture *texture)
{
int i;
for (i = 0 ; i < 4 ; i++)
{
blitScaled(texture, backgroundPoint[i].x, backgroundPoint[i].y, SCREEN_WIDTH, SCREEN_HEIGHT);
}
}
void saveScreenshot(void)
{
static int i = 0;

View File

@ -113,7 +113,7 @@ void initGalacticMap(void)
endSectionTransition();
playMusic("music/Pressure.ogg");
playMusic("music/main/Pressure.ogg");
}
static void updatePandoranAdvance(void)

View File

@ -32,6 +32,7 @@ static char **toTypeArray(char *types, int *numTypes);
static void loadEpicData(cJSON *node);
static char *getAutoBackground(char *filename);
static char *getAutoPlanet(char *filename);
static char *getAutoMusic(char *filename);
Mission *loadMissionMeta(char *filename)
{
@ -146,8 +147,6 @@ void loadMission(char *filename)
loadLocations(cJSON_GetObjectItem(root, "locations"));
STRNCPY(music, cJSON_GetObjectItem(root, "music")->valuestring, MAX_DESCRIPTION_LENGTH);
if (cJSON_GetObjectItem(root, "epic"))
{
loadEpicData(cJSON_GetObjectItem(root, "epic"));
@ -165,7 +164,13 @@ void loadMission(char *filename)
initScript(cJSON_GetObjectItem(root, "script"));
/* planet and background loading must come last, so AUTO works properly */
/* music, planet, and background loading must come last, so AUTO works properly */
STRNCPY(music, cJSON_GetObjectItem(root, "music")->valuestring, MAX_DESCRIPTION_LENGTH);
if (strcmp(music, "AUTO") == 0)
{
STRNCPY(music, getAutoMusic(filename), MAX_DESCRIPTION_LENGTH);
}
background = cJSON_GetObjectItem(root, "background")->valuestring;
if (strcmp(background, "AUTO") == 0)
@ -251,6 +256,22 @@ static char *getAutoPlanet(char *filename)
return getPlanetTextureName(hash);
}
static char *getAutoMusic(char *filename)
{
int hash;
if (!game.currentMission->challengeData.isChallenge)
{
hash = hashcode(game.selectedStarSystem);
}
else
{
hash = hashcode(filename);
}
return getMusicFilename(hash);
}
void completeMission(void)
{
if (battle.status == MS_IN_PROGRESS)

View File

@ -53,6 +53,7 @@ extern void updateStarSystemMissions(void);
extern void updateChallengeMissions(void);
extern char *getBackgroundTextureName(int n);
extern char *getPlanetTextureName(int n);
extern char *getMusicFilename(int n);
extern Battle battle;
extern Entity *player;

View File

@ -88,7 +88,7 @@ void initTitle(void)
endSectionTransition();
playMusic("music/Rise of spirit.ogg");
playMusic("music/main/Rise of spirit.ogg");
}
static void initFighters(void)

View File

@ -121,6 +121,7 @@ void initGameSystem(void)
initFonts,
initInput,
initLookups,
initResources,
initSounds,
initWidgets,
initGame,
@ -292,7 +293,7 @@ void cleanup(void)
destroyWidgets();
destroyBackground();
destroyResources();
TTF_Quit();

View File

@ -48,6 +48,7 @@ extern void initStarSystems(void);
extern void initChallenges(void);
extern void initWidgets(void);
extern void initBackground(void);
extern void initResources(void);
extern void destroyLookups(void);
extern void destroyFonts(void);
extern void destroySounds(void);
@ -61,7 +62,7 @@ extern void destroyBattle(void);
extern void destroyTextures(void);
extern void destroyGalacticMap(void);
extern void destroyWidgets(void);
extern void destroyBackground(void);
extern void destroyResources(void);
extern void expireTexts(int all);
extern void initInput(void);
extern void initModalDialog(void);

View File

@ -18,20 +18,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "background.h"
#include "resources.h"
static PointF backgroundPoint[4];
char **backgrounds;
char **planets;
char **musicFiles;
int numBackgrounds;
int numPlanets;
int numMusicFiles;
void initBackground(void)
void initResources(void)
{
char **filenames;
int i;
numBackgrounds = numPlanets = 0;
numBackgrounds = numPlanets = numMusicFiles = 0;
filenames = getFileList(getFileLocation("gfx/backgrounds"), &numBackgrounds);
backgrounds = malloc(sizeof(char*) * numBackgrounds);
@ -41,6 +42,8 @@ void initBackground(void)
backgrounds[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH);
sprintf(backgrounds[i], "gfx/backgrounds/%s", filenames[i]);
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "'%s' added to AUTO resources list", filenames[i]);
free(filenames[i]);
}
@ -54,63 +57,28 @@ void initBackground(void)
planets[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH);
sprintf(planets[i], "gfx/planets/%s", filenames[i]);
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "'%s' added to AUTO resources list", filenames[i]);
free(filenames[i]);
}
free(filenames);
backgroundPoint[0].x = -SCREEN_WIDTH / 2;
backgroundPoint[0].y = -SCREEN_HEIGHT / 2;
filenames = getFileList(getFileLocation("music/battle/"), &numMusicFiles);
backgroundPoint[1].x = SCREEN_WIDTH / 2;
backgroundPoint[1].y = -SCREEN_HEIGHT / 2;
musicFiles = malloc(sizeof(char*) * numMusicFiles);
backgroundPoint[2].x = -SCREEN_WIDTH / 2;
backgroundPoint[2].y = SCREEN_HEIGHT / 2;
backgroundPoint[3].x = SCREEN_WIDTH / 2;
backgroundPoint[3].y = SCREEN_HEIGHT / 2;
}
void scrollBackground(float x, float y)
{
int i;
for (i = 0 ; i < 4 ; i++)
for (i = 0 ; i < numMusicFiles ; i++)
{
backgroundPoint[i].x += x;
backgroundPoint[i].y += y;
musicFiles[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH);
sprintf(musicFiles[i], "music/battle/%s", filenames[i]);
if (backgroundPoint[i].x < 0)
{
backgroundPoint[i].x += (SCREEN_WIDTH * 2);
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "'%s' added to AUTO resources list", filenames[i]);
free(filenames[i]);
}
if (backgroundPoint[i].x >= SCREEN_WIDTH)
{
backgroundPoint[i].x -= (SCREEN_WIDTH * 2);
}
if (backgroundPoint[i].y < 0)
{
backgroundPoint[i].y += (SCREEN_HEIGHT * 2);
}
if (backgroundPoint[i].y >= SCREEN_HEIGHT)
{
backgroundPoint[i].y -= (SCREEN_HEIGHT * 2);
}
}
}
void drawBackground(SDL_Texture *texture)
{
int i;
for (i = 0 ; i < 4 ; i++)
{
blitScaled(texture, backgroundPoint[i].x, backgroundPoint[i].y, SCREEN_WIDTH, SCREEN_HEIGHT);
}
free(filenames);
}
char *getBackgroundTextureName(int i)
@ -123,8 +91,14 @@ char *getPlanetTextureName(int i)
return planets[i % numPlanets];
}
void destroyBackground(void)
char *getMusicFilename(int i)
{
return musicFiles[i % numMusicFiles];
}
void destroyResources(void)
{
free(backgrounds);
free(planets);
free(musicFiles);
}