comparison srogue/main.c @ 252:3d4252fa2ed3

Use more portable random seed generation. The new function md_random_seed() has replaced time() + getpid() and similar methods. Putting everything in mdport.c slightly reduces the warnings and workarounds.
author John "Elwin" Edwards
date Sat, 28 Jan 2017 15:49:41 -0500
parents b922f66acf4d
children d3968e9cb98d
comparison
equal deleted inserted replaced
251:e7862a021609 252:3d4252fa2ed3
46 register char *env; 46 register char *env;
47 register struct linked_list *item; 47 register struct linked_list *item;
48 register struct object *obj; 48 register struct object *obj;
49 char alldone, wpt; 49 char alldone, wpt;
50 char *getpass(), *xcrypt(), *strrchr(); 50 char *getpass(), *xcrypt(), *strrchr();
51 int lowtime;
52 time_t now;
53 char *homedir = roguehome(); 51 char *homedir = roguehome();
54 52
55 md_init(); 53 md_init();
56 54
57 if (homedir == NULL) 55 if (homedir == NULL)
100 argv++; 98 argv++;
101 argc--; 99 argc--;
102 } 100 }
103 } 101 }
104 #endif 102 #endif
105 time(&now);
106 lowtime = (int) now;
107 103
108 #ifdef SAVEDIR 104 #ifdef SAVEDIR
109 if (argc >= 3 && !strcmp(argv[1], "-n")) { 105 if (argc >= 3 && !strcmp(argv[1], "-n")) {
110 strncpy(whoami, argv[2], LINLEN); 106 strncpy(whoami, argv[2], LINLEN);
111 whoami[LINLEN - 1] = '\0'; 107 whoami[LINLEN - 1] = '\0';
167 exit(1); 163 exit(1);
168 164
169 /* START NEW GAME */ 165 /* START NEW GAME */
170 166
171 dnum = (wizard && getenv("SEED") != NULL ? 167 dnum = (wizard && getenv("SEED") != NULL ?
172 atoi(getenv("SEED")) : lowtime + md_getpid()); 168 atoi(getenv("SEED")) : md_random_seed());
173 169
174 if(wizard) 170 if(wizard)
175 printf("Hello %s, welcome to dungeon #%d\n", whoami, dnum); 171 printf("Hello %s, welcome to dungeon #%d\n", whoami, dnum);
176 else 172 else
177 printf("Hello %s, One moment while I open the door to the dungeon...\n", whoami); 173 printf("Hello %s, One moment while I open the door to the dungeon...\n", whoami);