home · contact · privacy
Renamed functions to reflect change from seed files system to game save files system.
[plomrogue] / roguelike.c
index 6217fec2713128b4b4987c52f5f34e841da66078..c5c13094c59e3439560fe0e0312520e24d387cdc 100644 (file)
@@ -54,7 +54,7 @@ void write_uint32_bigendian(uint32_t x, FILE * file) {
   fputc(c, file);
   fputc(d, file); }
 
-void load_seed(struct World * world) {
+void load_game(struct World * world) {
 // Load seed integer from seed file.
   FILE * file = fopen("savefile", "r");
   world->seed = read_uint32_bigendian(file);
@@ -65,7 +65,7 @@ void load_seed(struct World * world) {
   world->monster->x = read_uint16_bigendian(file);
   fclose(file); }
 
-void save_seed(struct World * world) {
+void save_game(struct World * world) {
 // Save seed integer to seed file.
   FILE * file = fopen("savefile", "w");
   write_uint32_bigendian(world->seed, file);
@@ -225,14 +225,14 @@ int main (int argc, char *argv[]) {
   struct Monster monster;
   world.monster = &monster;
   if (0 == access("savefile", F_OK))
-    load_seed(&world);
+    load_game(&world);
   else {
     player.y = 8;
     player.x = 8;
     monster.y = 55;
     monster.x = 55;
     world.seed = time(NULL);
-    world.turn = 0; }
+    world.turn = 1; }
   rrand(1, world.seed);
 
   init_keybindings(&world);
@@ -253,7 +253,11 @@ int main (int argc, char *argv[]) {
   struct Win win_log = init_window(&win_meta, "Log", &world, draw_log_win);
 
   int key;
+  uint32_t last_turn = 0;
   while (1) {
+    if (last_turn != world.turn) {
+      save_game(&world);
+      last_turn = world.turn; }
     draw_all_windows (&win_meta);
     key = getch();
     if      (key == get_action_key(world.keybindings, "quit"))
@@ -294,8 +298,6 @@ int main (int argc, char *argv[]) {
       keyswin_move_selection (&world, 'd');
     else if (key == get_action_key(world.keybindings, "keys mod"))
       keyswin_mod_key (&world, &win_meta);
-    else if (key == get_action_key(world.keybindings, "save game"))
-      save_seed(&world);
     else if (key == get_action_key(world.keybindings, "map up"))
       map_scroll (&map, 'n');
     else if (key == get_action_key(world.keybindings, "map down"))