-void save_map (struct Map * map) {
-// Save map to file "map".
- FILE * file = fopen("map", "w");
- fputc(map->width / CHAR_MAX, file);
- fputc(map->width % CHAR_MAX, file);
- uint16_t y, x;
- for (y = 0; y < map->height; y++)
- for (x = 0; x < map->width; x++)
- fputc(map->cells[y * map->width + x], file);
- fclose(file); }
-
-struct Map load_map () {
-// Load map from file.
- FILE * file = fopen("map", "r");
- struct Map map;
- map.width = (fgetc(file) * CHAR_MAX) + fgetc(file);
- long pos = ftell(file);
- int c = fgetc(file);
- uint32_t i = 0;
- while (EOF != c) {
- i++;
- c = fgetc(file); }
- map.cells = malloc(i * sizeof(char));
- map.height = i / map.width;
- fseek(file, pos, SEEK_SET);
- c = fgetc(file);
- i = 0;
- while (EOF != c) {
- map.cells[i] = (char) c;
- c = fgetc(file);
- i++; }
- fclose(file);
- return map; }
+int main (int argc, char *argv[]) {
+ uint32_t seed = time(NULL);
+ int opt;
+ while ((opt = getopt(argc, argv, "l")) != -1) {
+ switch (opt) {
+ case 'l':
+ seed = load_seed();
+ break;
+ default:
+ exit(EXIT_FAILURE); } }