-float xship,yship = 240.0; // X position, 0..XSIZE
-float xvel,yvel; // Change in X position per tick.
-float rockrate,rockspeed;
-float movementrate; // this controls the speed of everything that moves.
-float yscroll;
-float scrollvel;
+// Command-line argument parsing
+int opt_fullscreen;
+int opt_sound;
+int opt_music;
+float opt_gamespeed;
+int opt_tail_engine;
+int opt_friction;
+
+const char *argp_program_version = "Variations on Rockdodger " VERSION;
+const char *argp_program_bug_address = "<josh@qualdan.com>";
+static char doc[] = "VoR: Dodge the rocks until you die.";
+static struct argp_option opts[] = {
+ {0, 0, 0, 0, "Basic Options:"},
+ {"full-screen", 'f', 0, 0, ""},
+ {"music", 'm', 0, 0, "Enable music"},
+ {"silent", 's', 0, 0, "Turn off explosion sounds"},
+ {0, 0, 0, 0, "Gameplay Options:"},
+ {"game-speed", 'g', "N%", 0, "Game speed [50-100%]"},
+ {"engine", 'e', 0, 0, "Display large tail plume"},
+ {"old-physics", 'p', 0, 0, "Original physics (i.e. friction)."},
+ {0}
+};
+error_t parse_opt(int, char*, struct argp_state *);
+static struct argp argp = { opts, &parse_opt, 0, doc };