diff xrogue/state.c @ 225:4f6e056438eb

Merge the GCC5 and build fix branches.
author John "Elwin" Edwards
date Wed, 02 Mar 2016 21:28:34 -0500
parents f54901b9c39b
children 7c1cb43f346e
line wrap: on
line diff
--- a/xrogue/state.c	Fri Feb 26 17:30:30 2016 -0500
+++ b/xrogue/state.c	Wed Mar 02 21:28:34 2016 -0500
@@ -97,6 +97,14 @@
 int save_debug = FALSE;
 #define DBG(x)   {if (save_debug) rsPrintf x;}
 
+bool rs_read_new_string(int inf, char **s);
+int find_list_ptr(struct linked_list *l, void *ptr);
+bool rs_write_coord_list(FILE *savef, struct linked_list *l);
+bool rs_read_coord_list(int inf, struct linked_list **list);
+int list_size(struct linked_list *l);
+bool rs_write_object_list(FILE *savef, struct linked_list *l);
+bool rs_read_object_list(int inf, struct linked_list **list);
+
 int
 rsPrintf(char *fmt, ...)
 {
@@ -128,6 +136,7 @@
     return(NULL);
 }
 
+bool
 rs_write(FILE *savef, void *ptr, size_t size)
 {
     size_t i = 0;
@@ -143,6 +152,7 @@
 
 int end_of_file = FALSE;
 
+bool
 rs_read(int inf, void *ptr, size_t size)
 {
     int actual;
@@ -165,6 +175,7 @@
 
 int big_endian = 0;
 
+bool
 rs_write_uint(FILE *savef, unsigned int c)
 {
     char bytes[4];
@@ -184,6 +195,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_int(FILE *savef, int c)
 {
     char bytes[4];
@@ -203,6 +215,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_ulong(FILE *savef, unsigned long c)
 {
     unsigned int c2;
@@ -229,6 +242,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_long(FILE *savef, long c)
 {
     int c2;
@@ -255,6 +269,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_boolean(FILE *savef, bool c)
 {
     char buf;
@@ -269,6 +284,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_int(int inf, int *i)
 {
     char bytes[4];
@@ -291,6 +307,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_uint(int inf, unsigned int *i)
 {
     char bytes[4];
@@ -313,6 +330,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_ulong(int inf, unsigned long *i)
 {
     char bytes[4];
@@ -337,6 +355,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_long(int inf, long *i)
 {
     char bytes[4];
@@ -361,6 +380,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_boolean(int inf, bool *i)
 {
     char buf;
@@ -372,6 +392,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_ints(FILE *savef, int *c, int count)
 {
     int n=0;
@@ -384,6 +405,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_short(FILE *savef, short c)
 {
     char bytes[2];
@@ -401,6 +423,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_short(int inf, short *s)
 {
     char  bytes[2];
@@ -421,6 +444,7 @@
 }
 
 
+bool
 rs_write_shorts(FILE *savef, short *c, int count)
 {
     int n=0;
@@ -433,6 +457,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_longs(FILE *savef, long *c, int count)
 {
     int n=0;
@@ -445,6 +470,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_ulongs(FILE *savef, unsigned long *c, int count)
 {
     int n=0;
@@ -457,6 +483,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_booleans(FILE *savef, bool *c, int count)
 {
     int n=0;
@@ -469,6 +496,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_ints(int inf, int *i, int count)
 {
     int n=0,value=0;
@@ -487,6 +515,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_shorts(int inf, short *i, int count)
 {
     int n=0,value=0;
@@ -505,6 +534,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_longs(int inf, long *i, int count)
 {
     int n=0,value=0;
@@ -523,6 +553,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_ulongs(int inf, unsigned long *i, int count)
 {
     int n=0,value=0;
@@ -541,6 +572,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_booleans(int inf, bool *i, int count)
 {
     int n=0,value=0;
@@ -559,6 +591,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_levtype(FILE *savef, LEVTYPE c)
 {
     int lt;
@@ -578,6 +611,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_levtype(int inf, LEVTYPE *l)
 {
     int lt;
@@ -597,6 +631,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_char(FILE *savef, char c)
 {
     rs_write(savef, &c, 1);
@@ -605,6 +640,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_char(int inf, char *c)
 {
     rs_read(inf, c, 1);
@@ -612,6 +648,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_uchar(FILE *savef, unsigned char c)
 {
     rs_write(savef, &c, 1);
@@ -620,6 +657,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_uchar(int inf, unsigned char *c)
 {
     rs_read(inf, c, 1);
@@ -627,6 +665,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_string(FILE *savef, char *s)
 {
     int len = 0;
@@ -639,6 +678,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_string_index(int inf, struct words master[], int maxindex, char **str)
 {
     int i;
@@ -660,6 +700,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_string_index(FILE *savef, struct words master[], int maxindex, char *str)
 {
     int i;
@@ -677,6 +718,7 @@
     return(WRITESTAT);
 }
  
+bool
 rs_read_scrolls(int inf)
 {
     int i;
@@ -691,6 +733,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_scrolls(FILE *savef)
 {
     int i;
@@ -701,9 +744,10 @@
         rs_write_boolean(savef,s_know[i]);
         rs_write_string(savef,s_guess[i]);
     }
-    return(READSTAT);
+    return(WRITESTAT);
 }
 
+bool
 rs_read_potions(int inf)
 {
     int i;
@@ -718,6 +762,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_potions(FILE *savef)
 {
     int i;
@@ -732,6 +777,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_rings(int inf)
 {
     int i;
@@ -746,6 +792,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_rings(FILE *savef)
 {
     int i;
@@ -760,6 +807,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_misc(int inf)
 {
     int i;
@@ -773,6 +821,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_misc(FILE *savef)
 {
     int i;
@@ -786,6 +835,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_sticks(FILE *savef)
 {
     int i;
@@ -809,6 +859,7 @@
     return(WRITESTAT);
 }
         
+bool
 rs_read_sticks(int inf)
 {
     int i = 0, list = 0;
@@ -833,6 +884,7 @@
     return(READSTAT);
 }
     
+bool
 rs_read_string(int inf, char *s, int max)
 {
     int len = 0;
@@ -852,6 +904,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_new_string(int inf, char **s)
 {
     int len=0;
@@ -878,6 +931,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_strings(FILE *savef, char *s[], int count)
 {
     int len = 0;
@@ -896,6 +950,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_write_words(FILE *savef, struct words *w, int count)
 {
     int n = 0;
@@ -911,6 +966,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_words(int inf, struct words *w, int count)
 {
     int n = 0;
@@ -933,6 +989,7 @@
     return(READSTAT);
 }
 
+bool
 rs_read_new_strings(int inf, char **s, int count)
 {
     int len   = 0;
@@ -966,6 +1023,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_coord(FILE *savef, coord *c)
 {
     DBG(("X ="));
@@ -976,6 +1034,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_coord(int inf, coord *c)
 {
     rs_read_int(inf,&c->x);
@@ -1047,6 +1106,7 @@
     return tobj;
 }
 
+bool
 rs_write_daemons(FILE *savef, struct delayed_action *d_list,int count)
 {
     int i = 0;
@@ -1173,6 +1233,7 @@
     return(WRITESTAT);
 }       
 
+bool
 rs_read_daemons(int inf, struct delayed_action *d_list, int count)
 {
     int i = 0;
@@ -1344,6 +1405,7 @@
     return(READSTAT);
 }       
         
+bool
 rs_write_rooms(FILE *savef, struct room r[], int count)
 {
     int n = 0,i = -1;
@@ -1376,6 +1438,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_rooms(int inf, struct room *r, int count)
 {
     int value = 0, n = 0, i = 0, index = 0, id = 0;
@@ -1436,6 +1499,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_object(FILE *savef, struct object *o)
 {
     rs_write_int(savef, RSXR_OBJECT);
@@ -1487,6 +1551,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_object(int inf, struct object *o)
 {
     int id;
@@ -1523,6 +1588,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_stats(FILE *savef, struct stats *s)
 {
     DBG(("Stats\n"));
@@ -1546,6 +1612,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_stats(int inf, struct stats *s)
 {
     int id;
@@ -1580,6 +1647,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_mstats(FILE *savef, struct mstats *s)
 {
     DBG(("M-Stats\n"));
@@ -1598,6 +1666,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_mstats(int inf, struct mstats *s)
 {
     int id;
@@ -1634,6 +1703,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_init_weps(FILE *savef, struct init_weps *w, int count)
 {
     int i;
@@ -1656,6 +1726,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_init_weps(int inf, struct init_weps *w,int count)
 {
     int id,value,i;
@@ -1684,6 +1755,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_init_armor(FILE *savef, struct init_armor *a, int count)
 {
     int i;
@@ -1701,6 +1773,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_init_armor(int inf, struct init_armor *a,int count)
 {
     int id,value,i;
@@ -1720,6 +1793,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_spells(FILE *savef, struct spells *s, int count)
 {
     int i;
@@ -1736,6 +1810,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_spells(int inf, struct spells *s,int count)
 {
     int id,value,i;
@@ -1753,6 +1828,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_item_list(FILE *savef, struct item_list *i)
 {
     DBG(("Item List\n"));
@@ -1761,6 +1837,8 @@
     rs_write(savef, i->item_desc, sizeof(i->item_desc));
     return(WRITESTAT);
 }
+
+bool
 rs_read_item_list(int inf, struct item_list *i)
 {
     int id;
@@ -1772,6 +1850,7 @@
     return(READSTAT); 
 }
 
+bool
 rs_write_h_list(FILE *savef, struct h_list *h)
 {
     DBG(("H List\n"));
@@ -1781,6 +1860,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_h_list(int inf, struct h_list *h)
 {
     int id;
@@ -1792,6 +1872,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_death_types(FILE *savef, struct death_type *d,int count)
 {
     int i;
@@ -1807,6 +1888,8 @@
     }
     return(WRITESTAT);
 }
+
+bool
 rs_read_death_types(int inf, struct death_type *d, int count)
 {
     int id,value,i;
@@ -1828,6 +1911,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_character_types(FILE *savef, struct character_types *c, int count)
 {
     int i;
@@ -1851,6 +1935,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_character_types(int inf, struct character_types *c,int count)
 {
     int id,value,i;
@@ -1880,6 +1965,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_traps(FILE *savef, struct trap *trap,int count)
 {
     int n;
@@ -1895,8 +1981,10 @@
         rs_write_coord(savef, &trap[n].tr_pos);
         rs_write_long(savef, trap[n].tr_flags);
     }
+    return(WRITESTAT);
 }
 
+bool
 rs_read_traps(int inf, struct trap *trap, int count)
 {
     int id = 0, value = 0, n = 0;
@@ -1937,6 +2025,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_monsters(FILE * savef, struct monster * m, int count)
 {
     int n;
@@ -1965,6 +2054,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_monsters(int inf, struct monster *m, int count)
 {
     int id = 0, value = 0, n = 0;
@@ -2024,6 +2114,7 @@
 
 /*****************************************************************************/
 
+bool
 rs_write_coord_list(FILE *savef, struct linked_list *l)
 {
     DBG(("Coordinate List\n"));
@@ -2039,6 +2130,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_coord_list(int inf, struct linked_list **list)
 {
     int id;
@@ -2082,6 +2174,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_object_list(FILE *savef, struct linked_list *l)
 {
     DBG(("Object List\n"));
@@ -2097,6 +2190,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_object_list(int inf, struct linked_list **list)
 {
     int id;
@@ -2175,6 +2269,7 @@
     return(-1);
 }
 
+bool
 rs_write_thing(FILE *savef, struct thing *t)
 {
     int i = -1;
@@ -2285,6 +2380,7 @@
     return(WRITESTAT);
 }
 
+void
 rs_fix_thing(struct thing *t)
 {
     struct linked_list *item;
@@ -2302,6 +2398,7 @@
     }
 }
 
+bool
 rs_read_thing(int inf, struct thing *t)
 {
     int id;
@@ -2413,6 +2510,7 @@
 }
 
 
+bool
 rs_write_monster_list(FILE *savef, struct linked_list *l)
 {
     int cnt = 0;
@@ -2435,8 +2533,8 @@
     return(WRITESTAT);
 }
 
-rs_fix_monster_list(list)
-struct linked_list *list;
+void
+rs_fix_monster_list(struct linked_list *list)
 {
     struct linked_list *item;
 
@@ -2444,6 +2542,7 @@
         rs_fix_thing(THINGPTR(item));
 }
 
+bool
 rs_read_monster_list(int inf, struct linked_list **list)
 {
     int id;
@@ -2485,6 +2584,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_magic_items(FILE *savef, struct magic_item *i, int count)
 {
     int n;
@@ -2505,6 +2605,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_read_magic_items(int inf, struct magic_item *mi, int count)
 {
     int id;
@@ -2546,6 +2647,7 @@
     return(READSTAT);
 }
 
+bool
 rs_write_window(FILE *savef, WINDOW *win)
 {
     int row,col,height,width;
@@ -2558,8 +2660,11 @@
     for(row=0;row<height;row++)
         for(col=0;col<width;col++)
             rs_write_int(savef, mvwinch(win,row,col));
+
+    return(WRITESTAT);
 }
 
+bool
 rs_read_window(int inf, WINDOW *win)
 {
     int row,col,maxlines,maxcols,value,width,height;
@@ -2588,6 +2693,7 @@
     return(READSTAT);
 }
 
+bool
 rs_save_file(FILE *savef)
 {
     int i, weapon, armor, ring, misc, room = -1;
@@ -2743,6 +2849,7 @@
     return(WRITESTAT);
 }
 
+bool
 rs_restore_file(int inf)
 {
     int weapon, armor, ring, misc, room = -1,i,checkpoint;
@@ -2904,6 +3011,7 @@
     return(READSTAT);
 }
 
+void
 rs_write_scorefile(FILE *savef, struct sc_ent *entries, int count)
 {
     int i;
@@ -2923,6 +3031,7 @@
     }
 }
 
+int
 rs_read_scorefile(FILE *savef, struct sc_ent *entries, int count)
 {
     int i,available = 0;
@@ -2954,6 +3063,7 @@
 
 
 
+void
 rs_print_thing(FILE *outf, struct thing *thing, char *prefix, int list, int index)
 {
     int i;
@@ -2995,6 +3105,7 @@
     fprintf(outf,"%st_reserved : %d\n",prefix,thing->t_reserved);
 }
 
+void
 rs_print_game_state(FILE *outf)
 {
     fprintf(outf, "Player\n");
@@ -3025,8 +3136,7 @@
 ****/
 
 int
-md_rand(range)
-register int range;
+md_rand(int range)
 {
 #ifdef _WIN32
     return(range <= 0 ? 0 : rand() % range);
@@ -3036,8 +3146,7 @@
 }
 
 int
-md_srand(seed)
-register int seed;
+md_srand(int seed)
 {
 #ifdef _WIN32
     srand(seed);
@@ -3047,7 +3156,7 @@
 }
 
 void 
-md_flushinp()
+md_flushinp(void)
 {
     /* ioctl(0,TIOCFLUSH) */
     /* ioctl(_tty_ch,TCFLSH,0) */
@@ -3055,7 +3164,7 @@
 }
 
 int
-md_getuid()
+md_getuid(void)
 {
 #ifdef _WIN32
     return(42);
@@ -3065,7 +3174,7 @@
 }
 
 long
-md_memused()
+md_memused(void)
 {
 #ifdef _WIN32
     MEMORYSTATUS stat;
@@ -3079,7 +3188,7 @@
 }
 
 char *
-md_getusername()
+md_getusername(void)
 {
     static char login[80];
     char *l = NULL;
@@ -3114,7 +3223,7 @@
 }
 
 char *
-md_gethomedir()
+md_gethomedir(void)
 {
     static char homedir[PATH_MAX];
     char *h = NULL;
@@ -3181,7 +3290,7 @@
 }
 
 char *
-md_getroguedir()
+md_getroguedir(void)
 {
     static char path[1024];
     char *end,*home;
@@ -3218,7 +3327,7 @@
 }
 
 char *
-md_getshell()
+md_getshell(void)
 {
     static char shell[PATH_MAX];
     char *s = NULL;
@@ -3246,7 +3355,7 @@