i18n updates.

This commit is contained in:
Steve 2016-02-29 10:47:41 +00:00
parent 9b6abf764a
commit 10cc12bd70
7 changed files with 117 additions and 46 deletions

View File

@ -45,7 +45,7 @@ static SDL_Texture *ecm;
static SDL_Texture *boost; static SDL_Texture *boost;
static SDL_Texture *nextGun; static SDL_Texture *nextGun;
static int numMessages; static int numMessages;
static char *gunName[BT_MAX]; static const char *gunName[BT_MAX];
void initHud(void) void initHud(void)
{ {

View File

@ -33,18 +33,7 @@ static char *getFormattedChallengeDescription(const char *format, ...);
char *getChallengeDescription(Challenge *c); char *getChallengeDescription(Challenge *c);
static char descriptionBuffer[MAX_DESCRIPTION_LENGTH]; static char descriptionBuffer[MAX_DESCRIPTION_LENGTH];
static const char *challengeDescription[CHALLENGE_MAX];
static char *challengeDescription[] = {
"Retain at least %d%% armour",
"Complete challenge in %d seconds or less",
"Attain a %d%% hit accuracy",
"Do not lose any team mates",
"Do not lose more than 1 team mate",
"Do not lose more than %d team mates",
"Take down %d enemy targets",
"Disable %d or more enemy fighters",
"Complete challenge in %d minutes or less"
};
void initChallenges(void) void initChallenges(void)
{ {
@ -53,6 +42,16 @@ void initChallenges(void)
char path[MAX_FILENAME_LENGTH]; char path[MAX_FILENAME_LENGTH];
int count, i; int count, i;
challengeDescription[CHALLENGE_ARMOUR] = _("Retain at least %d%% armour");
challengeDescription[CHALLENGE_TIME] = _("Complete challenge in %d seconds or less");
challengeDescription[CHALLENGE_ACCURACY] = _("Attain a %d%% hit accuracy");
challengeDescription[CHALLENGE_NO_LOSSES] = _("Do not lose any team mates");
challengeDescription[CHALLENGE_1_LOSS] = _("Do not lose more than 1 team mate");
challengeDescription[CHALLENGE_LOSSES] = _("Do not lose more than %d team mates");
challengeDescription[CHALLENGE_PLAYER_KILLS] = _("Take down %d enemy targets");
challengeDescription[CHALLENGE_DISABLE] = _("Disable %d or more enemy fighters");
challengeDescription[CHALLENGE_TIME_MINS] = _("Complete challenge in %d minutes or less");
tail = &game.challengeMissionHead; tail = &game.challengeMissionHead;
filenames = getFileList("data/challenges", &count); filenames = getFileList("data/challenges", &count);
@ -238,6 +237,27 @@ static char *getFormattedChallengeDescription(const char *format, ...)
return descriptionBuffer; return descriptionBuffer;
} }
void updateChallengeMissions(void)
{
Mission *m;
Challenge *c;
for (m = game.challengeMissionHead.next ; m != NULL ; m = m->next)
{
m->totalChallenges = m->completedChallenges = 0;
for (c = m->challengeHead.next ; c != NULL ; c = c->next)
{
m->totalChallenges++;
if (c->passed)
{
m->completedChallenges++;
}
}
}
}
static void completeChallenge(void) static void completeChallenge(void)
{ {
if (battle.status == MS_IN_PROGRESS) if (battle.status == MS_IN_PROGRESS)

View File

@ -25,6 +25,7 @@ extern char **getFileList(char *dir, int *count);
extern void selectWidget(const char *name, const char *group); extern void selectWidget(const char *name, const char *group);
extern void retreatAllies(void); extern void retreatAllies(void);
extern void retreatEnemies(void); extern void retreatEnemies(void);
extern char *getTranslatedString(char *string);
extern Battle battle; extern Battle battle;
extern Entity *player; extern Entity *player;

View File

@ -22,43 +22,50 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
static void prevPage(void); static void prevPage(void);
static void nextPage(void); static void nextPage(void);
static void calculatePercentComplete(void);
static char *statDescription[] = { static char *statDescription[STAT_MAX];
"Missions Started",
"Missons Completed",
"Shots Fired",
"Shots Hit",
"Rockets Fired",
"Rockets Hit",
"Missiles Fired",
"Missiles Hit",
"Enemies Killed",
"Enemies Killed (Player)",
"Allies Killed",
"Times Killed",
"Enemies Disabled",
"Enemies Escaped",
"ECM Used",
"Boost Used",
"Missiles Evaded",
"Missiles Struck Player",
"Civilians Rescued",
"Civilians Killed",
"Times used Tug",
"Times used Shuttle",
"Craft Towed",
"Items Collected",
"Longest Epic Kill Streak",
"Capital Ships Destroyed",
"Capital Ships Lost",
"STAT_TIME"
};
static int page; static int page;
static int maxPages; static int maxPages;
static Widget *prev; static Widget *prev;
static Widget *next; static Widget *next;
void initStats(void)
{
statDescription[STAT_PERCENT_COMPLETE] = _("Percent Complete");
statDescription[STAT_MISSIONS_STARTED] = _("Missions Started");
statDescription[STAT_MISSIONS_COMPLETED] = _("Missons Completed");
statDescription[STAT_CHALLENGES_STARTED] = _("Challenges Started");
statDescription[STAT_CHALLENGES_COMPLETED] = _("Challenges Completed");
statDescription[STAT_SHOTS_FIRED] = _("Shots Fired");
statDescription[STAT_SHOTS_HIT] = _("Shots Hit");
statDescription[STAT_ROCKETS_FIRED] = _("Rockets Fired");
statDescription[STAT_ROCKETS_HIT] = _("Rockets Hit");
statDescription[STAT_MISSILES_FIRED] = _("Missiles Fired");
statDescription[STAT_MISSILES_HIT] = _("Missiles Hit");
statDescription[STAT_ENEMIES_KILLED] = _("Enemies Killed");
statDescription[STAT_ENEMIES_KILLED_PLAYER] = _("Enemies Killed (Player)");
statDescription[STAT_ALLIES_KILLED] = _("Allies Killed");
statDescription[STAT_PLAYER_KILLED] = _("Times Killed");
statDescription[STAT_ENEMIES_DISABLED] = _("Enemies Disabled");
statDescription[STAT_ENEMIES_ESCAPED] = _("Enemies Escaped");
statDescription[STAT_ECM] = _("ECM Used");
statDescription[STAT_BOOST] = _("Boost Used");
statDescription[STAT_MISSILES_EVADED] = _("Missiles Evaded");
statDescription[STAT_MISSILES_STRUCK] = _("Missiles Struck Player");
statDescription[STAT_CIVILIANS_RESCUED] = _("Civilians Rescued");
statDescription[STAT_CIVILIANS_KILLED] = _("Civilians Killed");
statDescription[STAT_TUG] = _("Times used Tug");
statDescription[STAT_SHUTTLE] = _("Times used Shuttle");
statDescription[STAT_NUM_TOWED] = _("Craft Towed");
statDescription[STAT_ITEMS_COLLECTED] = _("Items Collected");
statDescription[STAT_EPIC_KILL_STREAK] = _("Longest Epic Kill Streak");
statDescription[STAT_CAPITAL_SHIPS_DESTROYED] = _("Capital Ships Destroyed");
statDescription[STAT_CAPITAL_SHIPS_LOST] = _("Capital Ships Lost");
statDescription[STAT_TIME] = _("Time Played");
}
void initStatsDisplay(void) void initStatsDisplay(void)
{ {
page = 0; page = 0;
@ -70,6 +77,34 @@ void initStatsDisplay(void)
next = getWidget("next", "stats"); next = getWidget("next", "stats");
next->action = nextPage; next->action = nextPage;
calculatePercentComplete();
}
static void calculatePercentComplete(void)
{
StarSystem *starSystem;
Mission *mission;
int completed, total;
completed = total = 0;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next)
{
if (strcmp(starSystem->name, "Sol"))
{
completed += starSystem->completedMissions;
total += starSystem->totalMissions;
}
}
for (mission = game.challengeMissionHead.next ; mission != NULL ; mission = mission->next)
{
completed += mission->completedChallenges;
total += mission->totalChallenges;
}
game.stats[STAT_PERCENT_COMPLETE] = getPercent(completed, total);
} }
void drawStats(void) void drawStats(void)
@ -105,12 +140,21 @@ void drawStats(void)
if (i < STAT_TIME) if (i < STAT_TIME)
{ {
drawText(r.x + 20, y, 18, TA_LEFT, colors.white, statDescription[i]); drawText(r.x + 20, y, 18, TA_LEFT, colors.white, statDescription[i]);
if (i == STAT_PERCENT_COMPLETE)
{
drawText(r.x + r.w - 20, y, 18, TA_RIGHT, colors.white, "%d%%", game.stats[i]);
}
else
{
drawText(r.x + r.w - 20, y, 18, TA_RIGHT, colors.white, "%d", game.stats[i]); drawText(r.x + r.w - 20, y, 18, TA_RIGHT, colors.white, "%d", game.stats[i]);
}
y += 40; y += 40;
} }
} }
drawText(r.x + 20, 565, 18, TA_LEFT, colors.white, _("Time Played")); drawText(r.x + 20, 565, 18, TA_LEFT, colors.white, statDescription[STAT_TIME]);
drawText(r.x + r.w - 20, 565, 18, TA_RIGHT, colors.white, timeToString(game.stats[STAT_TIME], 1)); drawText(r.x + r.w - 20, 565, 18, TA_RIGHT, colors.white, timeToString(game.stats[STAT_TIME], 1));
drawWidgets("stats"); drawWidgets("stats");

View File

@ -27,6 +27,7 @@ extern void drawText(int x, int y, int size, int align, SDL_Color c, const char
extern Widget *getWidget(const char *name, const char *group); extern Widget *getWidget(const char *name, const char *group);
extern char *getTranslatedString(char *string); extern char *getTranslatedString(char *string);
extern char *timeToString(long millis, int showHours); extern char *timeToString(long millis, int showHours);
extern int getPercent(float current, float total);
extern App app; extern App app;
extern Colors colors; extern Colors colors;

View File

@ -117,7 +117,7 @@ void initSDL(void)
void initGameSystem(void) void initGameSystem(void)
{ {
int step = 0; int step = 0;
int STEPS = 14; int STEPS = 16;
initColor(&colors.red, 255, 0, 0); initColor(&colors.red, 255, 0, 0);
initColor(&colors.orange, 255, 128, 0); initColor(&colors.orange, 255, 128, 0);
@ -181,6 +181,10 @@ void initGameSystem(void)
showLoadingStep(step++, STEPS); showLoadingStep(step++, STEPS);
initStats();
showLoadingStep(step++, STEPS);
initBattle(); initBattle();
showLoadingStep(step++, STEPS); showLoadingStep(step++, STEPS);

View File

@ -43,6 +43,7 @@ extern void initBulletDefs(void);
extern void initLookups(void); extern void initLookups(void);
extern void initBattle(void); extern void initBattle(void);
extern void initGame(void); extern void initGame(void);
extern void initStats(void);
extern void initStarSystems(void); extern void initStarSystems(void);
extern void initChallenges(void); extern void initChallenges(void);
extern void initWidgets(void); extern void initWidgets(void);