home · contact · privacy
7DRL: Via stacks depth map, add visualization of thing stacks on map.
[plomrogue] / src / client / io.c
index ee4dcc2151a7a2ce87792a61a502ab03e6f47b11..df90c17f2be29be49451b35c866bcd44387b422c 100644 (file)
@@ -49,8 +49,7 @@ static void read_map_cells(FILE * file, char ** map);
 /* Return value seen by atoi() in next line of "file" when passed to try_fgets()
  * with the given arguments.
  */
-static uint16_t read_value_from_line(char * read_buf, uint32_t linemax,
-                                     FILE * file);
+static int32_t read_value_from_line(char* read_buf,int32_t linemax,FILE* file);
 
 /* If the server's worldstate file has changed since the last read_worldstate(),
  * return a pointer to its file descriptor; else, return NULL.
@@ -142,8 +141,7 @@ static void read_map_cells(FILE * file, char ** map)
 
 
 
-static uint16_t read_value_from_line(char * read_buf, uint32_t linemax,
-                                     FILE * file)
+static int32_t read_value_from_line(char * read_buf,int32_t linemax,FILE * file)
 {
     try_fgets(read_buf, linemax + 1, file, __func__);
     return atoi(read_buf);
@@ -186,14 +184,20 @@ static uint8_t read_worldstate()
     }
     uint32_t linemax = textfile_width(file);
     char * read_buf = try_malloc(linemax + 1, __func__);
-    world.turn = read_value_from_line(read_buf, linemax, file);
-    world.player_lifepoints = read_value_from_line(read_buf, linemax, file);
+    world.turn = (uint16_t) read_value_from_line(read_buf, linemax, file);
+    world.godsmood = (int16_t) read_value_from_line(read_buf, linemax, file); //
+    world.godsfavor = (int16_t) read_value_from_line(read_buf, linemax, file); //
+    world.player_lifepoints = (uint16_t) read_value_from_line(read_buf, linemax,
+                                                              file);
+    world.player_satiation = (int16_t) read_value_from_line(read_buf, linemax,
+                                                            file);
     read_inventory(read_buf, linemax, file);
-    world.player_pos.y = read_value_from_line(read_buf, linemax, file);
-    world.player_pos.x = read_value_from_line(read_buf, linemax, file);
-    world.map.length = read_value_from_line(read_buf, linemax, file);
+    world.player_pos.y = (uint8_t) read_value_from_line(read_buf,linemax,file);
+    world.player_pos.x = (uint8_t) read_value_from_line(read_buf,linemax,file);
+    world.map.length = (uint16_t) read_value_from_line(read_buf, linemax, file);
     read_map_cells(file, &world.map.cells);
     read_map_cells(file, &world.mem_map);
+    read_map_cells(file, &world.stacks_map);  //
     free(read_buf);
     try_fclose(file, __func__);
     return 1;
@@ -275,6 +279,7 @@ static uint8_t read_queue()
             {
                 nl_append_string("(none known)", &world.things_here);
             }
+            world.things_here_scroll = 0;  //
         }
         else if (things_here_parsing)
         {