static char filename[MAXSTR];
static int num = 0;
- sprintf(filename, _("screen%02d.bmp"), num++);
+ sprintf(filename, _("screen%02d.png"), num++);
image_snap(filename, config_get_d(CONFIG_WIDTH), config_get_d(CONFIG_HEIGHT));
}
if (e.type == SDL_QUIT)
return 0;
- if (e.type == SDL_KEYDOWN && e.key.keysym.sym == SDLK_SPACE)
- config_tgl_pause();
+ if (e.type == SDL_KEYDOWN)
+ switch (e.key.keysym.sym)
+ {
+ case SDLK_SPACE: config_tgl_pause(); break;
+ case SDLK_F11: toggle_fullscreen(); break;
+ case SDLK_F10: shot(); break;
+ case SDLK_F9: config_tgl_d(CONFIG_FPS); break;
+ case SDLK_F8: config_tgl_d(CONFIG_NICE); break;
+ case SDLK_F7: toggle_wire(); break;
+ default: break;
+ }
- if (!config_get_pause())
+ if (!config_get_pause())
switch (e.type)
{
case SDL_MOUSEMOTION:
switch (e.key.keysym.sym)
{
- case SDLK_F11: toggle_fullscreen(); break;
- case SDLK_F10: shot(); break;
- case SDLK_F9: config_tgl_d(CONFIG_FPS); break;
- case SDLK_F8: config_tgl_d(CONFIG_NICE); break;
- case SDLK_F7: toggle_wire(); break;
case SDLK_RETURN:
d = st_buttn(config_get_d(CONFIG_JOYSTICK_BUTTON_A), 1);
/*---------------------------------------------------------------------------*/
/* Option values */
-static char * data_path = NULL;
-static char * replay_path = NULL;
-static char * level_path = NULL;
+static char *data_path = NULL;
+static char *replay_path = NULL;
+static char *level_path = NULL;
+static int display_info = 0;
/* Option hangling */
"Usage: %s [options ...]\n" \
"-r, --replay file play the replay 'file'.\n" \
"-l, --level file.sol play the level 'file.sol'.\n" \
+ "-i, --info display info about level or replay.\n" \
" --data dir use 'dir' as game data directory.\n" \
"-v, --version show version.\n" \
"-h, -?, --help show this usage message.\n")
static void parse_args(int argc, char ** argv)
{
#define CASE(x) (strcmp(*argv, (x)) == 0) /* Check current option */
-#define MAND (not_miss = (argv[1] != NULL)) /* Argument is mandatory */
+#define MAND (not_miss = (argv[1] != NULL)) /* Argument is mandatory */
char * exec = *(argv++);
int not_miss; /* argument is not missing */
replay_path = *(++argv);
else if ((CASE("-l") || CASE("--level")) && MAND)
level_path = *(++argv);
+ else if ((CASE("-i") || CASE("--info")))
+ display_info = 1;
else if (not_miss)
{
fprintf(stderr, _("%s: unknown option %s\n"), exec, *argv);
if (replay_path != NULL)
{
- if (level_replay(replay_path))
- {
- demo_replay_dump_info();
- }
- else
+ if (! level_replay(replay_path))
{
fprintf(stderr, _("Replay file '%s': "), replay_path);
if (errno)
perror(NULL);
else
- fprintf(stderr, _("Not a replay file.\n"));
+ fprintf(stderr, _("Not a replay file\n"));
+ return 1;
+ }
+ else if (display_info)
+ demo_replay_dump_info();
+ }
+
+ if (level_path != NULL)
+ {
+ struct level l;
+ if (! level_load(level_path, &l))
+ return 1;
+ else if (display_info)
+ level_dump_info(&l);
+ }
+
+ if(display_info)
+ {
+ if (replay_path == NULL && level_path == NULL)
+ {
+ fprintf(stderr, _("%s: --info requires --replay or --level\n"), argv[0]);
return 1;
}
+ else
+ return 0;
}
/* Initialize SDL system and subsystems */
{
st_paint();
gui_blank();
+ SDL_Delay(10); /* Be nice! */
}
else
{