X-Git-Url: https://plomlompom.com/repos/test.html?a=blobdiff_plain;f=roguelike.c;h=cba46ad44675453f749cf51d4a5f6acad68405fe;hb=6977fdf9517c4d4c46673ac047fb1dd9d6130556;hp=afe73cece0e22c0d5fdced77b306ec591a9d6e44;hpb=b0722216897c1ec277caf6b2462fe5c1b4f5eca2;p=plomrogue
diff --git a/roguelike.c b/roguelike.c
index afe73ce..cba46ad 100644
--- a/roguelike.c
+++ b/roguelike.c
@@ -12,7 +12,7 @@
uint16_t rrand(char use_seed, uint32_t new_seed) {
// Pseudo-random number generator (LGC algorithm). Use instead of rand() to ensure portable predictability.
- static uint32_t seed = 0;
+ static uint32_t seed;
if (0 != use_seed)
seed = new_seed;
seed = ((seed * 1103515245) + 12345) % 2147483648; // Values as recommended by POSIX.1-2001 (see rand(3)).
@@ -69,7 +69,6 @@ void growshrink_active_window (struct WinMeta * win_meta, char change) {
struct Map init_map (uint32_t seed) {
// Initialize map with some experimental start values.
- rrand(1, seed);
struct Map map;
map.width = 64;
map.height = 64;
@@ -188,15 +187,12 @@ void player_wait (struct World * world) {
update_log (world, "\nYou wait."); }
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); } }
+ uint32_t seed;
+ if (0 == access("seed", F_OK))
+ seed = load_seed();
+ else
+ seed = time(NULL);
+ rrand(1, seed);
struct World world;
init_keybindings(&world);