Display loading progress for initial load.
This commit is contained in:
parent
a7f9585a9a
commit
66fa5ede35
|
@ -23,6 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
static void loadConfig(void);
|
static void loadConfig(void);
|
||||||
void saveConfig(void);
|
void saveConfig(void);
|
||||||
static void initColor(SDL_Color *c, int r, int g, int b);
|
static void initColor(SDL_Color *c, int r, int g, int b);
|
||||||
|
static void showLoadingStep(float step, float maxSteps);
|
||||||
|
|
||||||
void initSDL(void)
|
void initSDL(void)
|
||||||
{
|
{
|
||||||
|
@ -94,6 +95,8 @@ void initSDL(void)
|
||||||
|
|
||||||
void initGameSystem(void)
|
void initGameSystem(void)
|
||||||
{
|
{
|
||||||
|
int STEPS = 12;
|
||||||
|
|
||||||
initColor(&colors.red, 255, 0, 0);
|
initColor(&colors.red, 255, 0, 0);
|
||||||
initColor(&colors.orange, 255, 128, 0);
|
initColor(&colors.orange, 255, 128, 0);
|
||||||
initColor(&colors.yellow, 255, 255, 0);
|
initColor(&colors.yellow, 255, 255, 0);
|
||||||
|
@ -106,31 +109,89 @@ void initGameSystem(void)
|
||||||
initColor(&colors.lightGrey, 192, 192, 192);
|
initColor(&colors.lightGrey, 192, 192, 192);
|
||||||
initColor(&colors.darkGrey, 128, 128, 128);
|
initColor(&colors.darkGrey, 128, 128, 128);
|
||||||
|
|
||||||
initInput();
|
showLoadingStep(0, STEPS);
|
||||||
|
|
||||||
initLookups();
|
|
||||||
|
|
||||||
initFonts();
|
initFonts();
|
||||||
|
|
||||||
|
showLoadingStep(1, STEPS);
|
||||||
|
|
||||||
|
initInput();
|
||||||
|
|
||||||
|
showLoadingStep(2, STEPS);
|
||||||
|
|
||||||
|
initLookups();
|
||||||
|
|
||||||
|
showLoadingStep(3, STEPS);
|
||||||
|
|
||||||
initSounds();
|
initSounds();
|
||||||
|
|
||||||
|
showLoadingStep(4, STEPS);
|
||||||
|
|
||||||
initWidgets();
|
initWidgets();
|
||||||
|
|
||||||
|
showLoadingStep(5, STEPS);
|
||||||
|
|
||||||
initGame();
|
initGame();
|
||||||
|
|
||||||
|
showLoadingStep(6, STEPS);
|
||||||
|
|
||||||
loadFighterDefs();
|
loadFighterDefs();
|
||||||
|
|
||||||
|
showLoadingStep(7, STEPS);
|
||||||
|
|
||||||
loadCapitalShipDefs();
|
loadCapitalShipDefs();
|
||||||
|
|
||||||
|
showLoadingStep(8, STEPS);
|
||||||
|
|
||||||
loadItemDefs();
|
loadItemDefs();
|
||||||
|
|
||||||
|
showLoadingStep(9, STEPS);
|
||||||
|
|
||||||
initBulletDefs();
|
initBulletDefs();
|
||||||
|
|
||||||
|
showLoadingStep(10, STEPS);
|
||||||
|
|
||||||
initStarSystems();
|
initStarSystems();
|
||||||
|
|
||||||
|
showLoadingStep(11, STEPS);
|
||||||
|
|
||||||
initBattle();
|
initBattle();
|
||||||
|
|
||||||
|
showLoadingStep(12, STEPS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Just in case the initial loading takes a while on the target machine. The rest of the loading a pretty quick by comparison.
|
||||||
|
*/
|
||||||
|
static void showLoadingStep(float step, float maxSteps)
|
||||||
|
{
|
||||||
|
SDL_Rect r;
|
||||||
|
|
||||||
|
prepareScene();
|
||||||
|
|
||||||
|
r.w = SCREEN_WIDTH - 400;
|
||||||
|
r.h = 14;
|
||||||
|
r.x = (SCREEN_WIDTH / 2) - r.w / 2;
|
||||||
|
r.y = (SCREEN_HEIGHT / 2) - r.h / 2;
|
||||||
|
|
||||||
|
SDL_SetRenderDrawColor(app.renderer, 128, 128, 128, 255);
|
||||||
|
SDL_RenderDrawRect(app.renderer, &r);
|
||||||
|
|
||||||
|
r.w *= (step / maxSteps);
|
||||||
|
r.x += 2;
|
||||||
|
r.y += 2;
|
||||||
|
r.w -= 4;
|
||||||
|
r.h -= 4;
|
||||||
|
|
||||||
|
SDL_SetRenderDrawColor(app.renderer, 128, 196, 255, 255);
|
||||||
|
SDL_RenderFillRect(app.renderer, &r);
|
||||||
|
|
||||||
|
presentScene();
|
||||||
|
|
||||||
|
SDL_Delay(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void initColor(SDL_Color *c, int r, int g, int b)
|
static void initColor(SDL_Color *c, int r, int g, int b)
|
||||||
{
|
{
|
||||||
memset(c, 0, sizeof(SDL_Color));
|
memset(c, 0, sizeof(SDL_Color));
|
||||||
|
|
|
@ -26,6 +26,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include "SDL2/SDL_mixer.h"
|
#include "SDL2/SDL_mixer.h"
|
||||||
#include "SDL2/SDL_ttf.h"
|
#include "SDL2/SDL_ttf.h"
|
||||||
|
|
||||||
|
extern void prepareScene(void);
|
||||||
|
extern void presentScene(void);
|
||||||
extern int fileExists(char *filename);
|
extern int fileExists(char *filename);
|
||||||
extern char *readFile(char *filename);
|
extern char *readFile(char *filename);
|
||||||
extern int writeFile(char *filename, char *data);
|
extern int writeFile(char *filename, char *data);
|
||||||
|
|
Loading…
Reference in New Issue