X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=src%2Fmisc.c;h=e6f0df1c3dac7b3de7ebda8fe3cf54923ab94112;hb=67bcb0339e09a67fe1685cf81e35ccac18eba0c5;hp=1b8fe63ee789aa85427134a120ad4d405c71cbbb;hpb=fdb7a8eb2bc58d180d53f4085085a62bc1f2e62b;p=plomrogue
diff --git a/src/misc.c b/src/misc.c
index 1b8fe63..e6f0df1 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -6,7 +6,7 @@
#include /* for size_t, calloc(), free() */
#include /* for strlen(), strcmp(), memcpy() */
#include /* for uint8_t, uint16_t */
-#include "readwrite.h" /* for try_fopen(), try_fclose(), get_linemax(),
+#include "readwrite.h" /* for try_fopen(), try_fclose(), textfile_sizes(),
* try_fputc(), try_fgetc()
*/
#include "map_objects.h" /* for struct MapObj, get_player(), read_map_objects(),
@@ -27,8 +27,7 @@
extern uint16_t rrand()
-{
- /* Constants as recommended by POSIX.1-2001 (see man page rand(3)). */
+{ /* Constants as recommended by POSIX.1-2001 (see man page rand(3)). */
world.seed = ((world.seed * 1103515245) + 12345) % 4294967296;
return (world.seed >> 16); /* Ignore less random least significant bits. */
}
@@ -169,17 +168,17 @@ extern void update_log(char * text)
-extern uint16_t center_offset(uint16_t pos, uint16_t mapsize,
+extern uint16_t center_offset(uint16_t position, uint16_t mapsize,
uint16_t framesize)
{
uint16_t offset = 0;
if (mapsize > framesize)
{
- if (pos > framesize / 2)
+ if (position > framesize / 2)
{
- if (pos < mapsize - (framesize / 2))
+ if (position < mapsize - (framesize / 2))
{
- offset = pos - (framesize / 2);
+ offset = position - (framesize / 2);
}
else
{
@@ -213,7 +212,7 @@ extern void turn_over(char action)
if ( is_command_id_shortdsc(action, "drop")
|| is_command_id_shortdsc(action, "use"))
{
- try_fputc(world.inventory_select, file_new, f_name);
+ try_fputc(world.inventory_sel, file_new, f_name);
}
try_fclose_unlink_rename(file_new, recordfile_tmp, recordfile, f_name);
}
@@ -268,6 +267,8 @@ extern void save_game()
try_fwrite(line, strlen(line), 1, file, f_name);
sprintf(line, "%u\n", world.seed);
try_fwrite(line, strlen(line), 1, file, f_name);
+ sprintf(line, "%u\n", world.map_obj_count);
+ try_fwrite(line, strlen(line), 1, file, f_name);
sprintf(line, "%u\n", world.turn);
try_fwrite(line, strlen(line), 1, file, f_name);
sprintf(line, "%u\n", world.score);
@@ -283,13 +284,15 @@ extern void load_game()
char * f_name = "load_game2()";
char * filename = "savefile";
FILE * file = try_fopen(filename, "r", f_name);
- uint16_t linemax = get_linemax(file, f_name);
+ uint16_t linemax = textfile_sizes(file, NULL);
char line[linemax + 1];
try_fgets(line, linemax + 1, file, f_name);
world.mapseed = atoi(line);
try_fgets(line, linemax + 1, file, f_name);
world.seed = atoi(line);
try_fgets(line, linemax + 1, file, f_name);
+ world.map_obj_count = atoi(line);
+ try_fgets(line, linemax + 1, file, f_name);
world.turn = atoi(line);
try_fgets(line, linemax + 1, file, f_name);
world.score = atoi(line);
@@ -316,10 +319,7 @@ extern void nav_inventory(char dir)
{
if ('u' == dir)
{
- if (world.inventory_select > 0)
- {
- world.inventory_select--;
- }
+ world.inventory_sel = world.inventory_sel - (world.inventory_sel > 0);
return;
}
struct MapObj * player = get_player();
@@ -330,8 +330,5 @@ extern void nav_inventory(char dir)
}
uint8_t n_owned = 0;
for (; NULL != owned->next; owned = owned->next, n_owned++);
- if (world.inventory_select < n_owned)
- {
- world.inventory_select++;
- }
+ world.inventory_sel = world.inventory_sel + (world.inventory_sel < n_owned);
}