Some cleanup and tweaks.
Basically removal of warnings + added missing info to the readme. This also removes remaining uses of sprintf (which is dangerous).
This commit is contained in:
parent
cdf555f17b
commit
47d876c15e
19
README.txt
19
README.txt
|
@ -73,7 +73,8 @@ distribution if possible. If you want or need to compile yourself,
|
|||
however, instructions follow.
|
||||
|
||||
Note: Developers compiling the source code from the Git repository,
|
||||
please first see the GENERATING CONFIGURE SCRIPT section below.
|
||||
please first see the GENERATING CONFIGURE SCRIPT AND BUILDING LOCALES
|
||||
section below.
|
||||
|
||||
Project: Starfighter depends on the following libraries to build:
|
||||
|
||||
|
@ -108,12 +109,13 @@ Run "./configure --help" to see all options for compiling.
|
|||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
GENERATING CONFIGURE SCRIPT
|
||||
GENERATING CONFIGURE SCRIPT AND BUILDING LOCALES
|
||||
|
||||
If you contribute to Project: Starfighter's source code, you will need
|
||||
to know how to generate a configure script for compiling the program.
|
||||
NOTE: This is for developers only. End-users simply compiling releases
|
||||
of Starfighter from source can ignore this section.
|
||||
to know how to generate a configure script and build locales needed for
|
||||
compiling the program. NOTE: This is for developers and other people
|
||||
compiling source code taken from the Git repository. End-users simply
|
||||
compiling releases of Starfighter from source can ignore this section.
|
||||
|
||||
The following components are required to generate the configure script:
|
||||
|
||||
|
@ -121,12 +123,17 @@ The following components are required to generate the configure script:
|
|||
* Automake
|
||||
* pkg-config
|
||||
|
||||
And the following is required to build locales:
|
||||
|
||||
* Python
|
||||
|
||||
Once these dependencies are installed, simply do the following from a
|
||||
terminal window:
|
||||
|
||||
autoreconf -vif
|
||||
./locale/build.py
|
||||
|
||||
The arguments are technically optional, but recommended.
|
||||
The arguments to autoreconf are technically optional, but recommended.
|
||||
|
||||
If for some reason you need to remove all of these files from your
|
||||
directory, you can do so via the following command (requires Git):
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
bin_PROGRAMS = starfighter
|
||||
|
||||
if RUN_IN_PLACE
|
||||
starfighter_CPPFLAGS = $(STARFIGHTER_CFLAGS) -Wall
|
||||
starfighter_CPPFLAGS = $(STARFIGHTER_CFLAGS) -Wall -Wformat-truncation=0
|
||||
else
|
||||
starfighter_CPPFLAGS = $(STARFIGHTER_CFLAGS) -DDATADIR=\"$(pkgdatadir)\" -Wall
|
||||
starfighter_CPPFLAGS = $(STARFIGHTER_CFLAGS) -DDATADIR=\"$(pkgdatadir)\" -Wall -Wformat-truncation=0
|
||||
endif
|
||||
|
||||
starfighter_CFLAGS = $(SDL_CFLAGS) $(PANGO_CFLAGS)
|
||||
|
|
|
@ -145,7 +145,7 @@ void engine_showError(int errorId, const char *name)
|
|||
switch(errorId)
|
||||
{
|
||||
case 0:
|
||||
sprintf(string, "%s was not found in the Starfighter data package", name);
|
||||
snprintf(string, STRMAX, "%s was not found in the Starfighter data package", name);
|
||||
screen_renderString(string, -1, 250, FONT_WHITE);
|
||||
screen_renderString("Please try again. If this error persists, contact the authors", -1, 275, FONT_WHITE);
|
||||
screen_renderString("or reinstall the game", -1, 300, FONT_WHITE);
|
||||
|
|
70
src/game.c
70
src/game.c
|
@ -285,7 +285,7 @@ static void game_doCollectables()
|
|||
Collectable *collectable = engine.collectableHead;
|
||||
Collectable *prevCollectable = engine.collectableHead;
|
||||
engine.collectableTail = engine.collectableHead;
|
||||
char temp[40];
|
||||
char temp[STRMAX_SHORT];
|
||||
|
||||
while (collectable->next != NULL)
|
||||
{
|
||||
|
@ -313,20 +313,20 @@ static void game_doCollectables()
|
|||
case P_CASH:
|
||||
game.cash += collectable->value;
|
||||
game.cashEarned += collectable->value;
|
||||
sprintf(temp, "Got $%d ", collectable->value);
|
||||
snprintf(temp, STRMAX_SHORT, "Got $%d ", collectable->value);
|
||||
break;
|
||||
|
||||
case P_ROCKET:
|
||||
LIMIT_ADD(player.ammo[1], collectable->value, 0,
|
||||
game.maxRocketAmmo);
|
||||
if (player.ammo[1] == game.maxRocketAmmo)
|
||||
sprintf(temp, "Rocket Ammo at Maximum");
|
||||
strcpy(temp, "Rocket Ammo at Maximum");
|
||||
else
|
||||
{
|
||||
if (collectable->value > 1)
|
||||
sprintf(temp, "Got %d rockets", collectable->value);
|
||||
snprintf(temp, STRMAX_SHORT, "Got %d rockets", collectable->value);
|
||||
else
|
||||
sprintf(temp, "Got a rocket");
|
||||
strcpy(temp, "Got a rocket");
|
||||
}
|
||||
game.rocketPickups += collectable->value;
|
||||
break;
|
||||
|
@ -334,7 +334,7 @@ static void game_doCollectables()
|
|||
case P_SHIELD:
|
||||
LIMIT_ADD(player.shield, 10, 0, player.maxShield);
|
||||
game.shieldPickups ++;
|
||||
sprintf(temp, "Restored 10 shield points");
|
||||
strcpy(temp, "Restored 10 shield points");
|
||||
break;
|
||||
|
||||
case P_PLASMA_RATE:
|
||||
|
@ -347,11 +347,11 @@ static void game_doCollectables()
|
|||
weapons[W_PLAYER_WEAPON].reload[0] - 2);
|
||||
|
||||
if (weapons[W_PLAYER_WEAPON].reload[0] <= rate2reload[game.maxPlasmaRate])
|
||||
sprintf(temp, "Firing rate already at maximum");
|
||||
strcpy(temp, "Firing rate already at maximum");
|
||||
else
|
||||
{
|
||||
weapons[W_PLAYER_WEAPON].reload[0] -= 2;
|
||||
sprintf(temp, "Firing rate increased");
|
||||
strcpy(temp, "Firing rate increased");
|
||||
}
|
||||
}
|
||||
else if ((game.area != MISN_INTERCEPTION) ||
|
||||
|
@ -362,16 +362,16 @@ static void game_doCollectables()
|
|||
0, game.maxPlasmaAmmo);
|
||||
|
||||
if (weapons[W_PLAYER_WEAPON].reload[0] <= rate2reload[game.maxPlasmaRate])
|
||||
sprintf(temp, "Firing rate already at maximum");
|
||||
strcpy(temp, "Firing rate already at maximum");
|
||||
else
|
||||
{
|
||||
weapons[W_PLAYER_WEAPON].reload[0] -= 2;
|
||||
sprintf(temp, "Firing rate increased");
|
||||
strcpy(temp, "Firing rate increased");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp, "Upgrade failed (no plasma ammo)");
|
||||
strcpy(temp, "Upgrade failed (no plasma ammo)");
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -384,11 +384,11 @@ static void game_doCollectables()
|
|||
game.maxPlasmaOutput, weapons[W_PLAYER_WEAPON].ammo[0] + 1);
|
||||
|
||||
if (weapons[W_PLAYER_WEAPON].ammo[0] >= game.maxPlasmaOutput)
|
||||
sprintf(temp, "Plasma output already at maximum");
|
||||
strcpy(temp, "Plasma output already at maximum");
|
||||
else
|
||||
{
|
||||
weapons[W_PLAYER_WEAPON].ammo[0]++;
|
||||
sprintf(temp, "Plasma output increased");
|
||||
strcpy(temp, "Plasma output increased");
|
||||
}
|
||||
}
|
||||
else if ((game.area != MISN_INTERCEPTION) ||
|
||||
|
@ -399,16 +399,16 @@ static void game_doCollectables()
|
|||
0, game.maxPlasmaAmmo);
|
||||
|
||||
if (weapons[W_PLAYER_WEAPON].ammo[0] >= game.maxPlasmaOutput)
|
||||
sprintf(temp, "Plasma output already at maximum");
|
||||
strcpy(temp, "Plasma output already at maximum");
|
||||
else
|
||||
{
|
||||
weapons[W_PLAYER_WEAPON].ammo[0]++;
|
||||
sprintf(temp, "Plasma output increased");
|
||||
strcpy(temp, "Plasma output increased");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp, "Upgrade failed (no plasma ammo)");
|
||||
strcpy(temp, "Upgrade failed (no plasma ammo)");
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -421,11 +421,11 @@ static void game_doCollectables()
|
|||
game.maxPlasmaDamage, weapons[W_PLAYER_WEAPON].damage + 1);
|
||||
|
||||
if (weapons[W_PLAYER_WEAPON].damage >= game.maxPlasmaDamage)
|
||||
sprintf(temp, "Plasma damage already at maximum");
|
||||
strcpy(temp, "Plasma damage already at maximum");
|
||||
else
|
||||
{
|
||||
weapons[W_PLAYER_WEAPON].damage++;
|
||||
sprintf(temp, "Plasma damage increased");
|
||||
strcpy(temp, "Plasma damage increased");
|
||||
}
|
||||
}
|
||||
else if ((game.area != MISN_INTERCEPTION) ||
|
||||
|
@ -436,16 +436,16 @@ static void game_doCollectables()
|
|||
0, game.maxPlasmaAmmo);
|
||||
|
||||
if (weapons[W_PLAYER_WEAPON].damage >= game.maxPlasmaDamage)
|
||||
sprintf(temp, "Plasma damage already at maximum");
|
||||
strcpy(temp, "Plasma damage already at maximum");
|
||||
else
|
||||
{
|
||||
weapons[W_PLAYER_WEAPON].damage++;
|
||||
sprintf(temp, "Plasma damage increased");
|
||||
strcpy(temp, "Plasma damage increased");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp, "Upgrade failed (no plasma ammo)");
|
||||
strcpy(temp, "Upgrade failed (no plasma ammo)");
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -466,30 +466,30 @@ static void game_doCollectables()
|
|||
weapons[W_PLAYER_WEAPON].reload[0] = rate2reload[5];
|
||||
weapons[W_PLAYER_WEAPON].flags |= WF_SPREAD;
|
||||
|
||||
sprintf(temp, "Picked up a Super Charge!");
|
||||
strcpy(temp, "Picked up a Super Charge!");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp, "Damn! Upgrade failed (no plasma ammo)");
|
||||
strcpy(temp, "Damn! Upgrade failed (no plasma ammo)");
|
||||
}
|
||||
break;
|
||||
|
||||
case P_PLASMA_AMMO:
|
||||
if (player.ammo[0] >= game.maxPlasmaAmmo)
|
||||
sprintf(temp, "Plasma cells already at Maximum");
|
||||
strcpy(temp, "Plasma cells already at Maximum");
|
||||
else
|
||||
{
|
||||
LIMIT_ADD(player.ammo[0], collectable->value,
|
||||
0, game.maxPlasmaAmmo);
|
||||
if (collectable->value > 1)
|
||||
{
|
||||
sprintf(temp, "Got %d plasma cells", collectable->value);
|
||||
snprintf(temp, STRMAX_SHORT, "Got %d plasma cells", collectable->value);
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(temp, "Got a plasma cell");
|
||||
strcpy(temp, "Got a plasma cell");
|
||||
if ((rand() % 25) == 0)
|
||||
sprintf(temp, "Got one whole plasma cell (wahoo!)");
|
||||
strcpy(temp, "Got one whole plasma cell (wahoo!)");
|
||||
}
|
||||
}
|
||||
game.cellPickups += collectable->value;
|
||||
|
@ -501,16 +501,16 @@ static void game_doCollectables()
|
|||
break;
|
||||
|
||||
case P_SLAVES:
|
||||
sprintf(temp, "Rescued %d slaves", collectable->value);
|
||||
snprintf(temp, STRMAX_SHORT, "Rescued %d slaves", collectable->value);
|
||||
game.slavesRescued += collectable->value;
|
||||
break;
|
||||
|
||||
case P_ESCAPEPOD:
|
||||
sprintf(temp, "Picked up an Escape Pod");
|
||||
strcpy(temp, "Picked up an Escape Pod");
|
||||
break;
|
||||
|
||||
case P_ORE:
|
||||
sprintf(temp, "Picked up some Ore");
|
||||
strcpy(temp, "Picked up some Ore");
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1896,7 +1896,7 @@ static void game_doHud()
|
|||
/// timer to use single-digit numbers.
|
||||
/// The ":" can also be replaced just like any text. For example, this would be fine:
|
||||
/// "Time Remaining - %d minutes and %d seconds"
|
||||
sprintf(text, _("Time Remaining - %.2d:%.2d"), engine.minutes, engine.seconds);
|
||||
snprintf(text, STRMAX_SHORT, _("Time Remaining - %.2d:%.2d"), engine.minutes, engine.seconds);
|
||||
gfx_createTextObject(TS_TIME, text, 0, 0, fontColor);
|
||||
screen_blitText(TS_TIME, screen->w / 2 - gfx_textSprites[TS_TIME].image->w / 2, 20);
|
||||
}
|
||||
|
@ -1904,13 +1904,13 @@ static void game_doHud()
|
|||
if (game.area != MISN_INTERCEPTION)
|
||||
{
|
||||
/// "%d" must be retained. It is replaced with the number of mission objectives remaining.
|
||||
sprintf(text, _("Objectives Remaining: %d"), (mission.remainingObjectives1 + mission.remainingObjectives2));
|
||||
snprintf(text, STRMAX_SHORT, _("Objectives Remaining: %d"), (mission.remainingObjectives1 + mission.remainingObjectives2));
|
||||
gfx_createTextObject(TS_OBJECTIVES, text, 0, 0, FONT_WHITE);
|
||||
screen_blitText(TS_OBJECTIVES, screen->w - gfx_textSprites[TS_OBJECTIVES].image->w - 25, 20);
|
||||
}
|
||||
|
||||
/// "%d" must be retained. It is replaced with the player's current total cash.
|
||||
sprintf(text, _("Cash: $%d"), game.cash);
|
||||
snprintf(text, STRMAX_SHORT, _("Cash: $%d"), game.cash);
|
||||
gfx_createTextObject(TS_CASH, text, 0, 0, FONT_WHITE);
|
||||
screen_blitText(TS_CASH, 25, 20);
|
||||
|
||||
|
@ -1947,7 +1947,7 @@ static void game_doHud()
|
|||
if (player.ammo[0] <= 10) fontColor = FONT_RED;
|
||||
}
|
||||
/// "%.3d" must be retained. It is replaced with the amount of plasma ammo.
|
||||
sprintf(text, _("Plasma: %.3d"), player.ammo[0]);
|
||||
snprintf(text, STRMAX_SHORT, _("Plasma: %.3d"), player.ammo[0]);
|
||||
gfx_createTextObject(TS_PLASMA, text, 0, 0, fontColor);
|
||||
screen_blitText(TS_PLASMA, screen->w * 5 / 16, screen->h - 50);
|
||||
|
||||
|
@ -1964,7 +1964,7 @@ static void game_doHud()
|
|||
else
|
||||
{
|
||||
/// "%.2d" must be retained. It is replaced with the amount of rocket ammo.
|
||||
sprintf(text, _("Rockets: %.2d"), player.ammo[1]);
|
||||
snprintf(text, STRMAX_SHORT, _("Rockets: %.2d"), player.ammo[1]);
|
||||
gfx_createTextObject(TS_AMMO, text, 0, 0, FONT_WHITE);
|
||||
}
|
||||
screen_blitText(TS_AMMO, screen->w / 2, screen->h - 50);
|
||||
|
|
|
@ -240,70 +240,70 @@ static void intermission_setStatusLines()
|
|||
|
||||
/// Status Screen text
|
||||
/// Retain "%s" as-is. It is replaced with the current difficulty.
|
||||
sprintf(string, _("Difficulty : %s"), difficulty);
|
||||
snprintf(string, STRMAX_SHORT, _("Difficulty : %s"), difficulty);
|
||||
gfx_createTextObject(TS_STATUS_DIFFICULTY, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of shots fired.
|
||||
sprintf(string, _("Shots Fired : %d"), game.shots);
|
||||
snprintf(string, STRMAX_SHORT, _("Shots Fired : %d"), game.shots);
|
||||
gfx_createTextObject(TS_SHOTS_FIRED, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of hits scored.
|
||||
sprintf(string, _("Hits Scored : %d"), game.hits);
|
||||
snprintf(string, STRMAX_SHORT, _("Hits Scored : %d"), game.hits);
|
||||
gfx_createTextObject(TS_HITS_SCORED, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the firing accuracy as a percentage.
|
||||
/// Note: To use the "%" symbol, you must enter "%%", as you can see in
|
||||
/// the English version.
|
||||
sprintf(string, _("Accuracy : %d%%"), game.accuracy);
|
||||
snprintf(string, STRMAX_SHORT, _("Accuracy : %d%%"), game.accuracy);
|
||||
gfx_createTextObject(TS_ACCURACY, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of kills.
|
||||
sprintf(string, _("Enemies Killed by Others : %d"), game.totalOtherKills);
|
||||
snprintf(string, STRMAX_SHORT, _("Enemies Killed by Others : %d"), game.totalOtherKills);
|
||||
gfx_createTextObject(TS_OTHER_KILLS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Retain "%d" as-is. It is replaced with the amount of cash earned.
|
||||
sprintf(string, _("Total Cash Earned : %d"), game.cashEarned);
|
||||
snprintf(string, STRMAX_SHORT, _("Total Cash Earned : %d"), game.cashEarned);
|
||||
gfx_createTextObject(TS_CASH_EARNED, string, 0, 0, FONT_WHITE);
|
||||
|
||||
gfx_createTextObject(TS_CHRIS_HEADER, _("*** Chris ***"), 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of kills.
|
||||
sprintf(string, _("Enemies Killed : %d"), game.totalKills);
|
||||
snprintf(string, STRMAX_SHORT, _("Enemies Killed : %d"), game.totalKills);
|
||||
gfx_createTextObject(TS_CHRIS_KILLS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of shield restores picked up.
|
||||
sprintf(string, _("Shield Restores Picked Up : %d"), game.shieldPickups);
|
||||
snprintf(string, STRMAX_SHORT, _("Shield Restores Picked Up : %d"), game.shieldPickups);
|
||||
gfx_createTextObject(TS_CHRIS_SHIELD_PICKUPS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of plasma cells picked up.
|
||||
sprintf(string, _("Plasma Cells Picked Up : %d"), game.cellPickups);
|
||||
snprintf(string, STRMAX_SHORT, _("Plasma Cells Picked Up : %d"), game.cellPickups);
|
||||
gfx_createTextObject(TS_CHRIS_PLASMA_PICKUPS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of rockets picked up.
|
||||
sprintf(string, _("Rockets Picked Up : %d"), game.rocketPickups);
|
||||
snprintf(string, STRMAX_SHORT, _("Rockets Picked Up : %d"), game.rocketPickups);
|
||||
gfx_createTextObject(TS_CHRIS_ROCKET_PICKUPS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of powerups picked up.
|
||||
sprintf(string, _("Powerups Picked Up : %d"), game.powerups);
|
||||
snprintf(string, STRMAX_SHORT, _("Powerups Picked Up : %d"), game.powerups);
|
||||
gfx_createTextObject(TS_CHRIS_POWERUP_PICKUPS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of mines destroyed.
|
||||
sprintf(string, _("Mines Destroyed : %d"), game.minesKilled);
|
||||
snprintf(string, STRMAX_SHORT, _("Mines Destroyed : %d"), game.minesKilled);
|
||||
gfx_createTextObject(TS_CHRIS_MINES_KILLED, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of slaves rescued.
|
||||
sprintf(string, _("Slaves Rescued : %d"), game.slavesRescued);
|
||||
snprintf(string, STRMAX_SHORT, _("Slaves Rescued : %d"), game.slavesRescued);
|
||||
gfx_createTextObject(TS_CHRIS_SLAVES_RESCUED, string, 0, 0, FONT_WHITE);
|
||||
|
||||
if (game.hasWingMate1)
|
||||
|
@ -312,12 +312,12 @@ static void intermission_setStatusLines()
|
|||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of kills.
|
||||
sprintf(string, _("Enemies Killed : %d"), game.wingMate1Kills);
|
||||
snprintf(string, STRMAX_SHORT, _("Enemies Killed : %d"), game.wingMate1Kills);
|
||||
gfx_createTextObject(TS_PHOEBE_KILLS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Retain
|
||||
/// Status Screen text "%d" as-is. It is replaced with the number of ejections.
|
||||
sprintf(string, _("Ejections : %d"), game.wingMate1Ejects);
|
||||
snprintf(string, STRMAX_SHORT, _("Ejections : %d"), game.wingMate1Ejects);
|
||||
gfx_createTextObject(TS_PHOEBE_DEATHS, string, 0, 0, FONT_WHITE);
|
||||
}
|
||||
else
|
||||
|
@ -334,12 +334,12 @@ static void intermission_setStatusLines()
|
|||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of kills.
|
||||
sprintf(string, _("Enemies Killed : %d"), game.wingMate2Kills);
|
||||
snprintf(string, STRMAX_SHORT, _("Enemies Killed : %d"), game.wingMate2Kills);
|
||||
gfx_createTextObject(TS_URSULA_KILLS, string, 0, 0, FONT_WHITE);
|
||||
|
||||
/// Status Screen text
|
||||
/// Retain "%d" as-is. It is replaced with the number of ejections.
|
||||
sprintf(string, _("Ejections : %d"), game.wingMate2Ejects);
|
||||
snprintf(string, STRMAX_SHORT, _("Ejections : %d"), game.wingMate2Ejects);
|
||||
gfx_createTextObject(TS_URSULA_DEATHS, string, 0, 0, FONT_WHITE);
|
||||
}
|
||||
else
|
||||
|
@ -365,7 +365,7 @@ static void intermission_setStatusLines()
|
|||
/// For example, the "%02ld" sequences may be changed to "%ld" if
|
||||
/// you wish to not force two digits to be filled in (e.g. to render
|
||||
/// the number 3 as "3" instead of "03").
|
||||
snprintf(string, sizeof string, _("Total Time : %ld:%02ld:%02ld"), timeTaken / 3600, (timeTaken / 60) % 60, timeTaken % 60);
|
||||
snprintf(string, STRMAX_SHORT, _("Total Time : %ld:%02ld:%02ld"), timeTaken / 3600, (timeTaken / 60) % 60, timeTaken % 60);
|
||||
gfx_createTextObject(TS_STATUS_FOOTER, string, 0, 0, FONT_WHITE);
|
||||
}
|
||||
|
||||
|
@ -811,7 +811,7 @@ static int intermission_renderDialog(SDL_Surface *comms, int y, int face, const
|
|||
|
||||
static void intermission_createMissionDetailSurface(SDL_Surface *comms, int missionSlot)
|
||||
{
|
||||
char string[2000];
|
||||
char string[STRMAX];
|
||||
int y = 10;
|
||||
int misn = -1;
|
||||
|
||||
|
@ -921,7 +921,7 @@ static void intermission_createMissionDetailSurface(SDL_Surface *comms, int miss
|
|||
/// Mission dialog: Eyananth, interceptions (Sid Wilson)
|
||||
/// "%d" must be retained as-is. It is replaced with the number of slaves that
|
||||
/// need to be rescued.
|
||||
sprintf(string, _("As you know, WEAPCO has many slaves in this system. If we free a large number of them, it might help to spark a rebellion. I estimate that we will need to rescue around %d to make a difference."), SLAVE_RESCUE_TARGET);
|
||||
snprintf(string, STRMAX, _("As you know, WEAPCO has many slaves in this system. If we free a large number of them, it might help to spark a rebellion. I estimate that we will need to rescue around %d to make a difference."), SLAVE_RESCUE_TARGET);
|
||||
y = intermission_renderDialog(comms, y, FS_SID, string);
|
||||
|
||||
/// Mission dialog: Eyananth, interceptions (Chris Bainfield)
|
||||
|
@ -1226,7 +1226,7 @@ static void intermission_createMissionDetailSurface(SDL_Surface *comms, int miss
|
|||
strcpy(string, "Hey, why am I talking to myself? This shouldn't happen! Clearly, this must be a bug.");
|
||||
y = intermission_renderDialog(comms, y, FS_CHRIS, string);
|
||||
|
||||
sprintf(string, "I should go to starfighter.nongnu.org and report this bug there. In that report, I should mention that the mission number is %d.", misn);
|
||||
snprintf(string, STRMAX, "I should go to starfighter.nongnu.org and report this bug there. In that report, I should mention that the mission number is %d.", misn);
|
||||
y = intermission_renderDialog(comms, y, FS_CHRIS, string);
|
||||
|
||||
strcpy(string, "Wait, what am I still talking into empty space for? It's not like anyone can hear me...");
|
||||
|
@ -1502,7 +1502,7 @@ int intermission()
|
|||
audio_playMusic("music/through_space.ogg", -1);
|
||||
|
||||
/// Retain "%s" as-is. It is replaced with the current system name.
|
||||
sprintf(string, _("System : %s"), game_systemNames[game.system]);
|
||||
snprintf(string, STRMAX_SHORT, _("System : %s"), game_systemNames[game.system]);
|
||||
gfx_createTextObject(TS_CURRENT_SYSTEM, string, 0, 0, FONT_WHITE);
|
||||
|
||||
gfx_createTextObject(TS_INFO_START_MISSION, _("Start Next Mission"), 0, 0, FONT_WHITE);
|
||||
|
@ -1517,14 +1517,14 @@ int intermission()
|
|||
|
||||
/// Retain "%s" as-is. It is replaced with the name of the planet
|
||||
/// the player is currently stationed on.
|
||||
sprintf(string, _("Stationed At: %s"), intermission_planets[game.stationedPlanet].name);
|
||||
snprintf(string, STRMAX_SHORT, _("Stationed At: %s"), intermission_planets[game.stationedPlanet].name);
|
||||
gfx_createTextObject(TS_CURRENT_PLANET, string, 90, 0, FONT_WHITE);
|
||||
|
||||
if (game.destinationPlanet > -1)
|
||||
{
|
||||
/// Retain "%s" as-is. It is replaced with the name of the planet
|
||||
/// the player's destination is currently set to.
|
||||
sprintf(string, _("Destination: %s"), intermission_planets[game.destinationPlanet].name);
|
||||
snprintf(string, STRMAX_SHORT, _("Destination: %s"), intermission_planets[game.destinationPlanet].name);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -1639,7 +1639,7 @@ int intermission()
|
|||
{
|
||||
/// Retain "%s" as-is. It is replaced with the name of the planet
|
||||
/// the player's destination is currently set to.
|
||||
sprintf(string, "Destination: %s", intermission_planets[game.destinationPlanet].name);
|
||||
snprintf(string, STRMAX_SHORT, "Destination: %s", intermission_planets[game.destinationPlanet].name);
|
||||
gfx_createTextObject(TS_DEST_PLANET, string, 0, 0, FONT_WHITE);
|
||||
}
|
||||
|
||||
|
@ -1701,7 +1701,7 @@ int intermission()
|
|||
player.shield = player.maxShield;
|
||||
/// Retain "%s" as-is. It is replaced with the name of the planet
|
||||
/// the player's destination is currently set to.
|
||||
sprintf(string, _("Stationed At: %s"),
|
||||
snprintf(string, STRMAX_SHORT, _("Stationed At: %s"),
|
||||
intermission_planets[game.stationedPlanet].name);
|
||||
gfx_createTextObject(TS_CURRENT_PLANET, string, 90, 0, FONT_WHITE);
|
||||
section = 1;
|
||||
|
|
|
@ -651,7 +651,7 @@ static void mission_evaluate(int type, int id, int *completed, int *targetValue,
|
|||
"$%d more to collect...\n"
|
||||
"$%d more needed...",
|
||||
*targetValue));
|
||||
sprintf(message, fmt, *targetValue);
|
||||
snprintf(message, STRMAX_SHORT, fmt, *targetValue);
|
||||
break;
|
||||
case P_CARGO:
|
||||
radio_getRandomMessage(fmt, ngettext(
|
||||
|
@ -670,7 +670,7 @@ static void mission_evaluate(int type, int id, int *completed, int *targetValue,
|
|||
"%d more cargo pods needed...\n"
|
||||
"Collect %d remaining cargo pods...",
|
||||
*targetValue));
|
||||
sprintf(message, fmt, *targetValue);
|
||||
snprintf(message, STRMAX_SHORT, fmt, *targetValue);
|
||||
break;
|
||||
case P_ORE:
|
||||
radio_getRandomMessage(fmt,ngettext(
|
||||
|
@ -687,7 +687,7 @@ static void mission_evaluate(int type, int id, int *completed, int *targetValue,
|
|||
"%d more pieces of ore to collect...\n"
|
||||
"%d more pieces of ore needed...",
|
||||
*targetValue));
|
||||
sprintf(message, fmt, *targetValue);
|
||||
snprintf(message, STRMAX_SHORT, fmt, *targetValue);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -696,14 +696,14 @@ static void mission_evaluate(int type, int id, int *completed, int *targetValue,
|
|||
switch(id)
|
||||
{
|
||||
case P_CARGO:
|
||||
sprintf(message, _("Cargo pod destroyed!"));
|
||||
strcpy(message, _("Cargo pod destroyed!"));
|
||||
if (game.area == MISN_CERADSE) // Get lectured by Sid
|
||||
/// Dialog (Sid Wilson)
|
||||
/// Used when a cargo pod is destroyed in the Ceradse mission.
|
||||
radio_setMessage(FS_SID, _("Chris, we needed that pod! I told you that we couldn't afford to lose a single one!"), 1);
|
||||
break;
|
||||
case P_ESCAPEPOD:
|
||||
sprintf(message, _("Escape Pod lost!"));
|
||||
strcpy(message, _("Escape Pod lost!"));
|
||||
if (game.area == MISN_ODEON) // Get lectured by Phoebe
|
||||
{
|
||||
/// Dialog (Phoebe Lexx)
|
||||
|
@ -757,7 +757,7 @@ static void mission_evaluate(int type, int id, int *completed, int *targetValue,
|
|||
"%d targets remain...\n"
|
||||
"Destroy %d remaining targets...",
|
||||
*targetValue));
|
||||
sprintf(message, fmt, *targetValue);
|
||||
snprintf(message, STRMAX_SHORT, fmt, *targetValue);
|
||||
}
|
||||
break;
|
||||
case M_DISABLE_TARGET:
|
||||
|
@ -775,7 +775,7 @@ static void mission_evaluate(int type, int id, int *completed, int *targetValue,
|
|||
"%d more targets to disable...\n"
|
||||
"Disable %d remaining targets...",
|
||||
*targetValue));
|
||||
sprintf(message, fmt, *targetValue);
|
||||
snprintf(message, STRMAX_SHORT, fmt, *targetValue);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -877,7 +877,7 @@ void mission_updateRequirements(int type, int id, int value)
|
|||
"At least %d more slaves to rescue...\n"
|
||||
"At least %d more rescued slaves needed...",
|
||||
slavesNeeded));
|
||||
sprintf(message, fmt, slavesNeeded);
|
||||
snprintf(message, STRMAX_SHORT, fmt, slavesNeeded);
|
||||
info_setLine(message, FONT_CYAN);
|
||||
}
|
||||
}
|
||||
|
@ -1151,6 +1151,8 @@ mission begins playing here.
|
|||
*/
|
||||
void mission_showStartScreen()
|
||||
{
|
||||
char temp[STRMAX_SHORT];
|
||||
|
||||
screen_clear(black);
|
||||
renderer_update();
|
||||
|
||||
|
@ -1184,18 +1186,17 @@ void mission_showStartScreen()
|
|||
|
||||
if (mission.timeLimit1[0] > 0)
|
||||
{
|
||||
char temp[50];
|
||||
if (game.area != MISN_MARS)
|
||||
{
|
||||
/// "%d" must be retained. It is replaced with the mission time
|
||||
/// limit in minutes.
|
||||
sprintf(temp, _("TIME LIMIT: %d minutes"), mission.timeLimit1[0]);
|
||||
snprintf(temp, STRMAX_SHORT, _("TIME LIMIT: %d minutes"), mission.timeLimit1[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
/// "%d" must be retained. It is replaced with the mission required
|
||||
/// survival time in minutes.
|
||||
sprintf(temp, _("SURVIVAL FOR %d minutes"), mission.timeLimit1[0]);
|
||||
snprintf(temp, STRMAX_SHORT, _("SURVIVAL FOR %d minutes"), mission.timeLimit1[0]);
|
||||
}
|
||||
screen_renderUnicode(temp, -1, screen->h / 2 + 195, FONT_RED);
|
||||
}
|
||||
|
@ -1246,7 +1247,7 @@ of the screen.
|
|||
void mission_showFinishedScreen()
|
||||
{
|
||||
int shield_bonus;
|
||||
char temp[STRMAX];
|
||||
char temp[STRMAX_SHORT];
|
||||
|
||||
if (game.area != MISN_INTERCEPTION)
|
||||
{
|
||||
|
@ -1342,7 +1343,7 @@ void mission_showFinishedScreen()
|
|||
{
|
||||
/// "%d" must be retained. It is replaced with the money earned
|
||||
/// from the shield bonus.
|
||||
sprintf(temp, _("Shield Bonus: $%d"), shield_bonus);
|
||||
snprintf(temp, STRMAX_SHORT, _("Shield Bonus: $%d"), shield_bonus);
|
||||
screen_renderUnicode(temp, -1, screen->h / 2 + 130, FONT_WHITE);
|
||||
}
|
||||
|
||||
|
@ -1358,7 +1359,7 @@ void mission_showFinishedScreen()
|
|||
/// the "%02ld" sequences may be changed to "%ld" if you wish to
|
||||
/// not force two digits to be filled in (e.g. to render the number
|
||||
/// 3 as "3" instead of "03").
|
||||
snprintf(temp, sizeof temp, _("Mission Time: %02ld:%02ld"), engine.timeTaken / 60, engine.timeTaken % 60);
|
||||
snprintf(temp, STRMAX_SHORT, _("Mission Time: %02ld:%02ld"), engine.timeTaken / 60, engine.timeTaken % 60);
|
||||
|
||||
screen_renderUnicode(temp, -1, screen->h / 2 + 200, FONT_WHITE);
|
||||
|
||||
|
|
30
src/save.c
30
src/save.c
|
@ -35,7 +35,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "screen.h"
|
||||
#include "weapons.h"
|
||||
|
||||
static char saveSlot[10][25];
|
||||
static char saveSlot[10][STRMAX_SHORT];
|
||||
|
||||
/*
|
||||
Reads in each save game that it finds and gives it an appropriate
|
||||
|
@ -60,20 +60,20 @@ int save_initSlots()
|
|||
//READ SAVE GAME DATA
|
||||
for (int i = 0 ; i <= 5 ; i++)
|
||||
{
|
||||
sprintf(fileName, "%ssave%.2d.sav", engine.configDirectory, i);
|
||||
snprintf(fileName, PATH_MAX, "%ssave%.2d.sav", engine.configDirectory, i);
|
||||
fp = fopen(fileName, "r");
|
||||
if (fp != NULL)
|
||||
{
|
||||
if (fscanf(fp, "%d%*c", &game.saveFormat) < 1)
|
||||
{
|
||||
printf("Error: Could not determine the version of the save file.\n");
|
||||
sprintf(saveSlot[i], "Corrupt Game Data");
|
||||
strcpy(saveSlot[i], "Corrupt Game Data");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
sprintf(saveSlot[i], _("AUTOSAVE"));
|
||||
strcpy(saveSlot[i], _("AUTOSAVE"));
|
||||
continueSaveIndex = 0;
|
||||
}
|
||||
else
|
||||
|
@ -81,11 +81,11 @@ int save_initSlots()
|
|||
if (fscanf(fp, "%*[^\n]%*c%*[^\n]%*c%d %*d %*d%*c%[^\n]%*c", &system,
|
||||
stationedName) < 2)
|
||||
{
|
||||
sprintf(saveSlot[i], _("Corrupt Game Data"));
|
||||
strcpy(saveSlot[i], _("Corrupt Game Data"));
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(saveSlot[i], "%s, %s", game_systemNames[system],
|
||||
snprintf(saveSlot[i], STRMAX_SHORT, "%s, %s", game_systemNames[system],
|
||||
stationedName);
|
||||
}
|
||||
}
|
||||
|
@ -104,13 +104,13 @@ int save_initSlots()
|
|||
}
|
||||
else
|
||||
{
|
||||
sprintf(fileName, "%ssave%.2d.dat", engine.configDirectory, i);
|
||||
snprintf(fileName, PATH_MAX, "%ssave%.2d.dat", engine.configDirectory, i);
|
||||
|
||||
fp = fopen(fileName, "r");
|
||||
if (fp == NULL)
|
||||
{
|
||||
/// Used for empty save slots.
|
||||
sprintf(saveSlot[i], (i == 0 ? _("AUTOSAVE (Empty)") : _("Empty")));
|
||||
strcpy(saveSlot[i], (i == 0 ? _("AUTOSAVE (Empty)") : _("Empty")));
|
||||
if (engine.gameSection == SECTION_TITLE)
|
||||
gfx_createTextObject(TS_SAVESLOT_0 + i, saveSlot[i],
|
||||
0, imagePos, FONT_WHITE);
|
||||
|
@ -119,18 +119,18 @@ int save_initSlots()
|
|||
{
|
||||
if (i == 0)
|
||||
{
|
||||
sprintf(saveSlot[i], _("AUTOSAVE"));
|
||||
strcpy(saveSlot[i], _("AUTOSAVE"));
|
||||
continueSaveIndex = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fread(&tempGame, sizeof(Game), 1, fp) != 1)
|
||||
{
|
||||
sprintf(saveSlot[i], _("Corrupt Game Data"));
|
||||
strcpy(saveSlot[i], _("Corrupt Game Data"));
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(saveSlot[i], "%s, %s", game_systemNames[tempGame.system],
|
||||
snprintf(saveSlot[i], STRMAX_SHORT, "%s, %s", game_systemNames[tempGame.system],
|
||||
tempGame.stationedName);
|
||||
}
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ int save_load(int slot)
|
|||
FILE *fp;
|
||||
unsigned long timeTaken;
|
||||
|
||||
sprintf(filename, "%ssave%.2d.sav", engine.configDirectory, slot);
|
||||
snprintf(filename, PATH_MAX, "%ssave%.2d.sav", engine.configDirectory, slot);
|
||||
fp = fopen(filename, "r");
|
||||
|
||||
if (fp != NULL)
|
||||
|
@ -233,7 +233,7 @@ int save_load(int slot)
|
|||
}
|
||||
else
|
||||
{
|
||||
sprintf(filename, "%ssave%.2d.dat", engine.configDirectory, slot);
|
||||
snprintf(filename, PATH_MAX, "%ssave%.2d.dat", engine.configDirectory, slot);
|
||||
fp = fopen(filename, "rb");
|
||||
|
||||
if (fp == NULL)
|
||||
|
@ -281,7 +281,7 @@ void save(int slot)
|
|||
return;
|
||||
}
|
||||
|
||||
sprintf(fileName, "%ssave%.2d.sav", engine.configDirectory, slot);
|
||||
snprintf(fileName, PATH_MAX, "%ssave%.2d.sav", engine.configDirectory, slot);
|
||||
fp = fopen(fileName, "w");
|
||||
|
||||
|
||||
|
@ -456,7 +456,7 @@ int save_showSlots(SDL_Surface *savesSurface, int saveSlot, int x, int y)
|
|||
x + 253, y + 265, 100, 25))
|
||||
{
|
||||
char filename[PATH_MAX];
|
||||
sprintf(filename, "%ssave%.2d.sav", engine.configDirectory,
|
||||
snprintf(filename, PATH_MAX, "%ssave%.2d.sav", engine.configDirectory,
|
||||
saveSlot);
|
||||
remove(filename);
|
||||
save_initSlots();
|
||||
|
|
36
src/shop.c
36
src/shop.c
|
@ -52,7 +52,7 @@ static void sell(int i);
|
|||
|
||||
static void drawSecondaryWeaponSurface()
|
||||
{
|
||||
char description[50] = "";
|
||||
char description[STRMAX_SHORT] = "";
|
||||
|
||||
gfx_renderUnicode(_("Secondary Weapon"), 10, 3, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_SECONDARY]);
|
||||
|
||||
|
@ -101,7 +101,7 @@ static void drawSecondaryWeaponSurface()
|
|||
(player.weaponType[1] != W_CHARGER) && (player.weaponType[1] != W_NONE))
|
||||
{
|
||||
/// Retain "%d" as-is. It is replaced with the rocket capacity of the Firefly.
|
||||
sprintf(description, _("Capacity : %d"), game.maxRocketAmmo);
|
||||
snprintf(description, STRMAX_SHORT, _("Capacity : %d"), game.maxRocketAmmo);
|
||||
gfx_renderUnicode(description, 10, 37, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_SECONDARY]);
|
||||
}
|
||||
}
|
||||
|
@ -285,38 +285,38 @@ static void drawShop()
|
|||
gfx_renderUnicode(_("Primary Weapon"), 10, 3, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_PRIMARY]);
|
||||
/// Shop info: min plasma output
|
||||
/// Retain "%d" as-is. It is replaced with the min plasma output.
|
||||
sprintf(description, _("Cannons: %d"), game.minPlasmaOutput);
|
||||
snprintf(description, STRMAX, _("Cannons: %d"), game.minPlasmaOutput);
|
||||
gfx_renderUnicode(description, 10, 22, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_PRIMARY]);
|
||||
/// Shop info: min plasma damage
|
||||
/// Retain "%d" as-is. It is replaced with the min plasma damage.
|
||||
sprintf(description, _("Power: Stage %d"),
|
||||
snprintf(description, STRMAX, _("Power: Stage %d"),
|
||||
game.minPlasmaDamage);
|
||||
gfx_renderUnicode(description, 10, 37, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_PRIMARY]);
|
||||
/// Shop info: min plasma rate
|
||||
/// Retain "%d" as-is. It is replaced with the min plasma cooling.
|
||||
sprintf(description, _("Cooling: Stage %d"),
|
||||
snprintf(description, STRMAX, _("Cooling: Stage %d"),
|
||||
game.minPlasmaRate);
|
||||
gfx_renderUnicode(description, 10, 52, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_PRIMARY]);
|
||||
|
||||
gfx_renderUnicode(_("Powerup Weapon"), 10, 3, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_POWERUP]);
|
||||
/// Shop info: max plasma output
|
||||
/// Retain "%d" as-is. It is replaced with the max plasma output.
|
||||
sprintf(description, _("Splitter: Stage %d"),
|
||||
snprintf(description, STRMAX, _("Splitter: Stage %d"),
|
||||
game.maxPlasmaOutput);
|
||||
gfx_renderUnicode(description, 10, 22, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_POWERUP]);
|
||||
/// Shop info: max plasma damage
|
||||
/// Retain "%d" as-is. It is replaced with the max plasma damage.
|
||||
sprintf(description, _("Condensor: Stage %d"),
|
||||
snprintf(description, STRMAX, _("Condensor: Stage %d"),
|
||||
game.maxPlasmaDamage);
|
||||
gfx_renderUnicode(description, 10, 37, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_POWERUP]);
|
||||
/// Shop info: max plasma rate
|
||||
/// Retain "%d" as-is. It is replaced with the max plasma cooling.
|
||||
sprintf(description, _("L.Nitrogen: Stage %d"),
|
||||
snprintf(description, STRMAX, _("L.Nitrogen: Stage %d"),
|
||||
game.maxPlasmaRate);
|
||||
gfx_renderUnicode(description, 10, 52, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_POWERUP]);
|
||||
/// Shop info: max plasma ammo
|
||||
/// Retain "%d" as-is. It is replaced with the Firefly's plasma ammo capacity.
|
||||
sprintf(description, _("Capacity: %d"), game.maxPlasmaAmmo);
|
||||
snprintf(description, STRMAX, _("Capacity: %d"), game.maxPlasmaAmmo);
|
||||
gfx_renderUnicode(description, 10, 67, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_POWERUP]);
|
||||
|
||||
drawSecondaryWeaponSurface();
|
||||
|
@ -346,20 +346,20 @@ static void drawShop()
|
|||
}
|
||||
|
||||
/// Retain "%d" as-is. It is replaced with the Firefly's max shield.
|
||||
sprintf(description, _("Shield: %d"), player.maxShield);
|
||||
snprintf(description, STRMAX, _("Shield: %d"), player.maxShield);
|
||||
gfx_renderUnicode(description, 10, 6, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_SHIP_INFO]);
|
||||
/// Retain "%d" as-is. It is replaced with the player's current cash.
|
||||
sprintf(description, _("Cash: $%d"), game.cash);
|
||||
snprintf(description, STRMAX, _("Cash: $%d"), game.cash);
|
||||
gfx_renderUnicode(description, 10, 22, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_SHIP_INFO]);
|
||||
/// Retain "%.3d". It is replaced with the ship's current number of plasma cells.
|
||||
/// "%.3d" can be changed to "%d" if you wish to not fill in space with zeroes,
|
||||
/// e.g. render the number 5 as "5" rather than "005".
|
||||
sprintf(description, _("Plasma Cells: %.3d"), player.ammo[0]);
|
||||
snprintf(description, STRMAX, _("Plasma Cells: %.3d"), player.ammo[0]);
|
||||
gfx_renderUnicode(description, SHOP_WIDTH - gfx_unicodeWidth(description) - 10, 6, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_SHIP_INFO]);
|
||||
/// Retain "%.2d". It is replaced with the ship's current number of rockets.
|
||||
/// "%.2d" can be changed to "%d" if you wish to not fill in space with zeroes,
|
||||
/// e.g. render the number 3 as "3" rather than "03".
|
||||
sprintf(description, _("Rockets: %.2d"), player.ammo[1]);
|
||||
snprintf(description, STRMAX, _("Rockets: %.2d"), player.ammo[1]);
|
||||
gfx_renderUnicode(description, SHOP_WIDTH - gfx_unicodeWidth(description) - 10, 22, FONT_WHITE, 0, gfx_shopSprites[SHOP_S_SHIP_INFO]);
|
||||
|
||||
gfx_shopSprites[SHOP_S_ITEM_INFO] = gfx_createSurface(SHOP_WIDTH + 1, 56);
|
||||
|
@ -414,7 +414,7 @@ static void drawShop()
|
|||
/// Used to put a shop item's name next to its price.
|
||||
/// "%s" is replaced with the item name, and "%d" is replaced
|
||||
/// with the item price.
|
||||
sprintf(description, _("%s ($%d)"),
|
||||
snprintf(description, STRMAX, _("%s ($%d)"),
|
||||
shopItems[shopSelectedItem].description,
|
||||
shopItems[shopSelectedItem].price);
|
||||
}
|
||||
|
@ -422,7 +422,7 @@ static void drawShop()
|
|||
{
|
||||
/// Used for shop items that cannot be bought.
|
||||
/// "%s" is replaced with the item name.
|
||||
sprintf(description, _("%s (N/A)"),
|
||||
snprintf(description, STRMAX, _("%s (N/A)"),
|
||||
shopItems[shopSelectedItem].description);
|
||||
}
|
||||
gfx_renderUnicode(shopItems[shopSelectedItem].name, 5, 22,
|
||||
|
@ -533,7 +533,7 @@ void shop_init()
|
|||
/// Shop item description: Homing Missile Launcher
|
||||
/// %i must be retained. It is replaced by the maximum missile
|
||||
/// capacity of the weapon.
|
||||
sprintf(shopItems[SHOP_HOMING_MISSILE].description, _("Fires homing missile (max %i missiles)"), MAX_HOMING);
|
||||
snprintf(shopItems[SHOP_HOMING_MISSILE].description, STRMAX, _("Fires homing missile (max %i missiles)"), MAX_HOMING);
|
||||
shopItems[SHOP_HOMING_MISSILE].image = SP_HOMING_MISSILE;
|
||||
|
||||
shopItems[SHOP_CHARGER].price = 10000;
|
||||
|
@ -547,7 +547,7 @@ void shop_init()
|
|||
/// Shop item description: Dual Homing Missile Launcher
|
||||
/// %i must be retained. It is replaced by the maximum missile
|
||||
/// capacity of the weapon.
|
||||
sprintf(shopItems[SHOP_DOUBLE_HOMING_MISSILES].description, _("Fires two homing missiles (max %i missiles)"), MAX_DOUBLE_HOMING);
|
||||
snprintf(shopItems[SHOP_DOUBLE_HOMING_MISSILES].description, STRMAX, _("Fires two homing missiles (max %i missiles)"), MAX_DOUBLE_HOMING);
|
||||
shopItems[SHOP_DOUBLE_HOMING_MISSILES].image = SP_DOUBLE_HOMING_MISSILES;
|
||||
|
||||
shopItems[SHOP_MICRO_HOMING_MISSILES].price = 15000;
|
||||
|
@ -555,7 +555,7 @@ void shop_init()
|
|||
/// Shop item description: Micro Homing Missile Launcher
|
||||
/// %i must be retained. It is replaced by the maximum missile
|
||||
/// capacity of the weapon.
|
||||
sprintf(shopItems[SHOP_MICRO_HOMING_MISSILES].description, _("Fires several small homing missiles (max %i missiles)"), MAX_MICRO_HOMING);
|
||||
snprintf(shopItems[SHOP_MICRO_HOMING_MISSILES].description, STRMAX, _("Fires several small homing missiles (max %i missiles)"), MAX_MICRO_HOMING);
|
||||
shopItems[SHOP_MICRO_HOMING_MISSILES].image = SP_MICRO_HOMING_MISSILES;
|
||||
|
||||
shopSelectedItem = SHOP_NOTHING;
|
||||
|
|
|
@ -195,7 +195,7 @@ int title_show()
|
|||
|
||||
int redGlow = 255;
|
||||
int redDir = -2;
|
||||
char buildVersion[25];
|
||||
char buildVersion[STRMAX_SHORT];
|
||||
|
||||
int selectedOption = 1;
|
||||
int skip = 0;
|
||||
|
@ -255,7 +255,7 @@ int title_show()
|
|||
gfx_renderString("Copyright 2015-2019 Layla Marchant",
|
||||
5, 2 * MENU_SPACING, FONT_WHITE, 0, copyrightText);
|
||||
|
||||
sprintf(buildVersion, "Version %s", VERSION );
|
||||
snprintf(buildVersion, STRMAX_SHORT, "Version %s", VERSION );
|
||||
infoText = gfx_createSurface(strlen(buildVersion) * (PIXFONT_W + 1) + 6, MENU_SPACING);
|
||||
gfx_renderString(buildVersion, 0, 0, FONT_WHITE, 0, infoText);
|
||||
|
||||
|
|
Loading…
Reference in New Issue