Trophy updates.

This commit is contained in:
Steve 2016-04-25 07:35:15 +01:00
parent 64b0928e0f
commit b732d6c08b
2 changed files with 23 additions and 8 deletions

View File

@ -13,7 +13,12 @@ Email: stephenjsweeney@battleforthesolarsystem.com
### GRAPHICS ### GRAPHICS
gfx/planets/earth.png - modified from the the Blue Marble NASA photograph: http://visibleearth.nasa.gov/view.php?id=57723 gfx/planets/earth.png - derived from the the Blue Marble NASA photograph: http://visibleearth.nasa.gov/view.php?id=57723
gfx/trophies/bronze.png - dervied from Trophy icon, by Lorc (CC BY 3.0): http://game-icons.net/lorc/originals/trophy.html
gfx/trophies/gold.png - dervied from Trophy icon, by Lorc (CC BY 3.0): http://game-icons.net/lorc/originals/trophy.html
gfx/trophies/platinum.png - dervied from Trophy icon, by Lorc (CC BY 3.0): http://game-icons.net/lorc/originals/trophy.html
gfx/trophies/silver.png - dervied from Trophy icon, by Lorc (CC BY 3.0): http://game-icons.net/lorc/originals/trophy.html
gfx/trophies/unearned.png - dervied from Trophy icon, by Lorc (CC BY 3.0): http://game-icons.net/lorc/originals/trophy.html
All other graphics are CC BY-NC-SA 3.0, with the following attribution: Copyright 2015-2016, Stephen J Sweeney | www.battleforthesolarsystem.com All other graphics are CC BY-NC-SA 3.0, with the following attribution: Copyright 2015-2016, Stephen J Sweeney | www.battleforthesolarsystem.com

View File

@ -33,7 +33,6 @@ static SDL_Texture *trophyIcons[TROPHY_MAX];
static SDL_Texture *sparkle; static SDL_Texture *sparkle;
static SDL_Texture *alertSphere; static SDL_Texture *alertSphere;
static SDL_Rect alertRect; static SDL_Rect alertRect;
static float alertDX;
static int alertTimer; static int alertTimer;
static int page; static int page;
static int awarded; static int awarded;
@ -204,7 +203,10 @@ void drawTrophies(void)
void awardTrophy(char *id) void awardTrophy(char *id)
{ {
Trophy *t; Trophy *t;
int numRemaining;
numRemaining = 0;
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next ; t != NULL ; t = t->next)
{ {
if (!t->awarded && strcmp(t->id, id) == 0) if (!t->awarded && strcmp(t->id, id) == 0)
@ -213,6 +215,17 @@ void awardTrophy(char *id)
t->awardDate = time(NULL); t->awardDate = time(NULL);
t->notify = 1; t->notify = 1;
} }
if (!t->awarded)
{
numRemaining++;
}
}
/* the Platinum will always be the last trophy to unlock */
if (numRemaining == 1)
{
awardTrophy("PLATINUM");
} }
} }
@ -224,12 +237,10 @@ void doTrophyAlerts(void)
} }
else if (alertTrophy) else if (alertTrophy)
{ {
alertRect.x += alertDX; alertRect.x = MIN(alertRect.x + 10, -1);
if (alertRect.x > -150) if (alertRect.x > -150)
{ {
alertDX *= 0.9;
alertTimer--; alertTimer--;
} }
@ -264,7 +275,7 @@ static void nextAlert(void)
{ {
playSound(SND_TROPHY); playSound(SND_TROPHY);
textSize(t->title, 30, &alertRect.w, &h); textSize(alertTrophy->title, 30, &alertRect.w, &h);
alertRect.w += 125; alertRect.w += 125;
alertRect.w = MAX(alertRect.w, 500); alertRect.w = MAX(alertRect.w, 500);
alertRect.x = -alertRect.w; alertRect.x = -alertRect.w;
@ -273,7 +284,6 @@ static void nextAlert(void)
static void resetAlert(void) static void resetAlert(void)
{ {
alertDX = 12;
alertTimer = FPS * 3; alertTimer = FPS * 3;
alertTrophy = NULL; alertTrophy = NULL;
} }