Title music, title fade, and save slot usage.
This commit is contained in:
parent
e0a7a3511e
commit
44dcd06221
|
@ -50,6 +50,7 @@ static Widget *save[MAX_SAVE_SLOTS];
|
||||||
static Widget *loadCancel;
|
static Widget *loadCancel;
|
||||||
static Widget *ok;
|
static Widget *ok;
|
||||||
static Widget *cancel;
|
static Widget *cancel;
|
||||||
|
static float titleAlpha;
|
||||||
|
|
||||||
void initTitle(void)
|
void initTitle(void)
|
||||||
{
|
{
|
||||||
|
@ -82,12 +83,14 @@ void initTitle(void)
|
||||||
loadCancel = getWidget("cancel", "load");
|
loadCancel = getWidget("cancel", "load");
|
||||||
loadCancel->action = doLoadCancel;
|
loadCancel->action = doLoadCancel;
|
||||||
|
|
||||||
ok = getWidget("ok", "destroy");
|
ok = getWidget("ok", "delete");
|
||||||
ok->action = doOK;
|
ok->action = doOK;
|
||||||
|
|
||||||
cancel = getWidget("cancel", "destroy");
|
cancel = getWidget("cancel", "delete");
|
||||||
cancel->action = doCancel;
|
cancel->action = doCancel;
|
||||||
|
|
||||||
|
titleAlpha = 0;
|
||||||
|
|
||||||
recentSaveSlot = getRecentSave();
|
recentSaveSlot = getRecentSave();
|
||||||
|
|
||||||
showWidgetGroup("title");
|
showWidgetGroup("title");
|
||||||
|
@ -105,22 +108,39 @@ void initTitle(void)
|
||||||
app.delegate.logic = &logic;
|
app.delegate.logic = &logic;
|
||||||
app.delegate.draw = &draw;
|
app.delegate.draw = &draw;
|
||||||
|
|
||||||
|
loadMusic("music/Watching - DJ Sjors.ogg");
|
||||||
|
|
||||||
|
playMusic(0);
|
||||||
|
|
||||||
endSectionTransition();
|
endSectionTransition();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void logic(void)
|
static void logic(void)
|
||||||
{
|
{
|
||||||
doWidgets();
|
doWidgets();
|
||||||
|
|
||||||
|
if (titleAlpha < 255)
|
||||||
|
{
|
||||||
|
titleAlpha++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void draw(void)
|
static void draw(void)
|
||||||
{
|
{
|
||||||
|
SDL_SetTextureAlphaMod(atlasTexture->texture, titleAlpha);
|
||||||
blitRect(atlasTexture->texture, SCREEN_WIDTH / 2, 175, &title->rect, 1);
|
blitRect(atlasTexture->texture, SCREEN_WIDTH / 2, 175, &title->rect, 1);
|
||||||
|
SDL_SetTextureAlphaMod(atlasTexture->texture, 255);
|
||||||
|
|
||||||
drawText(10, SCREEN_HEIGHT - 30, 16, TA_LEFT, colors.white, "Copyright 2014, 2018 Parallel Realities");
|
drawText(10, SCREEN_HEIGHT - 30, 16, TA_LEFT, colors.white, "Copyright 2014, 2018 Parallel Realities");
|
||||||
drawText(SCREEN_WIDTH - 10, SCREEN_HEIGHT - 30, 16, TA_RIGHT, colors.white, "Version %.2f.%d", VERSION, REVISION);
|
drawText(SCREEN_WIDTH - 10, SCREEN_HEIGHT - 30, 16, TA_RIGHT, colors.white, "Version %.2f.%d", VERSION, REVISION);
|
||||||
|
|
||||||
drawWidgets();
|
drawWidgets();
|
||||||
|
|
||||||
|
if (saveAction == SA_DELETE)
|
||||||
|
{
|
||||||
|
drawText(SCREEN_WIDTH / 2, 350, 24, TA_CENTER, colors.white, "Are you sure you want to overwrite this game?");
|
||||||
|
drawText(SCREEN_WIDTH / 2, 400, 22, TA_CENTER, colors.white, "All progress will be lost!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int getRecentSave(void)
|
static int getRecentSave(void)
|
||||||
|
@ -184,7 +204,7 @@ static void doNewGame(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
saveAction = SA_DELETE;
|
saveAction = SA_NEW;
|
||||||
|
|
||||||
showWidgetGroup("saveSlot");
|
showWidgetGroup("saveSlot");
|
||||||
|
|
||||||
|
@ -216,11 +236,13 @@ static void doLoadGame(void)
|
||||||
|
|
||||||
static void doContinueGame(void)
|
static void doContinueGame(void)
|
||||||
{
|
{
|
||||||
game.saveSlot = continueGame->value[1];
|
stopMusic();
|
||||||
|
|
||||||
loadGame();
|
loadGame();
|
||||||
|
|
||||||
initHub();
|
initHub();
|
||||||
|
|
||||||
|
game.saveSlot = continueGame->value[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doOptions(void)
|
static void doOptions(void)
|
||||||
|
@ -235,6 +257,8 @@ static void doCredits(void)
|
||||||
|
|
||||||
static void doQuit(void)
|
static void doQuit(void)
|
||||||
{
|
{
|
||||||
|
stopMusic();
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,22 +268,31 @@ static void doSaveSlot(void)
|
||||||
|
|
||||||
w = getSelectedWidget();
|
w = getSelectedWidget();
|
||||||
|
|
||||||
|
game.saveSlot = w->value[1];
|
||||||
|
|
||||||
if (saveAction == SA_LOAD)
|
if (saveAction == SA_LOAD)
|
||||||
{
|
{
|
||||||
|
stopMusic();
|
||||||
|
|
||||||
loadGame();
|
loadGame();
|
||||||
|
|
||||||
initHub();
|
initHub();
|
||||||
}
|
}
|
||||||
else if (saveAction == SA_DELETE)
|
else if (saveAction == SA_NEW)
|
||||||
{
|
{
|
||||||
newGame();
|
if (!w->value[0])
|
||||||
|
{
|
||||||
initHub();
|
doOK();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
saveAction = SA_DELETE;
|
||||||
|
|
||||||
game.saveSlot = w->value[1];
|
showWidgetGroup("delete");
|
||||||
|
|
||||||
saveGame();
|
setSelectedWidget("cancel", "delete");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doLoadCancel(void)
|
static void doLoadCancel(void)
|
||||||
|
@ -269,12 +302,24 @@ static void doLoadCancel(void)
|
||||||
|
|
||||||
static void doOK(void)
|
static void doOK(void)
|
||||||
{
|
{
|
||||||
|
int saveSlot;
|
||||||
|
|
||||||
|
saveSlot = game.saveSlot;
|
||||||
|
|
||||||
|
stopMusic();
|
||||||
|
|
||||||
|
newGame();
|
||||||
|
|
||||||
|
initHub();
|
||||||
|
|
||||||
|
game.saveSlot = saveSlot;
|
||||||
|
|
||||||
|
saveGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doCancel(void)
|
static void doCancel(void)
|
||||||
{
|
{
|
||||||
|
doNewGame();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void returnFromOptions(void)
|
static void returnFromOptions(void)
|
||||||
|
|
|
@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
SA_LOAD,
|
SA_LOAD,
|
||||||
|
SA_NEW,
|
||||||
SA_DELETE
|
SA_DELETE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,11 +44,14 @@ extern void initCredits(void);
|
||||||
extern void initHub(void);
|
extern void initHub(void);
|
||||||
extern void initOptions(void (*callback)(void));
|
extern void initOptions(void (*callback)(void));
|
||||||
extern void loadGame(void);
|
extern void loadGame(void);
|
||||||
|
extern void loadMusic(char *filename);
|
||||||
extern void newGame(void);
|
extern void newGame(void);
|
||||||
|
extern void playMusic(int loop);
|
||||||
extern void saveGame(void);
|
extern void saveGame(void);
|
||||||
extern void setSelectedWidget(char *name, char *group);
|
extern void setSelectedWidget(char *name, char *group);
|
||||||
extern void showWidgetGroup(char *group);
|
extern void showWidgetGroup(char *group);
|
||||||
extern void startSectionTransition(void);
|
extern void startSectionTransition(void);
|
||||||
|
extern void stopMusic(void);
|
||||||
|
|
||||||
extern App app;
|
extern App app;
|
||||||
extern Colors colors;
|
extern Colors colors;
|
||||||
|
|
Loading…
Reference in New Issue