diff -ruN ram:defendguin-0.0.11/Makefile ./Makefile --- ram:defendguin-0.0.11/Makefile Sun Jan 29 09:23:31 2006 +++ ./Makefile Sat Feb 2 16:12:35 2008 @@ -14,7 +14,8 @@ PREFIX=/usr/local MAN_PREFIX=$(PREFIX) BIN_PREFIX=$(PREFIX)/bin -DATA_PREFIX=$(PREFIX)/share/defendguin/ +#DATA_PREFIX=$(PREFIX)/share/defendguin/ +DATA_PREFIX=PROGDIR:data/ JOY=YES diff -ruN ram:defendguin-0.0.11/src/defendguin.c ./src/defendguin.c --- ram:defendguin-0.0.11/src/defendguin.c Sun Jan 29 11:11:06 2006 +++ ./src/defendguin.c Sat Feb 2 16:29:12 2008 @@ -33,6 +33,9 @@ #define M_PI 3.14159265358979323846 /* mmm... pi... */ #endif /* #ifndef M_PI */ +#ifdef __MORPHOS__ +CONST_STRPTR __verstag__ = "\0$VER: Defendguin " VERSION " (02.02.2008)"; +#endif /* Image enumerations: */ @@ -589,7 +592,7 @@ int game(int mode); int option_screen(void); int title(void); -void setup(void); +int setup(void); SDL_Surface * set_vid_mode(unsigned flags); void my_shutdown(void); void create_land(int ply); @@ -726,41 +729,42 @@ /* Setup: */ - setup(); - quit = 0; + quit = setup(); /* MAIN INTERFACE LOOP! */ - do - { - /* Display the title screen: */ - - mode = title(); - - - /* What's our choice? */ - - if (mode == TITLE_OPTION_ONE_PLAYER || - mode == TITLE_OPTION_TWO_PLAYERS) - { - /* Play the game */ + if (!quit) + { + do + { + /* Display the title screen: */ + + mode = title(); + + + /* What's our choice? */ + + if (mode == TITLE_OPTION_ONE_PLAYER || + mode == TITLE_OPTION_TWO_PLAYERS) + { + /* Play the game */ - quit = game(mode); - } - else if (mode == TITLE_OPTION_OPTIONS) - { - /* Option screen: */ - - quit = option_screen(); - } - else if (mode == TITLE_OPTION_QUIT) - { - quit = 1; - } - } - while (quit == 0); - + quit = game(mode); + } + else if (mode == TITLE_OPTION_OPTIONS) + { + /* Option screen: */ + + quit = option_screen(); + } + else if (mode == TITLE_OPTION_QUIT) + { + quit = 1; + } + } + while (quit == 0); + } save_options(); @@ -4303,13 +4307,14 @@ /* Setup: */ -void setup(void) +int setup(void) { int i, done, distortion, distortion_m; Uint32 old_ticks, last_time; SDL_Surface * image; SDL_Rect dest, src; SDL_Event event; + int justdie = 0; /* Init SDL Video: */ @@ -4687,6 +4692,12 @@ { if (event.type == SDL_KEYDOWN) done = 1; + + if (event.type == SDL_QUIT) + { + justdie = 1; + done = 1; + } if (event.type == SDL_JOYBUTTONDOWN && (num_joysticks < 2 || event.jbutton.which == player)) @@ -4763,6 +4774,8 @@ #endif /* #ifndef NOSOUND */ } while (done == 0); + + return justdie; } @@ -5882,10 +5895,14 @@ vol_effects = 5; vol_music = 5; +#ifndef __MORPHOS__ if (getenv("HOME") != NULL) { snprintf(fname, sizeof(fname), "%s/.defendguinrc", getenv("HOME")); - +#else + { + snprintf(fname, sizeof(fname), "PROGDIR:.defendguinrc"); +#endif fi = fopen(fname, "r"); if (fi != NULL) @@ -5946,9 +5963,14 @@ FILE * fi; char fname[512]; +#ifndef __MORPHOS__ if (getenv("HOME") != NULL) { snprintf(fname, sizeof(fname), "%s/.defendguinrc", getenv("HOME")); +#else + { + snprintf(fname, sizeof(fname), "PROGDIR:.defendguinrc"); +#endif fi = fopen(fname, "w");