Added message for when a star system falls to the Pandorans (campaign-related, unavoidable).

This commit is contained in:
Steve 2016-02-14 11:53:03 +00:00
parent 909cdd76f3
commit 54b92ad137
3 changed files with 73 additions and 13 deletions

View File

@ -38,5 +38,15 @@
"y" : 515, "y" : 515,
"w" : 200, "w" : 200,
"h": 34 "h": 34
},
{
"name" : "ok",
"group" : "fallen",
"type" : "WT_BUTTON",
"text" : "OK",
"x" : -1,
"y" : 400,
"w" : 200,
"h": 34
} }
] ]

View File

@ -44,8 +44,11 @@ static void quit(void);
static void startMission(void); static void startMission(void);
static void returnFromOptions(void); static void returnFromOptions(void);
static void doStarSystemView(void); static void doStarSystemView(void);
static void updatePandoranAdvance(void);
static void drawFallenView(void);
static void fallenOK(void);
static StarSystem *selectedStarSystem; static StarSystem *selectedStarSystem, *fallenStarSystem;
static Mission *selectedMission = {0}; static Mission *selectedMission = {0};
static SDL_Texture *background; static SDL_Texture *background;
static SDL_Texture *starSystemTexture; static SDL_Texture *starSystemTexture;
@ -80,14 +83,14 @@ void initGalacticMap(void)
centerOnSelectedStarSystem(); centerOnSelectedStarSystem();
updatePandoranAdvance();
saveGame(); saveGame();
pulseTimer = 0; pulseTimer = 0;
arrowPulse = 0; arrowPulse = 0;
show = SHOW_GALAXY;
/* clear the pulses */ /* clear the pulses */
destroyGalacticMap(); destroyGalacticMap();
@ -103,6 +106,8 @@ void initGalacticMap(void)
getWidget("ok", "stats")->action = statsOK; getWidget("ok", "stats")->action = statsOK;
getWidget("ok", "fallen")->action = fallenOK;
updateStarSystemMissions(); updateStarSystemMissions();
setMouse(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); setMouse(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2);
@ -112,6 +117,23 @@ void initGalacticMap(void)
playMusic("music/Pressure.ogg"); playMusic("music/Pressure.ogg");
} }
static void updatePandoranAdvance(void)
{
StarSystem *starSystem;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next)
{
if (starSystem->side != SIDE_PANDORAN && starSystem->fallsToPandorans && starSystem->completedMissions == starSystem->totalMissions && starSystem->totalMissions > 0)
{
starSystem->side = SIDE_PANDORAN;
show = SHOW_FALLEN_MESSAGE;
fallenStarSystem = starSystem;
}
}
}
static void logic(void) static void logic(void)
{ {
handleKeyboard(); handleKeyboard();
@ -175,11 +197,6 @@ static void doStarSystems(void)
} }
} }
} }
if (starSystem->side != SIDE_PANDORAN && starSystem->fallsToPandorans && starSystem->completedMissions == starSystem->totalMissions && starSystem->totalMissions > 0)
{
starSystem->side = SIDE_PANDORAN;
}
} }
} }
} }
@ -322,6 +339,10 @@ static void draw(void)
case SHOW_OPTIONS: case SHOW_OPTIONS:
drawOptions(); drawOptions();
break; break;
case SHOW_FALLEN_MESSAGE:
drawFallenView();
break;
} }
presentScene(); presentScene();
@ -547,6 +568,34 @@ static void drawStarSystemDetail(void)
drawWidgets("starSystem"); drawWidgets("starSystem");
} }
static void fallenOK(void)
{
show = SHOW_GALAXY;
}
static void drawFallenView(void)
{
SDL_Rect r;
r.w = 800;
r.h = 150;
r.x = (SCREEN_WIDTH / 2) - (r.w / 2);
r.y = (SCREEN_HEIGHT / 2) - (r.h / 2);
SDL_SetRenderDrawBlendMode(app.renderer, SDL_BLENDMODE_BLEND);
SDL_SetRenderDrawColor(app.renderer, 0, 0, 0, 225);
SDL_RenderFillRect(app.renderer, &r);
SDL_SetRenderDrawColor(app.renderer, 255, 255, 255, 200);
SDL_RenderDrawRect(app.renderer, &r);
SDL_SetRenderDrawBlendMode(app.renderer, SDL_BLENDMODE_NONE);
drawText(SCREEN_WIDTH / 2, r.y + 25, 24, TA_CENTER, colors.white, "%s has fallen to the Pandorans", fallenStarSystem->name);
drawWidgets("fallen");
}
static void handleKeyboard(void) static void handleKeyboard(void)
{ {
if (app.keyboard[SDL_SCANCODE_ESCAPE]) if (app.keyboard[SDL_SCANCODE_ESCAPE])

View File

@ -25,6 +25,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define SHOW_MENU 2 #define SHOW_MENU 2
#define SHOW_OPTIONS 3 #define SHOW_OPTIONS 3
#define SHOW_STATS 4 #define SHOW_STATS 4
#define SHOW_FALLEN_MESSAGE 5
extern void prepareScene(void); extern void prepareScene(void);
extern void presentScene(void); extern void presentScene(void);