/*
-Copyright (C) 2004 Parallel Realities
+Copyright (C) 2004-2010 Parallel Realities
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
debug(("User Home = %s\n", userHome));
char dir[PATH_MAX];
- strcpy(dir, "");
+ dir[0] = 0;
- sprintf(dir, "%s/.parallelrealities", userHome);
+ snprintf(dir, sizeof dir, "%s/.parallelrealities", userHome);
if ((mkdir(dir, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH) != 0) && (errno != EEXIST))
{
printf("Couldn't create required directory '%s'", dir);
exit(1);
}
- sprintf(dir, "%s/.parallelrealities/blobwars", userHome);
+ snprintf(dir, sizeof dir, "%s/.parallelrealities/blobwars", userHome);
if ((mkdir(dir, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH) != 0) && (errno != EEXIST))
{
printf("Couldn't create required directory '%s'", dir);
}
char gameSavePath[PATH_MAX];
- sprintf(gameSavePath, "%s/.parallelrealities/blobwars/", userHome);
+ snprintf(gameSavePath, sizeof gameSavePath, "%s/.parallelrealities/blobwars/", userHome);
engine.setUserHome(gameSavePath);
}
#endif
char configPath[PATH_MAX];
- sprintf(configPath, "%sconfig", engine.userHomeDirectory);
+ snprintf(configPath, sizeof configPath, "%sconfig", engine.userHomeDirectory);
debug(("Loading Config from %s\n", configPath));
return true;
}
- fscanf(fp, "%f %d", &version, &release);
+ if (fscanf(fp, "%10f %10d", &version, &release) != 2)
+ {
+ rtn = true;
+ }
debug(("Version = %.2f - Expected %.2f\n", version, VERSION));
debug(("Release = %d - Expected %d\n", release, RELEASE));
rtn = true;
}
- fscanf(fp, "%d %d %d %d %d %d %d", &engine.fullScreen, &game.musicVol, &game.soundVol, &game.output, &game.brightness, &engine.extremeAvailable, &game.gore);
+ if (fscanf(fp, "%10d %10d %10d %10d %10d %10d %10d", &engine.fullScreen, &game.musicVol, &game.soundVol, &game.output, &game.brightness, &engine.extremeAvailable, &game.gore) != 7)
+ {
+ rtn = true;
+ }
fclose(fp);
{
char configPath[PATH_MAX];
- sprintf(configPath, "%sconfig", engine.userHomeDirectory);
+ snprintf(configPath, sizeof configPath, "%sconfig", engine.userHomeDirectory);
FILE *fp = fopen(configPath, "wb");
SDL_mutexP(medalServer.lock);
char connectMessage[1024];
- sprintf(connectMessage, "Contacting Medal Server - %s:%d", MEDAL_SERVER_HOST, MEDAL_SERVER_PORT);
+ snprintf(connectMessage, sizeof connectMessage, "Contacting Medal Server - %s:%d", MEDAL_SERVER_HOST, MEDAL_SERVER_PORT);
graphics.showMedalMessage(-1, connectMessage);
char keyPath[PATH_MAX];
char privateKey[20];
- sprintf(keyPath, "%smedalKey", engine.userHomeDirectory);
+ snprintf(keyPath, sizeof keyPath, "%smedalKey", engine.userHomeDirectory);
debug(("Loading private key from %s\n", keyPath));
return 0;
}
- fscanf(fp, "%s", privateKey);
+ if (fscanf(fp, "%19s", privateKey) != 1)
+ {
+ graphics.showMedalMessage(-1, "Medal Key file corrupt - Online functions disabled");
+ SDL_mutexV(medalServer.lock);
+ fclose(fp);
+ return 0;
+ }
fclose(fp);
#if USEPAK
char tempPath[PATH_MAX];
- sprintf(tempPath, "%sfont.ttf", engine.userHomeDirectory);
+ snprintf(tempPath, sizeof tempPath, "%sfont.ttf", engine.userHomeDirectory);
remove(tempPath);
- SDL_Delay(1000); // wait one second, just to be sure!
-
if (!engine.unpack("data/vera.ttf", PAK_FONT))
{
engine.reportFontFailure();
debug(("Font sizes all loaded!!\n"));
audio.loadSound(SND_CHEAT, "sound/Lock And Load!!!");
- audio.loadSound(SND_HIGHLIGHT, "sound/menu.wav");
- audio.loadSound(SND_SELECT, "sound/select.wav");
+ audio.loadSound(SND_HIGHLIGHT, "sound/menu");
+ audio.loadSound(SND_SELECT, "sound/select");
graphics.medal[0] = graphics.loadImage("gfx/main/medal_bronze_1.png");
graphics.medal[1] = graphics.loadImage("gfx/main/award_star_silver_3.png");
graphics.medal[2] = graphics.loadImage("gfx/main/shield.png");
graphics.medal[3] = graphics.loadImage("gfx/main/ruby.png");
+ graphics.license[0] = graphics.loadImage("gfx/main/cc-by.png", true);
+ graphics.license[1] = graphics.loadImage("gfx/main/cc-by-sa.png", true);
+
SDL_Surface *device = graphics.loadImage("gfx/main/alienDevice.png");
#ifndef SDL_FRAMEWORK
audio.destroy();
debug(("Removing Music...\n"));
- sprintf(tempPath, "%smusic.mod", engine.userHomeDirectory);
+ snprintf(tempPath, sizeof tempPath, "%smusic.mod", engine.userHomeDirectory);
remove(tempPath);
debug(("Freeing Game Info...\n"));
}
debug(("Removing Font File...\n"));
- sprintf(tempPath, "%sfont.ttf", engine.userHomeDirectory);
+ snprintf(tempPath, sizeof tempPath, "%sfont.ttf", engine.userHomeDirectory);
remove(tempPath);
if (SDL_NumJoysticks() > 0)